19 lines
508 B
Diff
19 lines
508 B
Diff
# UNDF: UNDF-2026-000001148
|
|
--- a/app/models/role.rb
|
|
+++ b/app/models/role.rb
|
|
@@ -129,10 +129,11 @@ class Role < ApplicationRecord
|
|
def add_permission!(*perms)
|
|
self.permissions = [] unless permissions.is_a?(Array)
|
|
|
|
permissions_will_change!
|
|
- perms.each do |p|
|
|
- p = p.to_sym
|
|
- permissions << p unless permissions.include?(p)
|
|
- end
|
|
+ existing = permissions.to_set
|
|
+ perms.each do |p|
|
|
+ p = p.to_sym
|
|
+ permissions << p if existing.add?(p)
|
|
+ end
|
|
save!
|
|
end
|