判断登陆人是否为BBS管理员

package com.icss.oa.show.servlet;



import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;



import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



import com.icss.j2ee.servlet.ServletBase;

import com.icss.resourceone.sdk.framework.Context;

import com.icss.resourceone.sdk.framework.EntityException;

import com.icss.resourceone.sdk.framework.Person;

import com.icss.resourceone.sdk.right.RightException;

import com.icss.resourceone.sdk.right.RightManager;

import com.icss.resourceone.sdk.right.Role;



/**

 * 判断当前登陆人是否为BBS管理员

 */



public class TestAPIServlet extends ServletBase {



	private Context ctx;

	private RightManager rm;

	private Person loginPerson;

	private Role role;

	private Role bbsRole;

	private String disk;

	private Boolean isAdmin;



	protected void performTask(HttpServletRequest request,

			HttpServletResponse response) throws ServletException, IOException {

		this.getParameter();

		isAdmin = this.isAdmin();

		// 判断当前登陆人是否有BBS管理员这个角色,有就给与删除权限,没有就不给

		if (isAdmin) {

			disk = "/jsp/show/matchSuccess.jsp";

		} else {

			disk = "/jsp/show/matchFail.jsp";

		}

		this.forward(request, response, disk);

	}



	public void getParameter() {

		try {

			ctx = Context.getInstance();

			rm = RightManager.getInstance();

			loginPerson = ctx.getCurrentPerson();

		} catch (EntityException e) {

			e.printStackTrace();

		} catch (RightException e) {

			e.printStackTrace();

		}

	}



	public Boolean isAdmin() {

		try {

			List isBBSManger = new ArrayList();

                                                

                                                //获取当前登陆人的所有全局子系统角色  子系统代码-1

			List roles = rm.getSysRolesByPerson(loginPerson, -1);

			Iterator i = roles.iterator();

			while (i.hasNext()) {

				role = (Role) i.next();

				//查找是否有BBS管理员的角色代码	        if (("bbsManager".trim()).equals(role.getRolecode().trim())) {

					isAdmin = true;

					break;

				}else{

					isAdmin = false;

					}

				}

			} catch (RightException e) {

				e.printStackTrace();

			}

		System.out.println("isAdmin------>"+isAdmin);

		return isAdmin;

	}

}



该类已封装为一个方法,判断当前登陆人是否为BBS管理员。

拓展:

  查找当前登陆人的所有全局子系统角色:

    RightManager  ---》 getSysRolesByPerson(person,SysId)

  查找当前登陆人的所有非全局子系统角色:

   RightManager  ---》 getRolesByPerson(person)

这些都是基于审计4.0.6版本

 

 

 

 

 

你可能感兴趣的:(bbs)