目录
yotaku的开发日志(1),yotaku开发日志
首页 后端开发 php教程 yotaku的开发日志(1),yotaku开发日志_PHP教程

yotaku的开发日志(1),yotaku开发日志_PHP教程

Jul 12, 2016 am 09:03 AM
vbs

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_idrole_namerole_auth_idsrole_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}
    {$v.auth_id}>      {foreach $auth_infoB as $k2=>$v2}        {if $v2.auth_pid == $v.auth_id}                              {/if}      {/foreach}          
yotaku的开发日志(1),yotaku开发日志_PHP教程{$v2.auth_name}           
  {/foreach}  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1081947.htmlTechArticleyotaku的开发日志(1),yotaku开发日志 2015-12-1821:17:46 连续看了几天的ThinkPHP框架,目前看到基于角色的用户访问权限控制。 相关代码如下: 数...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何启用Win11的VBS功能 如何启用Win11的VBS功能 Dec 25, 2023 pm 02:09 PM

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

win11系统怎么打开vbs?win11重新开启vbs的方法 win11系统怎么打开vbs?win11重新开启vbs的方法 Jan 31, 2024 pm 11:24 PM

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

Windows11 VBS教程:如何优雅地关闭应用程序? Windows11 VBS教程:如何优雅地关闭应用程序? Mar 08, 2024 am 11:54 AM

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

Windows 脚本主机错误“系统找不到指定的文件”修复 Windows 脚本主机错误“系统找不到指定的文件”修复 Apr 13, 2023 pm 12:22 PM

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

微软在 Windows 11 Dev 频道测试 24H2 版本服务管道情况,开启 VBS 后将收到 26080.1400 更新 微软在 Windows 11 Dev 频道测试 24H2 版本服务管道情况,开启 VBS 后将收到 26080.1400 更新 Mar 19, 2024 pm 01:25 PM

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

vbs整人代码怎么用 vbs整人代码怎么用 Nov 22, 2023 am 10:05 AM

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

vbs是什么文件 vbs是什么文件 Feb 19, 2021 pm 02:43 PM

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

如何关闭Win11中的vbs脚本 如何关闭Win11中的vbs脚本 Jan 02, 2024 pm 11:23 PM

vbs是win11默认开启的一个功能,这项功能打开之后会降低我们电脑30%左右的性能,我们只有将其关闭才可以获得更好的游戏体验感,那么应该如何关闭呢,一起来看看吧。win11vbs如何关闭:1、首先点击“开始”菜单。2、接着在上方搜索“windowspowershell”然后以管理员身份运行。3、打开之后输入“bcdedit/sethypervisorlaunchtypeoff”并按下回车。4、最后运行完成重启就可以关闭了。

See all articles