权限管理由三部分组成:
授权、登录、认证
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>
分享到:
相关推荐
本文将深入探讨C#中的权限管理系统,包括授权、授权管理以及权限控制的相关概念和实践方法。 首先,我们要理解“权限”这一核心概念。在软件系统中,权限通常指的是用户或角色对系统资源(如文件、功能、窗口按钮等...
1、角色管理:添加角色、编辑角色、删除角色、角色授权 2、权限管理:添加权限、编辑权限、删除权限、 3、用户管理:添加用户、编辑用户、删除用户 4、日志管理:登录日志 5、文章管理:模拟菜单
授权管理程序,如文中提到的"授权管理-Root手机后权限管理利器",是专门为Root后的Android设备设计的工具,用于管理和控制各个应用程序对Root权限的访问。这些工具通常具有以下关键功能: 1. **授予和管理ROOT权限*...
"授权管理"就是在Root后对这些高级权限进行管理的重要工具。 "授权管理-Root手机后权限管理利器"是一款专为已经Root的Android设备设计的应用,由刷机大师团队开发。它提供了全中文界面,使得普通用户也能轻松理解和...
又来分享一款基于最新thinkphp5开源框架5.0.13版本开发的通用后台权限管理系统,这是一款基于ThinkPHP5.0.13 + layui2.2.45 + ECharts +Mysql开发的后台管理框架,PHP版本要求提升到5.5。集成了一般应用所必须的基础...
- 授权管理允许管理员将基本权限或角色授予用户或用户组。如果用户同时属于多个角色、职位或项目组,则用户最终的权限是所有来源权限的合并。 #### 七、物理数据模型 基于上述设计思想,权限管理系统需要构建以下...
- **授权管理**:包括系统用户管理、属性管理和模块管理,支持对用户、属性和模块资源的分配。 - **鉴权服务**:提供登录和权限调用接口,确保用户能够正确登录并拥有进行特定操作的权限。 - **日志管理**:记录用户...
ASP.NET通用权限管理系统源代码(含文档、数据库) 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性...
**权限管理系统概述** 权限管理系统是IT行业中至关重要的组成部分,它主要用于控制不同用户对系统资源的访问权限。在JSP(JavaServer Pages)技术的支持下,我们可以构建一个灵活且功能强大的权限管理解决方案。JSP...
在权限管理系统的实现中,ASP.NET 2.0的内置身份验证和授权机制起到了关键作用。 权限管理的核心是用户认证与授权。在ASP.NET中,这通常通过Forms身份验证实现,用户通过登录界面提供凭证,系统验证后授予访问权限...
授权功能使得管理员能将角色赋予特定的用户或用户组,确保他们能根据角色获取相应的访问权限。 分组管理进一步细化了权限控制。分组可以看作是角色的一个集合,管理员可以创建、编辑或删除分组,并对分组内的成员...
在IT行业中,权限管理系统是软件应用中的重要组成部分,它用于控制不同用户对系统资源的访问。本项目"用户权限管理模块(C++实现)"是一个用C++编程语言实现的权限管理解决方案,它包含了几个核心功能,如单例模式、...
1. 权限管理模型:该模型基于企业资源统一管理和授权,实现了对不同系统使用者的权限管理。 2. 资源管理:通过资源分组和角色构建,实现了对资源的细粒度化管理。 3. 角色管理:构建了系统的管理角色树,业务角色和...
在"pas_right.rar_DELPHI 权限_DELPHI 权限管理_Delphi管理系统"这个压缩包中,重点讨论的是如何在Delphi环境中实现权限管理和数据库管理系统的构建。 权限管理是任何复杂系统的核心组成部分,特别是在涉及到用户...
“Kinguser授权管理”是由Kingroot团队开发的一款安卓手机权限管理软件,具有root权限授权、软件权限管理两大功能。 与Superuser相比,“Kinguser授权管理”具备以下6大特色,更适合Android开发者及普通用户使用: 1...
【PHP权限管理系统源代码】是基于PHP编程语言开发的一个用于管理用户权限的系统。这个系统在个人学习PHP的过程中,由专业导师指导完成,提供了一种有效地控制和分配不同用户访问和操作权限的方法。通过理解并分析这...
它允许管理员精确地控制不同用户和角色对数据库对象的访问权限,从而防止未经授权的数据访问或修改。 1.1 概述 Greenplum的权限系统遵循PostgreSQL的模型,允许管理员为不同的用户或角色定义权限级别。权限分为多种...
【标题】"管理系统系列--后台管理系统,集成权限管理"揭示了这是一个专为后台操作设计的系统,具有用户管理和权限控制的核心功能。此类系统通常用于企业级应用,帮助管理员有效地管理用户账户,分配不同级别的访问...