只允许一个用户成为具有设计的管理员
Allow only one user to be an admin with devise
我正在创建一个网页 rails 6 , devise and cancan .
我需要一个管理员角色,但我不想创建一个单独的模型,而是我向用户添加了一个布尔列 table,但事情就是这样,
如果有任何用户注册,那么任何用户只能通过将此列的值更改为 true 来授予管理员权限,这将是一个安全问题。
所以我想也许我会从 "user_params" 中删除 "admin",但我必须从控制台进行此更改,这还不够好。
我应该如何只向特定用户授予管理员权限,我的想法是我只允许第一个用户或特定电子邮件使用它,但感觉很愚蠢,必须有更聪明的方法。
我如何让应用程序只有一个管理员可以让任何其他用户成为管理员,但只有他可以做到这一点,如果有任何普通用户注册,无论如何他都不能以任何方式操纵此列?
此致
- 从注册控制器中的
user_params
中删除 admin
。您不希望用户仅通过准备请求就成为管理员。
- 介绍第三列
super_admin
,如果您只需执行一次,则从控制台授予此角色。
- 创建只有
super_admin
可以访问的视图和控制器,她可以在其中为所有用户更新 admin
。
我正在创建一个网页 rails 6 , devise and cancan .
我需要一个管理员角色,但我不想创建一个单独的模型,而是我向用户添加了一个布尔列 table,但事情就是这样,
如果有任何用户注册,那么任何用户只能通过将此列的值更改为 true 来授予管理员权限,这将是一个安全问题。
所以我想也许我会从 "user_params" 中删除 "admin",但我必须从控制台进行此更改,这还不够好。
我应该如何只向特定用户授予管理员权限,我的想法是我只允许第一个用户或特定电子邮件使用它,但感觉很愚蠢,必须有更聪明的方法。
我如何让应用程序只有一个管理员可以让任何其他用户成为管理员,但只有他可以做到这一点,如果有任何普通用户注册,无论如何他都不能以任何方式操纵此列?
此致
- 从注册控制器中的
user_params
中删除admin
。您不希望用户仅通过准备请求就成为管理员。 - 介绍第三列
super_admin
,如果您只需执行一次,则从控制台授予此角色。 - 创建只有
super_admin
可以访问的视图和控制器,她可以在其中为所有用户更新admin
。