公司在各个省都有分部,那武汉的员工只能看到武汉的信息,但是高级BOSS所有可以跨越区域查看所有信息,请问只能通过数据库字段去做吗,有没有其他的思路,谢谢。
一套页面如何适应不同身份的人查看呢。
高洛峰2017-04-10 15:13:14
首先,我假设你这个权限区分是要登录的,我平时解决的时候是用数据库的字段解决的,如果你不想这样,你可以在登陆的时候为每个登陆的人设置一个session
,比如叫$_SESSION['privilege']
,再根据这个session
值来判断某个区域要显示什么内容,比如:
<?php if($_SESSION['privilege'] == 0): ?>
<p>这是User看到的内容</p>
<?php endif ?>
<?php if($_SESSION['privilege'] == 1): ?>
<p>这是Boss看到的内容</p>
<?php endif ?>
<?php if($_SESSION['privilege'] == 2): ?>
<p>这是大BOSS看到的内容</p>
<?php endif ?>
看来代码又要被吐槽了......
PHP中文网2017-04-10 15:13:14
只能通过字段做,不然你怎么知道这个登陆的人的权限?
对于一个一套页面如何适应不同身份的人查看,有个简单的方法,就是将权限分级,员工是1,BOSS是2,大BOSS是3.那么把网页的权限设为2不就好了,这样这个页面就只有BOSS能看。
大家讲道理2017-04-10 15:13:14
针对权限设计一个类,然后以对象形式传给前端,前端模板里只要写
$access->can('action')
就行,权限规则和行为则在权限的类中判断和实现。
PHP中文网2017-04-10 15:13:14
之前做过一个类似的设计,不过不是很成熟,你可以参考下。
resource + section + action = permission
比如
商品 + 武汉地区的 + 列表 = 武汉地区的商品列表
然后把 permission
赋给 role
,为员工分配role
判断权限就写个类 $checker->has_permission(resource , section , action)
;
PHPz2017-04-10 15:13:14
你可以参考我写的这篇文章:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=5792