php开发CRM系统的用户权限设计问题

时间:2020-12-31 07:18:59
查了很多资料,现在有一个备选方案。

User table:用户表
id         UserName            GroupID

Group table:组表
id        GroupName            


Permission table:权限表
id       PermissionName


GroupPermission Table:组权限表
id       GroupId               PermissionID


其实我是第一次要自己设计,实现这么一个PHP CRM系统,经验不足。我这抛砖引玉,希望大家多给与意见和建议。

多谢啦。

17 个解决方案

#1


用xml来控制权限比较简便些,无限级分类都很清晰

#2


我初步分析权限控制模型的表结构是这样的:(这里的group即为组,= 角色role)

user  -- usergroup  -- group
  |                      |
  |                      |
userpermission       grouppermission
  |                      |
  |                      |
  | - -  - - - - -  permission
                         |
                         |     
 resources - - - permissionresources

但目前最不清楚的是,如何 实现和控制对资源的访问权限?因为我觉得资源不是一个单独的表格,而是一些表的集合。在显示层面上代表了一系列的可操作的对象(用户,contact)。
希望大虾们解答。

还有这个CRM系统主要是管理用的,3中类型的账户:总经理general manager,部门经理business manager,和管理员admin。
总经理的权限 = admin的权限 > 部门经理的权限。
总经理和管理员能查看,管理所有关于系统的信息。部门经理只能查看,管理本部门的信息。
总经理和部门经理的个人首页也是根据角色定义的。

各位有什么看法说出来,大家交流一下。

#3


各位有什么高见吗?

#4


基于角色的权限控制

#5


学习

#6


无限极分类

还没做过。。

#8



xml控制权限 和 无限级分类。能具体解释下吗???

#9


有什么建议吗?? 

#10


用mvc结构去设计你的crm,权限会容易控制一点.

用户-->角色/角色组 -->最终的权限-->具体的访问页面。

url:

http://hostname/projectname/whichmodule/whichaction/

具体controller是这样的

class whichmodule extends controller
{
   function whichaction(){
      //动态化判定权限,可放在公用的父类controller里.
      checkpermission($this->controller,$this->action,$_SESSION['user_id']);
   }
}

#11


引用 10 楼 foolbirdflyfirst 的回复:
用mvc结构去设计你的crm,权限会容易控制一点.

 用户-->角色/角色组 -->最终的权限-->具体的访问页面。

 url:

 http://hostname/projectname/whichmodule/whichaction/

 具体controller是这样的

PHP codeclass whichmoduleextends controller
{function whichaction(){//动态化判定权限,可放在公用的父类controller里.      checkpermission($this->controller,$this->action,$_SESSION['user_id']);
   }
}


谢谢,可惜的是我没有用MVC框架,甚至也没有用OOP。

实在是因为技术达不到。之前用过一段时间的Zend framework MVC框架,但不太会用。

#12


我也不会用MVC....

#13


等高手回复!!

#14


这个每一个头问题是设置权限

一般是角色-权限-资源

第二个是应用权限

对于一个资源来说,首先要有一API来检查是否有相关权限,如果为真,通过

MVC一般为控制器,方法中,无可设置权限,方便了权限验证

但如果更细的权限验证或通用权限验证,仍要API

#15


引用 14 楼 fxs_2008 的回复:
这个每一个头问题是设置权限

 一般是角色-权限-资源

 第二个是应用权限

 对于一个资源来说,首先要有一API来检查是否有相关权限,如果为真,通过

 MVC一般为控制器,方法中,无可设置权限,方便了权限验证

 但如果更细的权限验证或通用权限验证,仍要API

非常感谢fxs_2008的回复,现在有点思路了。

#16


求解!!!

#17


我写了一个通用权限系统,如果你要独立那么可能要自己验证文件,就是每次加载文件时候自己手动验证

我的基本算一个框架 ORM数据库类。

可以看这个,后面有演示地址
http://topic.csdn.net/u/20100415/11/af4687d2-d7f2-4e56-bcc0-5232f04a0b1e.html?32481

#1


用xml来控制权限比较简便些,无限级分类都很清晰

#2


我初步分析权限控制模型的表结构是这样的:(这里的group即为组,= 角色role)

user  -- usergroup  -- group
  |                      |
  |                      |
userpermission       grouppermission
  |                      |
  |                      |
  | - -  - - - - -  permission
                         |
                         |     
 resources - - - permissionresources

但目前最不清楚的是,如何 实现和控制对资源的访问权限?因为我觉得资源不是一个单独的表格,而是一些表的集合。在显示层面上代表了一系列的可操作的对象(用户,contact)。
希望大虾们解答。

还有这个CRM系统主要是管理用的,3中类型的账户:总经理general manager,部门经理business manager,和管理员admin。
总经理的权限 = admin的权限 > 部门经理的权限。
总经理和管理员能查看,管理所有关于系统的信息。部门经理只能查看,管理本部门的信息。
总经理和部门经理的个人首页也是根据角色定义的。

各位有什么看法说出来,大家交流一下。

#3


各位有什么高见吗?

#4


基于角色的权限控制

#5


学习

#6


无限极分类

还没做过。。

#7


#8



xml控制权限 和 无限级分类。能具体解释下吗???

#9


有什么建议吗?? 

#10


用mvc结构去设计你的crm,权限会容易控制一点.

用户-->角色/角色组 -->最终的权限-->具体的访问页面。

url:

http://hostname/projectname/whichmodule/whichaction/

具体controller是这样的

class whichmodule extends controller
{
   function whichaction(){
      //动态化判定权限,可放在公用的父类controller里.
      checkpermission($this->controller,$this->action,$_SESSION['user_id']);
   }
}

#11


引用 10 楼 foolbirdflyfirst 的回复:
用mvc结构去设计你的crm,权限会容易控制一点.

 用户-->角色/角色组 -->最终的权限-->具体的访问页面。

 url:

 http://hostname/projectname/whichmodule/whichaction/

 具体controller是这样的

PHP codeclass whichmoduleextends controller
{function whichaction(){//动态化判定权限,可放在公用的父类controller里.      checkpermission($this->controller,$this->action,$_SESSION['user_id']);
   }
}


谢谢,可惜的是我没有用MVC框架,甚至也没有用OOP。

实在是因为技术达不到。之前用过一段时间的Zend framework MVC框架,但不太会用。

#12


我也不会用MVC....

#13


等高手回复!!

#14


这个每一个头问题是设置权限

一般是角色-权限-资源

第二个是应用权限

对于一个资源来说,首先要有一API来检查是否有相关权限,如果为真,通过

MVC一般为控制器,方法中,无可设置权限,方便了权限验证

但如果更细的权限验证或通用权限验证,仍要API

#15


引用 14 楼 fxs_2008 的回复:
这个每一个头问题是设置权限

 一般是角色-权限-资源

 第二个是应用权限

 对于一个资源来说,首先要有一API来检查是否有相关权限,如果为真,通过

 MVC一般为控制器,方法中,无可设置权限,方便了权限验证

 但如果更细的权限验证或通用权限验证,仍要API

非常感谢fxs_2008的回复,现在有点思路了。

#16


求解!!!

#17


我写了一个通用权限系统,如果你要独立那么可能要自己验证文件,就是每次加载文件时候自己手动验证

我的基本算一个框架 ORM数据库类。

可以看这个,后面有演示地址
http://topic.csdn.net/u/20100415/11/af4687d2-d7f2-4e56-bcc0-5232f04a0b1e.html?32481