我希望我的应用程序的用户能够动态创建角色并将权限分配给这些角色。因此角色模型不会被硬编码。不过,据我所知,权限确实必须进行硬编码(因为我将在应用程序逻辑中对他们的检查进行硬编码)
我看到的最好的方法是将角色保留在数据库中并动态创建它们并分配\取消分配权限。并且权限应该保存在一个数组(或散列或关联数组)中,并且只能由开发人员更改并且需要重新启动服务器。
一切似乎都很好,但我想了解一些基于权限的授权的最佳实践(我可以找到很多关于基于角色的授权,而不是基于权限的)以及任何可能的缺点。
此外,我还找不到管理“级别”权限的最佳方法。例如,我拥有名为:“充当管理员”、“管理用户”、“创建/读取/更新/删除用户”的权限
我想让具有“作为管理员”权限的角色执行所有操作(经理用户、CRUD 用户等)。具有“管理用户”权限的角色 - 自动可以 CRUD 用户。这种方法更好,因为它不需要检查很多“或”条件(可以充当管理员,或者可以管理用户,或者可以 CRUD 用户......)
但是为此目的,我应该如何将权限哈希(数组等)保存在内存中?
我想,这个问题与语言/框架/等无关,所以我不会添加这样的标签