权限表1111111

CREATE TABLE `tbl_permissions` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,

`module_name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,

`display_name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,

`display_order` int(11) DEFAULT NULL COMMENT '显示排序',

`description` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,

`disabled` tinyint(2) NOT NULL DEFAULT '0' COMMENT '废弃状态1废弃0正常',

`created_at` timestamp NULL DEFAULT NULL,

`updated_at` timestamp NULL DEFAULT NULL,

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `permissions_name_unique` (`name`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=206 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT COMMENT='权限';

CREATE TABLE `tbl_roles` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`channel_id` int(10) DEFAULT NULL COMMENT '渠道id',

`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

`display_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

`description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

`status` tinyint(1) DEFAULT '1' COMMENT '1正常 2 冻结',

`created_at` timestamp NULL DEFAULT NULL,

`updated_at` timestamp NULL DEFAULT NULL,

`role_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '部门的类型1渠道2集团',

`able_id` int(11) DEFAULT NULL COMMENT '关联id',

`able_type` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '关联Models',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `roles_name_unique` (`name`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=124 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT COMMENT='后台角色表';

CREATE TABLE `tbl_permission_role` (

`permission_id` int(10) unsigned NOT NULL,

`role_id` int(10) unsigned NOT NULL,

PRIMARY KEY (`permission_id`,`role_id`) USING BTREE,

KEY `permission_role_role_id_foreign` (`role_id`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT COMMENT='权限角色关联';

CREATE TABLE `tbl_roles` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`channel_id` int(10) DEFAULT NULL COMMENT '渠道id',

`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

`display_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

`description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

`status` tinyint(1) DEFAULT '1' COMMENT '1正常 2 冻结',

`created_at` timestamp NULL DEFAULT NULL,

`updated_at` timestamp NULL DEFAULT NULL,

`role_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '部门的类型1渠道2集团',

`able_id` int(11) DEFAULT NULL COMMENT '关联id',

`able_type` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '关联Models',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `roles_name_unique` (`name`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=124 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT COMMENT='后台角色表';

CREATE TABLE `tbl_role_user` (

`user_id` int(10) unsigned NOT NULL,

`role_id` int(10) unsigned NOT NULL,

PRIMARY KEY (`user_id`,`role_id`) USING BTREE,

KEY `role_user_role_id_foreign` (`role_id`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT COMMENT='角色用户对应表';

复制代码
 /**获取所有模块
     * @auther ifehrim@gmail.com
     * @return array
     */
    public static function reArray()
    {
        $res = [];
        $res1 = [];
        $data = [];
        $permission = request('permission',false); //区别操作日志模块调用和权限模块调用(权限模块调用传1 )

        $query = NewPermission::where(['disabled'=> 0]);

        if($permission) $query->where('is_show_left',$permission);

        $arr = $query->orderBy('display_order','desc')->get(['id','name','module_name','display_name','display_order','description','disabled','is_show_left'])->toArray();

        if (!empty($arr)) {
            foreach ($arr as $key=>$item) {
                $r = explode(".", $item["name"]);
                if (count($r) == 2) {
                    if (!isset($res[$item["module_name"]][$r[0]])) {
                        $data[$item["module_name"]]['name'] = $item["module_name"];
                        $data[$item["module_name"]]['children'][$item['display_name']][] = $item;
                    }
                }
            }

            foreach ($data as $k=>&$v) {
                if(isset($v['children'])) $res[] = array_values($v['children']);
            }

            foreach ($res as $k1=>&$v1) {
                if(isset($v1[0]) && isset($v1[0][0])){
                    $res1[$k1]['name'] =  $v1[0][0]['module_name'];
                    $res1[$k1]['children'] = $v1;
                }
            }
        }
        return $res1;
    }

}

//左侧栏

复制代码
static public function getUserPermission()
 {
     $user= auth()->user();
     $result = NewRoleUser::getPermissionIds($user->id);
     $permission_ids ['permission_id']= !empty($result) ? array_values(array_unique(array_column($result,'new_permission_id'))) : [];
     $permission_ids['user_info']['username'] = $user['username'];
     $permission_ids['user_info']['phone'] = $user['phone'];
     $permission_ids['user_info']['u_type'] = $user['u_type'];
     $permission_ids['user_info']['cname'] = $user['u_type'] == 3 ? $user['channel_name'] : $user['group_name'];
     if($user['u_type'] == 1)  $permission_ids['user_info']['cname'] = '智能科技发展(上海)有限公司';
     $permission_ids['user_info']['cid'] = '';

     if($user->able_id >= 0 && $user->able_type){
         if($user->able instanceof NewChannel) {
             $permission_ids['user_info']['cname'] =  $user->able->channel_name;
             $permission_ids['user_info']['cid'] =  $user->able->cid;
             $permission_ids['user_info']['group_type'] =  0;
         }
         if($user->able instanceof Bloc) {
             $permission_ids['user_info']['cname'] =  $user->able->full_name;
             $permission_ids['user_info']['cid'] =  $user->able->id;
             $permission_ids['user_info']['group_type'] =  $user->able->id;
         }
     }

     return $permission_ids;
 }
相关推荐
Ming_studying3 分钟前
Python + SQLite FTS5 构建本地文档全文搜索器:增量索引、中文检索与高亮
jvm·数据库·python·sqlite
云和恩墨25 分钟前
从静态备份到极速恢复:zData S重构多元数据库时代的“第二存储”底座
数据库·重构
吴声子夜歌39 分钟前
MongoDB 8.0——存储
数据库·mongodb
网教盟人才服务平台1 小时前
Redis Key集中过期引发的流量雪崩实战解析
数据库·redis·缓存
AI大模型-小华1 小时前
ChatGPT充值后Codex误改数据库怎么办?用迁移审查避免数据丢失
数据库·chatgpt·codex·chatgpt plus·chatgpt pro·chatgpt充值
吴声子夜歌1 小时前
MongoDB 8.0——索引
数据库·mongodb
影寂ldy2 小时前
WinForm 完整版分页查询(多条件搜索+页码切换+每页条数切换)
数据库
_oP_i2 小时前
Another Redis Desktop Manager更新
数据库·redis·缓存
IT小盘2 小时前
08-向量数据库选型-Chroma-FAISS-Milvus-pgvector
数据库·人工智能·milvus·faiss
宋浮檀s2 小时前
春秋云境——CVE-2022-28512
数据库·安全·web安全