File tree Expand file tree Collapse file tree 2 files changed +13
-2
lines changed
app/decorators/models/solidus_user_roles/spree Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change 33module SolidusUserRoles
44 module Spree
55 module RoleDecorator
6+ BASE_ROLES = [ "admin" , "user" ]
7+
68 def self . prepended ( base )
79 base . has_many :role_permissions , dependent : :destroy
810 base . has_many :permission_sets , through : :role_permissions
911
10- base . scope :non_base_roles , -> { where . not ( name : [ "admin" , "user" ] ) }
12+ base . scope :non_base_roles , -> { where . not ( name : BASE_ROLES ) }
1113 base . validates_uniqueness_of :name , case_sensitive : false
12- base . after_save :assign_permissions
14+ base . after_save :assign_permissions , if : -> { BASE_ROLES . none? ( name ) }
1315 end
1416
1517 def permission_sets_constantized
Original file line number Diff line number Diff line change 2929
3030 expect { role . save } . to change { Spree ::Config . roles . roles [ role . name ] . permission_sets . count } . from ( 1 ) . to ( 0 )
3131 end
32+
33+ it "should not update base roles" do
34+ role . name = "admin"
35+ role . save
36+
37+ role . permission_sets = [ ]
38+
39+ expect { role . save } . to_not change { Spree ::Config . roles . roles [ role . name ] . permission_sets . count }
40+ end
3241 end
3342
3443 describe "#destroy" do
You can’t perform that action at this time.
0 commit comments