大家平时做用户权限控制的思路是怎样的?? - PHP进阶讨论

大家平时做用户权限控制的思路是怎样的??例如后台有10个模块,每个模块一个权限,每个用户有不同的权限(管理员来设置)我是这样做的:用户表设置一个\"权限\"字段,用来放一... 大家平时做用户权限控制的思路是怎样的??例如后台有10个模块,每个模块一个权限,每个用户有不同的权限(管理员来设置)我是这样做的:用户表设置一个\"权限\"字段,用来放一段0101010`````的字符串,每一位代表一个权限用判断模块是否能给用户用的时候就取出相应的那个字符(0,1)来判断.可是这样做,如果增加新模块,就要改动很多地方来适应这个权限控制了.不知道大家是如何控制用户权限的呢?? 展开
 我来答
匿名用户
2013-09-04
展开全部
简单说下我在自己的框架中设计的思路:权限系统分权限定义和实际的权限数据2部分。这2部分要求都是可自定义任意扩展的。权限定义分2个表:permit, permit_rightspermit:idname??use_extralabelpermit_rights:idrightspermit_idlabel这2个表构造了可以扩展和自定义的“权限定义表”permit表定义一个domain, 对应一个action的classrights表定义相应的class中需要权限控制的method用户授权的数据表则很简单:acl:idauthen_idrights_idis_groupacl_extraacl_idextra_dataacl定义用户的权限信息,acl_extra是用户附加数据的信息实际的代码实现则和我的框架关联较大,我通过一个interceptor,类似AOP的方式,任何需要授权系统的action class需要实现一个marker interface,比如need_authorized当这个action class中的某个method 被调用前,会被sercurity interceptor拦截住,interceptor将检查当前用户的授权记录,并根据上面的几个表,检查当前用户是否具备相应的权限,是,则放行,invoke相应的method,否则将被拦截到一个授权失败的结果。这样设计的好处是,一个interceptor可以处理全部的授权,任何一个class需要授权,只需要在上面2个表里添加定义,那么用户授权界面则会有相应的选项,勾选后就有相应的数据。interceptor无需知道具体的权限的含义,而action class也无需添加多余的检查授权的代码,因为如果没有授权,action是无法被invoke的。以上是设计思路而已,具体的情况根据各自的适用环境进行变通。[]
匿名用户
2013-09-04
展开全部
用户表. id, user...像这个样子....权限表. id .usid. isAllowToDoSomething. isAllowToDoAnother..........? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0? ?? ?? ?? ?? ?? ?? ?? ?? ???1如果是版块.就在版块当中加一个字段..做一个判断.或者一块整合到权限表当中合理不?[]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式