PHP多级授权

PHP多级授权,php,mysql,authorization,access-control,abac,Php,Mysql,Authorization,Access Control,Abac,我为一家公司做了一个系统,他们在其他省份有几个分公司。 这家公司的老板要求我们不要让分公司的经理看到或控制分公司的数据和相反的数据。像这样穿过所有的树枝。 每个分支机构都有多个员工,一个分支机构的每个员工都可以插入该分支机构的相关数据,而员工不能对数据进行其他控制。 我用纯PHP和MySQL制作了这个系统。 最终我想要一个好的方式来继续这个项目 您可以通过定义用户角色、is超级管理员、默认分支机构id等在数据库中的用户表中执行此操作,并通过在会话中保存默认分支机构id来控制用户 在会话中保存分

我为一家公司做了一个系统,他们在其他省份有几个分公司。 这家公司的老板要求我们不要让分公司的经理看到或控制分公司的数据和相反的数据。像这样穿过所有的树枝。 每个分支机构都有多个员工,一个分支机构的每个员工都可以插入该分支机构的相关数据,而员工不能对数据进行其他控制。 我用纯PHP和MySQL制作了这个系统。
最终我想要一个好的方式来继续这个项目

您可以通过定义用户角色、is超级管理员、默认分支机构id等在数据库中的用户表中执行此操作,并通过在会话中保存默认分支机构id来控制用户

  • 在会话中保存分支id时。然后,当branch_1的用户登录时,他将能够看到branch_1数据
  • 通过在用户表中定义用户角色id,您可以为不同的用户授予不同的权限。例如: role_id=1 means Super Admin. He has control all over the system. role_id=2 means Admin. He has control on a single branch. role_id=3 means HR. He has see report only` role_id=1表示超级管理员。他控制着整个系统。 role_id=2表示管理员。他控制着一个分支。 角色id=3表示人力资源。他只看到了报告

对于角色权限,您可以阅读或

上的教程,您显然希望相同数据库中相同表中的所有数据?通常我会建议给每个分支机构一个单独的数据库。这是确保绝对分离的最佳方法,而且很简单。@KIKO软件但如果分支机构有不同的数据库,则很难获得整个组织的数据我知道这一点,但客户老板希望他的所有数据集成在一个地方。谢谢KIKO软件。