首页 > 编程知识 正文

数据库用户权限设计,数据库用户角色权限设计

时间:2023-05-06 14:46:10 阅读:59023 作者:2304

1、用户表)主要存储后台管理员用户的基本信息,并可与角色表关联成为单用户多角色)。

user用户表字段名称类型长度注释idint11主键accountvarchar32后台管理员帐户pwdchar32后台管理员密码real_namevarchar16后台管理员名称role 例如,1,2,3 last _ IP varchar 16后台管理员上次登录iplast_timedatetime0后台管理员上次登录时间add_timedatetime0后台管理员添加时间log in _ in

menus侧面导航栏表字段名称类型长度注释idsmallint5菜单IDpidsmallint5父idiconvarchar25图标menu_namevarchar32按钮名称modulevarchar32模块是否显示actionvarar amsvarchar128参数pathvarchar255跳跃路径sorttinyint3排序is_showtinyint1

3、角色管理表(是配置管理员各种身份的表,主要用于相关权限表) )。

role角色管理表字段名称类型长度注释idint10身份管理idrole_namevarchar32身份管理名称menus_idtext0身份管理权限(menus_id )示例: 1,2

4、边栏整理亲子级代码进行遍历

/**初始化的左菜单*首先检索系统中的所有菜单,*将菜单按父项和子项关系分组*,如果当前租户权限设置限制此菜单,则确定当前用户是否有权访问当前页面不需要每页都传递给menus。 这里的书写方式是,ThinkPhP 5.1前后端不分离,因此将数据存储在view类中,在前端使用*/protectedfunctionrolelist ({ $ seach map=[ ] ); if (session 33603360 get (campus.user _ role ) ) $seachmap ) (role_code )=session3360:get ) campus } else { $ } $ list=users :3360 instance (-getrolelist ) $seachmap ); //根据权限检测并处理当前用户拥有的所有导航栏。 $menus=[]; if (! empty($list-result ) ) /遍历系统的所有菜单(foreach ) $list-resultas$v ) /根节点if (如果没有父节点) $ v [ ' module _ parare ] }} Foreach($list-resultas$v ) Foreach ) ) $ menus as $ key=$value (if ) $ v ) module_parentcode ' )=$ ke each issesese ) ) $menus ) ) $value ) ) ) modum } } } else { session :3360 clear (; $this-error ('您没有访问权限',URL(/adminlogin/login )、''、'2' ); //如果父节点下没有可显示的子节点,则为其父Foreach($menusas$k=$v ) ) if (! isset($v('child ' )|count ($ v ) ) )==0) ) unset ($ menus ) $k ); } } $menus['num']=0; $ this-view-set _ default _ vars ([ ' menus '=$ menus ] ); 返回; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。