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版本