为常规用户和管理员用户使用单独的用户模型有哪些优缺点?

时间:2016-06-07 01:44:24

标签: ruby-on-rails authentication authorization

我想知道为常规用户和管理员用户(如UserAdminUser模型)使用单独的用户模型有哪些优缺点。

我能想到的一个好处是授权会更容易,并且会减少您在授权用户时出错的可能性。

我目前正计划切换到为我们的某个项目使用单独的用户模型。因为我认为它非常适合我们的用例,因为管理员用户实际上不必能够执行登录常规用户可以执行的操作(例如查看他/她的购买历史记录,愿望清单等等)。 。)和登录的普通用户不能做管理员用户可以做的事情(比如查看报告,禁止用户等等)但我想先知道它的优点/缺点。

为了提供一些额外的背景,我们的项目使用以下工具:

  • Ruby on Rails
  • Active Admin gem
  • Pundit gem
  • 设计宝石

1 个答案:

答案 0 :(得分:0)

您的项目已经为您提供了方便的角色模型用户管理和授权所需的一切。 Pundit是一个很好的工具,它是为避免代码重复,不必要的控制器和视图增长而开发的。我可以想象的划分用户和管理员的一个优点是可能是漂亮的网址和路由助手 admin_path,app / admins / 2等,但如果你想要,你也可以为你的基于角色的项目实现这个。所以我认为这种方法没有意义,但也许我会错过一些东西。