yotaku的开发日志(1),yotaku开发日志
2015-12-18 21:17:46
连续看了几天的ThinkPHP框架,目前看到基于角色的用户访问权限控制。
相关代码如下:
数据库
用户表(管理员)
mg_id | mg_name | mg_pwd | mg_time | mg_role_id |
---|---|---|---|---|
0 | creatint | 123 | 2587413547 | 1 |
1 | yotaku | 123 | 258744984 | 4 |
CREAATE TABLE `sw_manager` ( `mg_id` int(11) NOT NULL AUTO_INCREMENT, `mg_name` varchar(32) NOT NULL, `mg_pwd` varchar(32) NOT NULL, `mg_time` int(10) unsigned NOT NULL COMMENT '时间', `mg_role_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '角色id', PRIMARY KEY (`mg_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
权限表
auth_id(权限ID) | auth_name(权限名称) | auth_pid(父id) | auth_c(控制器) | auth_a(操作方法) | auth_path(全路径) | auth_level(权限级别) |
---|---|---|---|---|---|---|
100 | 产品中心 | 0 | '' | '' | 100 | 0 |
101 | 产品展示 | 100 | ManagerController | show | 100-101 | 1 |
CREATE TABLE `sw_auth` ( `auth_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `auth_name` varchar(20) NOT NULL COMMENT '权限名称', `auth_pid` smallint(6) unsigned NOT NULL COMMENT'父id', `auth_c` varchar(32) NOT NULL DEFAULT '' COMMENT '控制器', `auth_a` varchar(32) NOT NULL DEFAULT '' COMMENT '操作方法', `auth_path` varchar(32) NOT NULL COMMENT '全路径', `auth_level` tinyint(4) NOT NULL DEFAULT '0' COMMENT '级别', PRIMARY KEY(`auth_id`) ) ENGING-InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
角色表
role_id | role_name | role_auth_ids | role_auth_ac |
---|---|---|---|
0 | 站主 | 1,3,9 | 操作器-控制器,操作器-控制器,... |
1 | 高级管理员 | 1,2,3,9,12 | 操作器-控制器,操作器-控制器,... |
CREATE TABLE `sw_role` ( `role_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `role_name` varchar(20) NOT NULL COMMENT '角色名称', `role_auth_ids` varchar(128) NOT NULL DEFAULT '' COMMENT '权限id,1,3,..', `role_auth_ac` text COMMENT '控制器2-操作3,控制器1-操作6,...', PRIMARY KEY(`role_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;<br /><br />
数据模拟:
1.权限数据
产品中心(产品展示,最新产品,分类管理,子类管理) 高级管理(用户留言,留言簿,产品订购,文件管理) 系统管理(基本设置,样式管理,首页设置,管理员列表)
<span class="zhushi">顶级权限</span> insert into sw_auth values ( 100,'产品中心',0,'','',100,0 ); insert into sw_auth values ( 101,'高级管理',0,'','',101,0 ); insert into sw_auth values ( 102,'系统管理',0,'','',102,0 ); insert into sw_auth values ( 103,'权限管理',0,'','',103,0 ); <span class="zhushi">次级权限</span> insert into sw_auth values ( 104,'产品展示',100,'Goods','show','100-104',1 ); insert into sw_auth values ( 105,'最新产品',100,'Goods','showlist','100-105',1 ); insert into sw_auth values ( 106,'分类管理',100,'Goods','cate','100-106',1 ); insert into sw_auth values ( 107,'用户留言',101,'Goods','words','101-107',1 ); insert into sw_auth values ( 108,'留言簿', 101,'Goods','wordsbook','101-108',1 ); insert into sw_auth values ( 109,'基本设置',102,'Goods','set','102-109',1 ); insert into sw_auth values ( 110,'样式管理',102,'Goods','css','102-110',1 ); insert into sw_auth values ( 111,'用户列表',103,'Goods','userlist','103-111',1 ); insert into sw_auth values ( 112,'角色管理',103,'Goods','role','103-112',1 ); insert into sw_auth values ( 113,'权限列表',103,'Goods','auth','103-113',1 );
2.角色数据
sw_role 站主 所有权限(103,104,105,106,107,108,109) 管理员 部分权限(104,105,109) 版主 部分权限(103,108)
<span class="zhushi">角色</span> insert into sw_role values (10,'站主','100,101,102,103,104,105,106,107,108,109,110,111,112,113','Goods-show,Goods-showlist,Goods-cate,Goods-words,Goods-wordsbook,Goods-set,Goods-css'); insert into sw_role values (11,'管理员','100,102,104,105,109','Goods-showlist,Goods-cate,Goods-css'); insert into sw_role values (12,'版主','100,101,103,106,108,113','Goods-show,Goods-set');
3.流程说明
Index控制器内 获取用户的角色id,进而获得角色权限 进行判断是否展现数据 Index控制器--->left方法--->left.html模板 Index控制器
//(1)根据用户id获取本身记录信息$mg_id = session('admin_id');//D('Manager')实例化了一个Manager的Model对象
$manager_info = D('Manager')->find($mg_id); $role_id = $manager_info['mg_role_id'];//(2)根据role_id 获得本身记录信息
$role_info = D('Role')->find($role_id); $auth_ids = $role_info['role_auth_ids'];//(3)根据$auth_ids 获得具体权限
$auth_infoA = D('Auth')->where("auth_level=0 and auth_id in($auth_ids)")->select();//父级
$auth_infoB = D('Auth')->where("auth_level=1 and auth_id in($auth_ids)")->select();//子级
$this->assign('auth_infoA',$auth_infoA); $this->assign('auth_infoB',$auth_infoB);//传到模板中
$this->assign('auth_info',$auth_info); $this->display();
4.模板 left.html
{foreach $auth_infoA as $k=>$v}background={$smarty.const.ADMIN_IMG_URL}/menu_bt.jpg >{$v.auth_id}) href="javascript:void(0);">{$v.auth_name} |
![]() | {$v2.auth_name} |

要是之前将vbs关闭之后想要开启了,也是可以开启的,我们可以使用命令代码将其开启,下面一起来看看如何开启vbs吧,其实还是很简单的。win11vbs如何开启:1、首先我们点击“开始菜单”。2、然后点击“windows终端”。3、接着输入“bcdedit/sethypervisorlaunchtypeauto”。4、然后重启电脑,打开开始菜单,在搜索栏中搜索“系统信息”。5、然后找打“基于虚拟化的安全性”是否开启即可。

vbs是Virtual-BasedSecurity的缩写,它是一种基于虚拟化的安全性功能。然而,在Windows11系统中,默认情况下是关闭的。对于需要使用这个功能的用户来说,他们可能不知道如何启用。幸运的是,我们可以通过Windows终端(以管理员身份)来启用它。为了方便广大用户,我们将在今天的Win11教程中分享详细的步骤。如果你需要了解更多信息,请访问我们的网站。win11重新开启vbs教程1、首先我们右键任务栏左边的开始菜单。3、然后输入bcdedit/sethypervisorlaun

Windows11VBS教程:如何优雅地关闭应用程序?在日常使用Windows11操作系统时,我们经常会遇到需要同时关闭多个应用程序的情况。有时候我们可能会习惯性地点击关闭按钮,或者使用任务管理器来逐个结束应用程序进程。然而,使用VBS脚本(VisualBasicScript)可以更加高效地一次性关闭多个应用程序,让操作更加流畅和便捷。1.什么是

Windows 脚本主机为用户提供了执行脚本的环境。一些脚本会在您登录到计算机后立即执行,其他一些脚本可能会在您触发它们时执行。当您登录到计算机,然后发现错误说“系统找不到指定的文件”错误时,本文将帮助您解决问题。好吧,此问题的原因可能有所不同,例如恶意软件攻击或安装不当,或者某些文件已被删除等。在这里,我们有不同的解决方案,您可以尝试并解决问题,所以让我们开始吧!方法 1 – 下载自动运行实用程序并检查 vbs 条目步骤 1 –转到此网站,然后单击右上角的下载图标并保存步骤 2 –下载文件夹后

首先需要明确使用恶作剧或整人代码可能会对他人造成不必要的困扰或伤害。在编写和实施任何形式的整人代码之前,建议三思而后行,这种行为是不负责任和不道德的。vbs整人代码使用方法:1、了解目标:编写代码前,需要了解要整的目标;2、确定目标:确定想要通过脚本实现什么效果;3、编写代码:使用VBScript编写脚本;4、测试代码:先在一个安全的环境中测试它;5、实施:测试没问题即可实施。

vbs是基于Visual Basic的脚本语言,VBS的全称是“Microsoft Visual Basic Script Edition”;因为VBS较为简单可行性强,所以在打开VBS文件之前要确保VBS的安全性和渠道的可信性。

微软今日在DevChannel推送了两项服务更新,旨在测试Win1124H2版本的服务管道。这些更新并未包含任何新内容,仅为了评估系统功能和稳定性。根据官方说明,大部分在Dev频道的用户将会收到26080.1300累积更新(KB5037139),但是如果启用了基于虚拟化的安全性(VBS)功能,则会收到Build26080.1400(KB5037140)。微软强调,即使Arm64设备启用了VBS,也只会收到KB5037139更新。IT之家注:基于虚拟化的安全功能(VBS)使用硬件虚拟化和Windo

win11默认会开启一个vbs系统保护功能,根据测试在关闭该功能之后能够提升接近30%的系统性能,因此非常适合游戏玩家关闭它,那么win11vbs怎么关闭呢。win11vbs怎么关闭1、首先我们点开底部“开始菜单”2、然后在上方搜索“Windowspowershell”并点击“以管理员身份运行”3、打开后输入“bcdedit/sethypervisorlaunchtypeoff”并回车运行。4、运行完成后,重启电脑就可以关闭vbs了。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版
视觉化网页开发工具