ThinkPHP 中权限管理控制(RBAC)

1.  查询当前用户可以访问哪些应用

select node.id,node.name from rice_role as role, rice_role_user as user,

rice_access as access, rice_node as node where user.user_id=3 and

user.role_id=role.id and (access.role_id=role.id or (access.role_id=role.pid and role.pid!=0))

and role.status=1 and access.node_id=node.id  and node.level=1 and node.status=1 group by id

2. 查询当前用户可以访问哪些模块

SELECT node.id, node.name

FROM rice_role AS role, rice_role_user AS user, rice_access AS access, rice_node AS node

WHERE user.user_id =3

AND user.role_id = role.id

AND (

access.role_id = role.id

OR (

access.role_id = role.pid

AND role.pid !=0))

AND role.status =1

AND access.node_id = node.id

AND node.level =2

AND node.pid =1

AND node.status =1 group by id

3. 查询具体模块对应的方法

select node.id,node.name from

rice_role as role,

rice_role_user as user,

rice_access as access ,

rice_node as node

where user.user_id=3 and user.role_id=role.id and ( access.role_id=role.id  or (access.role_id=role.pid and role.pid!=0 ) ) and role.status=1 and access.node_id=node.id and node.level=3 and node.pid={$moduleId} and node.status=1  group by
id

ThinkPHP 中权限管理控制(RBAC)

时间: 2024-12-30 01:47:41

ThinkPHP 中权限管理控制(RBAC)的相关文章

ThinkPHP中:RBAC权限控制的实习步骤

使用版本ThinkPHP3.1.3 第一步,建表及数据 第二步,建关联模型 第三步,控制器使用关联模型.配置文件 第四步,模板显示数据 第一步,建表及数据 在数据库中,建立一个companysvn数据库,库下建立五张表 建表好导入数据的代码如下 1 # -------------------------------------------------------- 2 # Host: 127.0.0.1 3 # Server version: 5.0.45-community-nt-log 4

thinkphp 中调用root权限python脚本

默认thinkphp使用apache用户,没有权限执行具有root权限的后台脚本,需要使用sudo. root权限下修改/etc/sudoers 添加文件的写权限:chmod u+w /etc/sudoers 编辑/etc/sudoers文件,找到这一 行:"root ALL=(ALL) ALL" 在起下面添加"apache ALL=(ALL)       NOPASSWD: ALL",然后保存退出. 撤销文件的写权限:chmod u-w /etc/sudoers

thinkphp rabc权限总结

今天晚上把ThinkPHP的权限分配弄明白了,心里的包袱立刻放下了,感觉那个爽啊!稍微记录一下. 背景:CMS系统开发(17do). 项目分组:Admin(后台管理).Home(前台显示). Admin组中包含ManagerAction.UserActin.ArticleAction三个控制器 第一部分:表关系对应(箭头是指数据来源) 其中表结构式根据RBAC规定的结构创建的. 定义结果:站长1能访问项目用户和文章的所有操作,管理员3只能对文章模块操作不能访问用户模块. 第二部分:项目配置 项目

ThinkPHP中Session用法详解

在ThinkPHP封装了Session类,用户可以直接使用,常用的方法有: Session::set(name, value):注册 session . Session::is_set(name):检查Session的值是否设置. Session::get(name):读取 session . Session::clear():清空Session. Session::destroy():销毁 session . ThinkPHP 默认开启了 session 会话,因此在使用 Session 类之

thinkphp自定义权限管理之名称判断

权限管理,就是给不同的用户分配不同的权限.当用户登录或者操作时候进行判断,来阻止用户进行权限以外的操作.本次讲的是当用户登录一刻,只显示权限开启的内容. 一.建立数据库. 1.权限表funcla.来存储录入所有权限,也是避免因权限名称修改了,权限失效的问题. 2.管理员表admin.主要存储管理员用户名等信息. 3.管理员对应权限表funadmin.主要存储已开启的管理员id与权限id. 二.输出权限列表. 1.通过管理员列表进入权限分配. 2.权限分配列表. 关于权限分配列表,因为权限板块的不

k8s权限认证rbac基础问题分析和解决思路记录

1.从一个报错开始 这是集群部署成功后,执行报的一个错误 [[email protected] ~]# kubectl logs? httpd-app-6dc78c4869-8dmmq Error from server (Forbidden): Forbidden (user=kubernetes, verb=get, resource=nodes, subresource=proxy) ( pods/log httpd-app-6dc78c4869-8dmmq) 根据报错来思考:用户kube

ThinkPHP中的视图

ThinkPHP中的视图View 1.什么是视图View 所谓的视图就是用户可视化操作界面. 2.视图View组成 view类(模板引擎类似Smarty) 模板文件(html模板) 3.视图的定义 默认视图的定义规则: ./项目目录/Home或Admin模块下的View文件夹/Public控制器名称/login操作方法.html ① 在控制器中定义相关操作方法,如下图所示: ② 在./Application/Admin/View/Public文件夹下创建login.html模板文件 ③ 显示效果

ThinkPHP中的模型

ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型类的关键词Model,再加上类文件后缀.class.php 案例:实现移动办公自动化系统的组织结构功能 ① 设计数据库db_think ② 设计数据表结构(tk_dept) id ???? 编号 ????int 自动增长 主键 name 部门名称 varchar(4

ThinkPHP中 按条件查询后列表显示

最近在项目中遇到了需要根据下拉框的条件筛选出符合条件的数据,然后进行列表显示的问题. 在ThinkPHP中进行列表显示的传统过程:通过在后台控制器中查询出数据,然后通过$this->assign()来实现控制器数据向页面的传递,在页面中通过<foreach>或<volist>标签来进行数据的解析,(注:在通过标签进行数据的解析时需要以“$”符号的形式). 在进行条件查询时,需要通过jquery中ajax的方式将条件GET到后台控制器,后台控制器中接收数据,然后根据条件进行查询