【獨家推薦】小狐貍GPT付費AI體驗系統(tǒng):菜單權(quán)限定制,讓你輕松暢享!
這是一篇關(guān)于小狐貍GPT后臺菜單權(quán)限控制的簡介,介紹了如何在Web應(yīng)用程序中實現(xiàn)該功能。文章中提供了一個基本的邏輯和代碼示例,包括定義用戶角色和權(quán)限等級、驗證用戶是否有權(quán)限訪問頁面以及相關(guān)的數(shù)據(jù)庫設(shè)計和代碼實現(xiàn)。如果你需要為自己的Web應(yīng)用添加權(quán)限控制功能,這篇文章可以作為一個很好的參考。
由于開發(fā)未使用super平臺多商戶,只使用admin平臺。所以需要按排不同的用戶帳號登錄來控制不同的菜單權(quán)限及數(shù)據(jù)列表和維護權(quán)限。

第一,數(shù)據(jù)表的創(chuàng)建及關(guān)系
角色:角色是指用戶在系統(tǒng)中扮演的身份,每個角色都具有特定的權(quán)限和訪問范圍。如管理員、普通用戶、編輯等。
角色組:角色組是將多個角色歸納為一組,方便統(tǒng)一管理和授權(quán)。例如,將“管理員”、“超級管理員”等角色放在同一個角色組中。
管理員:管理員是指擁有管理權(quán)限的用戶,可以進(jìn)行系統(tǒng)配置、用戶管理、數(shù)據(jù)管理等操作。管理員通常被分配到擁有最高權(quán)限的角色組中,如“超級管理員”。
通常情況下,一個管理員賬戶擁有一個或多個角色,這些角色可能屬于不同的角色組。管理員可以根據(jù)自己的需要來分配或取消某些角色,并授予或撤銷相應(yīng)的訪問權(quán)限。通過這種方式,可以保證系統(tǒng)安全性和靈活性的平衡,同時也方便管理員進(jìn)行管理和授權(quán)。
1>創(chuàng)建角色
CREATE TABLE `fox_chatgpt_role` (
? `id` int(11) NOT NULL AUTO_INCREMENT,
? `remark` varchar(255) DEFAULT NULL COMMENT '備注',
? `role` varchar(10) DEFAULT NULL,
? `status` tinyint(3) NOT NULL DEFAULT '0',
? PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb4;
2》創(chuàng)建角色組
CREATE TABLE `fox_chatgpt_role_group` (
? `role_group_id` int(5) NOT NULL AUTO_INCREMENT,
? `name` varchar(36) CHARACTER SET utf8 DEFAULT NULL COMMENT '分組名稱',
? `status` tinyint(4) DEFAULT NULL COMMENT '狀態(tài) 10正常 0禁用',
? `role` tinyint(4) DEFAULT NULL COMMENT '角色類別 1超級管理員 2普通管理員',
? PRIMARY KEY (`role_group_id`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=ujis;
3》創(chuàng)建登錄用戶和用戶的role_group
CREATE TABLE `fox_chatgpt_super` (
? `id` int(11) NOT NULL AUTO_INCREMENT,
? `username` varchar(255) DEFAULT NULL,
? `phone` varchar(255) DEFAULT NULL,
? `password` varchar(255) DEFAULT NULL,
? `role_group` int(11) NOT NULL DEFAULT '0' COMMENT '角色組',
? `realname` varchar(255) DEFAULT NULL COMMENT '昵稱',
? `avatar` varchar(255) DEFAULT '/static/img/avatar.png',
? `remark` varchar(255) DEFAULT NULL,??
? `create_time` int(11) DEFAULT '0' COMMENT '創(chuàng)建時間',
? `is_superuser` bigint(1) NOT NULL DEFAULT '0' COMMENT '超級管理員',
? `status` bigint(1) NOT NULL DEFAULT '0' COMMENT '0表示禁用 1在用',
? PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
第二代碼:
menu.php
第三部分:
? ? 使用接口輸出到前端vue頁面,展示菜單。
注:可以加微交流
