liferay中有几个概念

1、user_ 表存放liferay的用户

2、usergroup 用户组

3、角色

4、组织,组织可以是站点的成员

5、站点

6、团队

liferay中所有的东西都被视为是资源

而权限和资源挂钩

在Liferay里面存储权限的表主要涉及两个表,一个叫resourcepermission(资源权限表)。此表定义了Liferay里面权限结构,里面的表结构主要字段含义如下:

  • Name:资源对象的描述,如果资源描述的是一个portlet对象,则为这个portlet对象的portletId.如果是一个class, 则为带包名的class全名称
  • Scope:权限的作用域,值有1、2、3、4,1表示company级就是实例、2表示group级就是站点级,3是站点模板,4是没级,就表示当前的。
  • Primkey:资源的ID
  • Roleid:角色id
  • Ownerid:资源的属于哪一个人,一般值为0或创建的用户id
  • Actionids:这里的actionids为resourceaction表里面的bitwisevalue的值的相加之和。

另外一张表为:resourceaction(资源动作表),此表定义了Liferay中的相应的资源上可执行的动作有哪些。主要的表结构字段如下:

  • Name: 定义了资源的类型,同上面的表一样,确定资源是portlet还是实体或者是其他,表示是什么资源。
  • actionId:可执行的动作名称,这里主要是为我们的动作启一个名称,如添加、修改、配置等。
  • bitwisevalue:这个定义的为上面可执行动作的位值,也可以看作是权限的动作ID。

所以我们如果要判断bitwisevalue的值是否在actionids里面,只需要两个做位运算,actionids|bitwisevalue是否等于bitwisevalue即可。

那么判断这个用户是否有对应的权限(actionId)

1、获取当前访问页面的pageid

2、获取当前用户的角色

3、根据pageid-》primkey + roleId 查询当前记录中的actionsids字段

4、resourcepermission表中的name和actionId(这个就是权限),对应的bitwiseValue获取

5、actionids|bitwisevalue是否等于bitwisevalue 如果等于,标识有这个权限,或运算

判断是否有对应权限

这个角色只有添加到页面的权限

【liferay】4、liferay的权限体系的更多相关文章

  1. 浅谈Oracle权限体系

    对于数据库来讲,安全性的重要程度不言而喻,今天我们就来聊一聊Oracle的权限体系. 1.账户管理 在此之前,先解释下一个容易混淆的概念:模式.所谓模式,指的是用户账户所拥有的一组对象(比如表,索引, ...

  2. sqlserver权限体系(下)

    简介 在上一篇文章中,我对主体的概念做了全面的阐述.本篇文章接着讲述主体所作用的安全对象以及所对应的权限. 理解安全对象(Securable) 安全对象,是SQL Server 数据库引擎授权系统控制 ...

  3. sqlserver权限体系(上)

    简介 权限两个字,一个权力,一个限制.在软件领域通俗的解释就是哪些人可以对哪些资源做哪些操作. 在SQL Server中,”哪些人”,“哪些资源”,”哪些操作”则分别对应SQL Server中的三个对 ...

  4. 理解SQL Server中的权限体系(下)----安全对象和权限

    原文:http://www.cnblogs.com/CareySon/archive/2012/04/12/SQL-Security-SecurableAndPermission.html 在开始阅读 ...

  5. 理解SQL Server中的权限体系(上)----主体

    原文:http://www.cnblogs.com/CareySon/archive/2012/04/10/mssql-security-principal.html 简介 权限两个字,一个权力,一个 ...

  6. sql server drop talbe 自动删除关联的外键 ,权限体系(一)

    if object_id('Proc_DropTableWithFK') is not null begin drop proc dbo.Proc_DropTableWithFK end GO ) a ...

  7. mysql数据库的权限体系介绍

    一.权限体系简介: MySQL的权限体系在实现上比较简单,相关权限信息主要存储在mysql.User.mysql.db.mysql.Host.mysql_table_priv和mysql.column ...

  8. MySQL数据库权限体系介绍

    本文主要向大家介绍了MySQL数据库权限体系,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 一.权限体系简介: MySQL的权限体系在实现上比较简单,相关权限信息主要存储在mys ...

  9. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  10. mysql学习笔记二 —— 权限体系

    要点: 1.MySQL的API2.MySQL的相关文件3.MySQL的权限体系 1.MySQL的API 应用程序接口 (application program interface) 1.1 命令行中的 ...

随机推荐

  1. android 自动更新

    http://blog.csdn.net/zml_2015/article/details/50756703

  2. 内联/块级元素的宽高及margin/padding的说明 |||||| 为何img、input等内联元素可以设置宽、高

    1,内联非替换元素设置宽高是无效的,设置margin时,左右有效,上下无效.设置padding时,左右有效,而上下padding比较奇葩,内联非替换元素的上下padding会在元素内容盒不动的情况下上 ...

  3. Everything的简单使用

    1.Everythings下载地址: http://www.voidtools.com/ 下载完后直接解压,运行everything.exe即可打开使用: 2.基本设置 (1)去除不需要搜索的文件夹: ...

  4. vip导致的serverConnection closed by foreign host问题

    问题描述: 应应用需求,设计搭建了一套带tokudb存储引擎的percona数据库,使用的是常见的双主架构.具体的架构如下图所示: 在172.20.32.x1上进行验证的时候出现了下面的问题: FHo ...

  5. What's New In Python 3.X

    As Python updating to python 3.6, its performance is better than Python 2.x, which is good news to e ...

  6. 正则表达式Regular expressions

    根据某种匹配模式来寻找strings中的某些单词 举例:如果我们想要找到字符串The dog chased the cat中单词 the,我们可以使用下面的正则表达式: /the/gi 我们可以把这个 ...

  7. MapGIS10.3新功能

    智能的GIS 支持开放的数据集.数据库.等等 T-C-V 软件结构是继局部网软件的 C/S 结构,互联网软件的 B/S 结构发展起来的适合云 计算.云服务的新一代软件三层结构,分别为终端应用层(T 层 ...

  8. Qt_HelloWrold

    新建工程 -> 选择Qt Gui 应用 然后点击选择 在弹出的对话框中填写名称,创建路径等信息: 点击下一步,选择该工程的编译器. 点击下一步,可以选择生成的主窗口文件.不过这里我们仅仅用简单的 ...

  9. 【python】Python 中的 classmethod 和 staticmethod

    Python 中的 classmethod 和 staticmethod 有什么具体用途? 推荐地址:http://www.cnblogs.com/wangyongsong/p/6750454.htm ...

  10. Foundation-NSOperation-NSInvocationOperation/NSBlockOperation/NSOperationQueue

    iOS多线程编程技术之NSThread.Cocoa NSOperation.GCD 线程之间的通信 iOS开发系列--并行开发其实很容易 GCD由浅入深学习 iOS多线程NSOperation/Que ...