Ruby on rails 4 Rails 4-更新用户角色权限
我正在使用Pundit gem实现具有用户、角色和权限的rails 4应用程序。我有3个模型用户,角色,角色用户,因为我有很多用户和角色之间的关系。我想编辑用户角色Ruby on rails 4 Rails 4-更新用户角色权限,ruby-on-rails-4,pundit,Ruby On Rails 4,Pundit,我正在使用Pundit gem实现具有用户、角色和权限的rails 4应用程序。我有3个模型用户,角色,角色用户,因为我有很多用户和角色之间的关系。我想编辑用户角色 class User has_and_belongs_to_many :roles end class role has_and_belongs_to_many :users end 第三个表是存储用户id和角色id的角色用户 所以,假设我想要编辑一个用户角色,我应该遵循什么方法。我是否应该从第三个表中删除现有记录,即角
class User
has_and_belongs_to_many :roles
end
class role
has_and_belongs_to_many :users
end
第三个表是存储用户id和角色id的角色用户
所以,假设我想要编辑一个用户角色,我应该遵循什么方法。我是否应该从第三个表中删除现有记录,即角色\用户,然后创建显示角色的新记录。请提出建议。不确定您是否仍在处理此问题,或者您正试图实现什么目标,但使用pundit处理用户角色的一个好方法是使用Desive处理用户配置文件并创建管理员帐户。管理员可以将特定用户的角色更改为您可以选择的任何角色(即用户、vip、主持人、编辑、管理员等)。天空是你希望你的应用程序与多个角色的复杂程度的极限。在用户模型中使用“枚举”将有助于指导您的角色选项:
class User < ActiveRecord::Base
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
class用户:新建记录?
def set_默认_角色
self.role | |=:用户
结束
设计:数据库可验证,可注册,
:可恢复,:可记忆,:可跟踪,:可验证
结束
通过这种方式,您可以将新用户的默认角色设置为普通用户,然后管理员可以将该用户更新为新用户应该担任的任何角色。如果您想要一个包含多个公司/集团的更复杂的应用程序,那么这应该能够应用到多终端应用程序中。然后,权威政策和范围将发挥作用,以确定谁有权在您的应用程序中执行某些操作。例如:
- 管理员可以查看用户列表
- 管理员可以更改用户的角色
- 管理员和编辑可以创建、编辑、删除、更新博客文章
- 普通用户看不到用户列表
- 普通用户无法更改其角色
- 普通用户无法查看(或编辑)其他用户的个人资料
- 普通用户可以查看(和编辑)自己的用户配置文件
- 普通用户不能编辑、删除或更新博客文章
- 普通用户可以看到已发布的博客帖子
希望这能引导您朝着正确的方向努力完成任务。不确定您是否仍在努力完成此任务,或者您确实在努力完成什么任务,但使用pundit处理用户角色的一个好方法是使用Desive处理用户配置文件并创建管理员帐户。管理员可以将特定用户的角色更改为您可以选择的任何角色(即用户、vip、主持人、编辑、管理员等)。天空是你希望你的应用程序与多个角色的复杂程度的极限。在用户模型中使用“枚举”将有助于指导您的角色选项:
class User < ActiveRecord::Base
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
class用户:新建记录?
def set_默认_角色
self.role | |=:用户
结束
设计:数据库可验证,可注册,
:可恢复,:可记忆,:可跟踪,:可验证
结束
通过这种方式,您可以将新用户的默认角色设置为普通用户,然后管理员可以将该用户更新为新用户应该担任的任何角色。如果您想要一个包含多个公司/集团的更复杂的应用程序,那么这应该能够应用到多终端应用程序中。然后,权威政策和范围将发挥作用,以确定谁有权在您的应用程序中执行某些操作。例如:
- 管理员可以查看用户列表
- 管理员可以更改用户的角色
- 管理员和编辑可以创建、编辑、删除、更新博客文章
- 普通用户看不到用户列表
- 普通用户无法更改其角色
- 普通用户无法查看(或编辑)其他用户的个人资料
- 普通用户可以查看(和编辑)自己的用户配置文件
- 普通用户不能编辑、删除或更新博客文章
- 普通用户可以看到已发布的博客帖子