yotaku的开发日志(1),yotaku开发日志_PHP教程
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');
$manager_info = D('Manager')->find($mg_id); $role_id = $manager_info['mg_role_id'];
$role_info = D('Role')->find($role_id); $auth_ids = $role_info['role_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} |

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Jika anda ingin membuka vbs selepas menutupnya sebelum ini, anda juga boleh membukanya. Kita boleh menggunakan kod arahan untuk membukanya. Cara membuka win11vbs: 1. Pertama, kita klik pada “Start Menu”. 2. Kemudian klik "Windows Terminal". 3. Kemudian masukkan "bcdedit/sethypervisorlaunchtypeauto". 4. Kemudian mulakan semula komputer, buka menu mula, dan cari "maklumat sistem" dalam bar carian. 5. Kemudian semak sama ada "keselamatan berasaskan virtualisasi" dihidupkan.

vbs ialah singkatan dari Virtual-BasedSecurity, yang merupakan fungsi keselamatan berdasarkan virtualisasi. Walau bagaimanapun, dalam sistem Windows 11, ia dimatikan secara lalai. Bagi pengguna yang perlu menggunakan ciri ini, mereka mungkin tidak tahu cara mendayakannya. Nasib baik, kami boleh mendayakannya melalui Windows Terminal (sebagai pentadbir). Untuk kemudahan pengguna, kami akan berkongsi langkah terperinci dalam tutorial Win11 hari ini. Jika anda memerlukan maklumat lanjut, sila layari laman web kami. Tutorial untuk memulakan semula vbs dalam win11 1. Mula-mula, kita klik kanan menu mula di sebelah kiri bar tugas. 3. Kemudian masukkan bcdedit/sethypervisorlaun

Tutorial VBS Windows 11: Bagaimana untuk menutup aplikasi dengan anggun? Apabila menggunakan sistem pengendalian Windows 11 setiap hari, kita sering menghadapi situasi di mana kita perlu menutup berbilang aplikasi pada masa yang sama. Kadangkala kita lazimnya mengklik butang tutup, atau menggunakan pengurus tugas untuk menamatkan proses aplikasi satu demi satu. Walau bagaimanapun, menggunakan skrip VBS (VisualBasicScript) boleh menutup berbilang aplikasi serentak dengan lebih cekap, menjadikan operasi lebih lancar dan lebih mudah. 1.Apa itu

Windows Script Host menyediakan pengguna dengan persekitaran untuk melaksanakan skrip. Sesetengah skrip dilaksanakan sebaik sahaja anda log masuk ke komputer anda, dan yang lain mungkin dilaksanakan apabila anda mencetuskannya. Apabila anda log masuk ke komputer anda dan kemudian menemui ralat mengatakan ralat "Sistem tidak dapat mencari fail yang ditentukan", artikel ini akan membantu anda menyelesaikan masalah tersebut. Nah, sebab untuk masalah ini boleh berbeza seperti serangan malware atau pemasangan yang tidak betul atau beberapa fail telah dipadamkan dsb. Di sini kami mempunyai penyelesaian berbeza yang boleh anda cuba dan selesaikan masalah anda, jadi mari mulakan! Kaedah 1 – Muat turun utiliti autorun dan semak entri vbs Langkah 1 – Pergi ke laman web ini dan klik pada ikon muat turun di sudut kanan atas dan simpan Langkah 2 – Selepas memuat turun folder

Pertama sekali, perlu jelas bahawa menggunakan gurauan atau kod buli boleh menyebabkan kesusahan atau bahaya yang tidak perlu kepada orang lain. Adalah disyorkan untuk berfikir dua kali sebelum menulis dan melaksanakan sebarang bentuk kod jahat adalah tidak bertanggungjawab dan tidak beretika. Cara menggunakan kod penyuntingan vbs: 1. Fahami matlamat: sebelum menulis kod, anda perlu memahami matlamat yang hendak diintegrasikan 2. Tentukan matlamat: tentukan kesan yang ingin anda capai melalui skrip; : gunakan VBScript untuk menulis skrip; 4. Kod Ujian: Uji dahulu dalam persekitaran yang selamat 5. Pelaksanaan: Jika tiada masalah dengan ujian, ia boleh dilaksanakan.

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

Microsoft menolak dua kemas kini perkhidmatan pada DevChannel hari ini, bertujuan untuk menguji versi Win1124H2 saluran paip perkhidmatan. Kemas kini ini tidak mengandungi sebarang kandungan baharu dan disediakan semata-mata untuk menilai kefungsian dan kestabilan sistem. Menurut arahan rasmi, kebanyakan pengguna dalam saluran Dev akan menerima kemas kini terkumpul 26080.1300 (KB5037139), tetapi jika ciri keselamatan berasaskan virtualisasi (VBS) didayakan, mereka akan menerima Build 26080.1400 (KB5037140). Microsoft menekankan bahawa peranti Arm64 hanya akan menerima kemas kini KB5037139, walaupun ia telah mendayakan VBS. Nota Laman Utama IT: Keselamatan berasaskan maya (VBS) menggunakan virtualisasi perkakasan dan Windo

Win11 akan mendayakan fungsi perlindungan sistem vbs secara lalai Menurut ujian, mematikan fungsi ini boleh meningkatkan prestasi sistem hampir 30%, jadi sangat sesuai untuk pemain mematikannya. Cara menutup win11vbs 1. Pertama, kita klik pada "Start Menu" di bahagian bawah 2. Kemudian cari "Windows PowerShell" di bahagian atas dan klik "Run as Administrator". " dan tekan Enter untuk menjalankan. 4. Selepas operasi selesai, mulakan semula komputer untuk menutup vbs.
