具有特定用户权限的Cakephp ACL

时间:2014-07-21 19:48:31

标签: php mysql database cakephp acl

我正在构建一个在ACL树中有3层的应用程序。管理员,超级用户和用户。所有3个都具有站点功能的级联权限。我目前的难题是试图找出允许用户特定权限的最佳方法。

例如。该网站有5个扩展可供购买。如果他们不购买任何扩展,他们就拥有基本权限。但是,对于每次扩展购买,网站功能都可用。

用户可以随时购买或停用分机。添加或减去他们的权限。

在每个函数的用户表中创建新的布尔列,启用或禁用它们是一种好习惯。然后只检查是否授予访问权限?如果扩展性增长到50,这对扩展性是否可行?

我的另一个想法是创建一个为用户分配一个权限的键值表。每个允许的权限的新行。但是,如果有许多用户拥有许多权限,我认为这可能会超出搜索范围。

这是我第一次使用ACL - ARO和ACO。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您将需要创建另一个名为extensions的表并在该表和users表之间建立相应的关系,它需要是多对多的关系,因此您需要创建一个名为users_extensions或extensions_users,您将存储每个用户拥有的每个扩展名的记录,这样,每次向网站添加扩展时,您都不必向users表添加字段,根据您在第三个表中搜索的问题它变得太大了,你应该在第三个表上有索引,这样你就可以快速查询那个表,不会出现问题。

祝你好运!