- 主题:树形资源的权限一般怎么控制?
- 资源的结构是树形的,用户对于资源的某一个节点上有权限的话,就对其所有的子有权限。
 需要在用户登录后,显示其具有权限的所有资源。
 觉得比较麻烦。
 一种想法是为一个用户添加资源节点的时候,将其所有的上级资源节点也添加到此用户的权限中。这样在为用户生成树的时候比较方便。但是当需要删除一个资源节点的时候,需要判断其所有的上级是不是也需要删除,似乎比较麻烦..
 
 另一种想法是,如果只是记录用户和某一个资源节点的对应关系,而将此资源节点所有上级的节点也添加到此用户的关系中,那么找到某用户所对应的资源子树,就需要:
 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.*