我目前在我的系统中有两个角色,默认为“用户”和“管理员”。
我想添加一个名为“供应商”的新角色。
目前供应商角色需要与普通用户相同。我有'前端'个人资料编辑页面。用户和供应商之间的唯一区别是供应商可以填写更多的字段。我打算通过检查他们对spree_has_role的角色来限制这些额外的字段?(''供应商')
在某些时候我会想要扩展权限,但一次只能做一件事。
我找不到任何明确的指南,说明如何做这些(或至少在过去一两年内更新的任何内容)。如果有人能帮我解决一些说明/例子,我感激不尽。
P.S。我正在使用Spree 2.2 Stable和Devise Auth。
答案 0 :(得分:4)
普通用户没有任何特定权限,因为您可以看到能力模型(https://github.com/spree/spree/blob/master/core/app/models/spree/ability.rb)。您可以使用以下命令在控制台中创建角色:
Spree::Role.create(name: 'Supplier')
如果您需要确保在数据库中具有此角色,并且希望将其置于初始化程序中,请确保检查角色是否尚未创建。你可以使用类似的东西:
Spree::Role.find_or_create_by_name('Supplier')
此时,您可以在配置文件编辑视图中使用:
<% if @user.has_spree_role?('Supplier') %>
...
additional fields here
...
<% end %>