- 主题:树形资源的权限一般怎么控制?
资源的结构是树形的,用户对于资源的某一个节点上有权限的话,就对其所有的子有权限。
需要在用户登录后,显示其具有权限的所有资源。
觉得比较麻烦。
一种想法是为一个用户添加资源节点的时候,将其所有的上级资源节点也添加到此用户的权限中。这样在为用户生成树的时候比较方便。但是当需要删除一个资源节点的时候,需要判断其所有的上级是不是也需要删除,似乎比较麻烦..
另一种想法是,如果只是记录用户和某一个资源节点的对应关系,而将此资源节点所有上级的节点也添加到此用户的关系中,那么找到某用户所对应的资源子树,就需要:
1. 先根据此用户获得所有具有权限的资源节点;
2. 遍历资源节点;
3. 每个资源节点,生成其到根节点的子树xml;
4. 后续资源节点,获得其道根节点的子树序列,并在目前的子树xml基础上,添加新资源节点。
5. 只显示到目前的资源节点,其后续的资源,可以在用户点击后,再展开。
但是这样感觉也比较麻烦。
各位大牛有什么建议,或者好的想法..
不知道说清楚了么,呵呵。
--
FROM 60.29.151.*
说得真复杂
直接将节点的ID和用户ID进行关系对应,每个节点的ID又与其上下级建立数组关系就好了。比如某用户的权限树节点ID是3,那么0,1,2都跟他没有关系了。
3后面的子节点如:4,5,6,会有一个共同路径属性:0,1,2,3,
判断这个共同路径属性就行了。
【 在 TopMission (Top Mission ) 的大作中提到: 】
: 资源的结构是树形的,用户对于资源的某一个节点上有权限的话,就对其所有的子有权限。
: 需要在用户登录后,显示其具有权限的所有资源。
: 觉得比较麻烦。
: ...................
--
FROM 121.15.126.*
没太明白,一定要显示该用户可访问的资源的上级节点吗?
例如资源树如下:
A
A.1
A.1.1
A.1.2
用户可以访问A.1.1,
只显示A.1.1和再往下的子树就可以了吧,没必要把A, A.1都显示出来丫。
【 在 TopMission (Top Mission ) 的大作中提到: 】
: 资源的结构是树形的,用户对于资源的某一个节点上有权限的话,就对其所有的子有权限。
: 需要在用户登录后,显示其具有权限的所有资源。
: 觉得比较麻烦。
: ...................
--
FROM 166.111.34.*
一定要显示上级节点的话,我认为第二种方案较好.
理由是:
第二方案的数据结构比较清晰无冗余,
而且一般的系统的资源数量是有限的,完全可以把整个资源树预读进内存,这样的话第二方案的处理全部在内存中进行,应该比较快。
【 在 TopMission (Top Mission ) 的大作中提到: 】
: 资源的结构是树形的,用户对于资源的某一个节点上有权限的话,就对其所有的子有权限。
: 需要在用户登录后,显示其具有权限的所有资源。
: 觉得比较麻烦。
: ...................
--
FROM 166.111.34.*