权限管理由三部分组成:
授权、登录、认证
1.======================授权======================
a.改变CRUD权限--
public void addOrUpdatePermission(String principalType, int principalId,
int moduleId, int permission, boolean yes);
b.改变用户继承权限(是否是继承字角色)--
public void addOrUpdateUserExtends(int userId, int moduleId, boolean yes);
2.=======================登录=========================
a.loginAction中负责查看用户名密码是否正确,如果正确,则将用户名存入session管理,
b.成功登陆,从session中拿到用户对象,查询用户拥有的角色,并按优先级从低到高排序
c.依次查找角色的授权列表,放入map(key为moduleId,value为acl)
d.针对用户查找有效的用户授权列表,放入同一个map;
e.去除掉那些没有读取权限的授权记录
f.根据最后map中的
public List searchModules(int userId) {
//查询用户拥有的角色,并按优先级从低到高排序
String hql = "select r.id from UsersRoles ur join ur.role r join ur.user u " +
"where u.id = ? order by ur.orderNo desc";
List roleIds = getHibernateTemplate().find(hql, userId);
Map temp = new HashMap();
//依次查找角色的授权列表
for (Iterator iterator = roleIds.iterator(); iterator.hasNext();) {
Integer rid = (Integer) iterator.next();
List acls = findRoleAcls(rid);
for (Iterator iterator2 = acls.iterator(); iterator2.hasNext();) {
ACL acl = (ACL) iterator2.next();
temp.put(acl.getModuleId(), acl);
}
}
//针对用户查找有效的用户授权列表
List acls = findUserAcls(userId);
for (Iterator iterator = acls.iterator(); iterator.hasNext();) {
ACL acl = (ACL) iterator.next();
temp.put(acl.getModuleId(), acl);
}
//去除掉那些没有读取权限的授权记录
Set entries = temp.entrySet();
for (Iterator iterator = entries.iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
ACL acl = (ACL)entry.getValue();
if(acl.getPermission(Permission.READ) != ACL.ACL_YES){
iterator.remove();
}
}
if(temp.isEmpty()){
return null;
}
String searchModules = "select m from Module m where m.id in (:ids) order by m.orderNo";
return getSession().createQuery(searchModules)
.setParameterList("ids", temp.keySet())
.list();
}
3.======================认证======================
--用户界面的每个CRUD操作相关的按钮和链接,通过认证决定其显示与否。
JSTL自定义函数:
<c:if test="${my:hasPermission(login.id,'orgmgr',CREATE)}">
<a href="#" onclick="openWin('org.do?method=addInput&parentId=${orgForm.parentId }','addorg',600,200);">添加机构信息</a>
</c:if>
分享到:
相关推荐
1、角色管理:添加角色、编辑角色、删除角色、角色授权 2、权限管理:添加权限、编辑权限、删除权限、 3、用户管理:添加用户、编辑用户、删除用户 4、日志管理:登录日志 5、文章管理:模拟菜单
又来分享一款基于最新thinkphp5开源框架5.0.13版本开发的通用后台权限管理系统,这是一款基于ThinkPHP5.0.13 + layui2.2.45 + ECharts +Mysql开发的后台管理框架,PHP版本要求提升到5.5。集成了一般应用所必须的基础...
授权到窗口按钮的权限管理
根据权限管理系统流程图可得到系统功能呢如下: (1) 游客注册功能:游客可以通过注册成为会员,从而进入系统。 (2) 普通用户功能:在前台界面中,只要注册成功的普通用户就可以进行会员的相关操作。 (3) 管理...
主要功能有:权限管理、角色管理、部门管理、用户管理、公司管理、模块管理、系统设置。适用 OA、财务、人力等办公软件系统 的二次开发,以关键字(Key)的方式来定义系统的权限,使系统权限分配更加贴合企业需求。...
“Kinguser授权管理”是由Kingroot团队开发的一款安卓手机权限管理软件,具有root权限授权、软件权限管理两大功能。 与Superuser相比,“Kinguser授权管理”具备以下6大特色,更适合Android开发者及普通用户使用: 1...
权限管理系统,或者资源授权管理中心,或者权限控制中台。资源空间(相当于应用系统)。资源组(相当于频道、模块)。资源可见(相当于菜单),可不见(相当于权限码)。主体组可见(相当于企业、机构、部门),不...
Winform通用框架之权限管理系统---------菜单,开发界面。 在csdn一篇博客中看到文章Winform通用框架之权限管理系统,但是只有文章没有源码就是耍流氓。于是自己写了出来,可用于所有管理系统的开发框架。 软件的...
基于SpringBoot + MyBatis + Layui的后台权限管理系统。代码简洁易懂、界面美观大方,内部封装了权限管理系统常用的全部功能,可直接作为快速开发JavaWeb项目的脚手架使用。 基于SpringBoot + MyBatis + Layui的...
PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理...
基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码简洁易读。 基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码简洁易读。 基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码...
3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合. 5)可视化编辑,全新的Menu和Tab控件.支持拖拉...
通用权限管理系统可练手可毕设,如果项目中有权限开发要求可直接拿来基础开发。 系统设计包括前端Vue框架和后端SpringBoot框架的搭建,以及数据库和权限控制模块的设计。前端使用Vue框架进行页面开发,利用Vue ...
权限管理,是针对权限管理这个模块进行练习的,其中用的是struts1框架和jequery等,仅供与参考。
ASP.NET通用权限管理系统源代码(含文档、数据库) 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性...
为了帮助企业方便快捷地管理商品信息的后台数据,开发了一个企业权限管理系统。该系统包括用户管理、角色管理、资源权限管理、基本数据管理模块;用户管理模块基于Spring Security的用户登录、退出操作,以及用户查询...
3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合. 5)可视化编辑,全新的Menu和Tab控件.支持拖拉...
权限管理权限管理
ASP.NET权限管理系统(FrameWork) 1.起源 在我们开发软件过程中,经常会需要开发一个后台管理程序.用于管理我们开发的前台软件. 当你开发的软件越来越多的时候,你的管理后台也会越来越多.这时如果有一个统一的管理...
它包含了一个适用于一般企业应用系统的框架,以及与用户权限管理相关的结构和模块,因此PB可以作为中小型企业应用系统或一般网站系统的实现参考或者项目雏形。 PB包括以下模块:职员登录、模块导航、系统代码管理、...