summaryrefslogtreecommitdiff
path: root/app/models/user.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb55
1 files changed, 0 insertions, 55 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 4d712f6c..e1eff059 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -9,9 +9,6 @@ class User < ApplicationRecord
9 include Authentication 9 include Authentication
10 include Authentication::ByPassword 10 include Authentication::ByPassword
11 11
12 # Associations
13 has_many :permissions
14
15 # Validations 12 # Validations
16 validates_presence_of :login 13 validates_presence_of :login
17 validates_length_of :login, :within => 1..40 14 validates_length_of :login, :within => 1..40
@@ -62,46 +59,6 @@ class User < ApplicationRecord
62 write_attribute :email, (value ? value.downcase : nil) 59 write_attribute :email, (value ? value.downcase : nil)
63 end 60 end
64 61
65 # Permission stuff
66
67 def grant(node)
68 set_permission(true, node)
69 end
70
71 def revoke(node)
72 set_permission(false, node)
73 end
74
75 def inherit(node)
76 permission = self.permissions.for_node(node).first
77 permission.destroy if permission
78 end
79
80 def get_permission_for(node)
81 permissions = {}
82 self.permissions.for_node(node).each do |permission|
83 permissions[permission.identifier.to_sym] = permission.granted
84 end
85 permissions
86 end
87
88 # Checks for permission on the node and if necessary ascends the
89 # nodetree until permission is found or returns false if it is not found
90 # at all.
91 def has_permission?(node)
92 node_permission = self.permissions.for_node(node)
93 return node_permission unless node_permission.nil?
94
95 node.ancestors.reverse.each do |p|
96 local_permission = self.get_permissions_for(p)[identifier]
97 unless local_permission.nil?
98 return local_permission
99 end
100 end
101
102 return false
103 end
104
105 def is_admin? 62 def is_admin?
106 !!admin 63 !!admin
107 end 64 end
@@ -176,16 +133,4 @@ class User < ApplicationRecord
176 end 133 end
177 true 134 true
178 end 135 end
179
180 private
181
182 def set_permission(granted, node)
183 permission = self.permissions.for_node(node).first
184 if permission
185 permission.granted = granted
186 else
187 self.permissions.create!( :node => node,
188 :granted => granted )
189 end
190 end
191end 136end