在我正在开发的rails应用程序上,我使用设计进行身份验证设置。我添加了一个名为' role'的用户模型的附加属性。它只是一个整数值,可以控制用户的确切行为。
我面临的问题是我不确定如何安全地分配这些角色。显然,我不能只为其填写注册表单中的字段。我能想到的最安全的方法是在所有帐户上强制将值设置为0,在创建新的管理员帐户时,我会在数据库中手动设置它,但这似乎是任何想法的草率?
答案 0 :(得分:0)
我相信有两种方法可以解决您的问题:
答案 1 :(得分:0)
在视图方面(在自定义user#edit
操作中),您可以将该字段包装在if语句中:
<% if current_user.role > 3 %>
...field(s) go here...
<% end %>
在您的控制器中(在自定义user#update
操作中),您可以使用类似的语句过滤掉该参数,如果由于某种原因它在不应该传递时传递:
if current_user.role <= 3
params[:user][:role].delete
end
当然,我只是猜测“admin”角色是4,所以用正确的值替换它。您必须手动更改控制台中的第一个user
角色。