blob: 5ba7524eb9dfd43dbcc47e98d39b8a5ce4c2ac1e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
class Server < ActiveRecord::Base
def default_user_abilities
@abilities ||= User::Abilities.new(DefaultUser.new(self))
end
def default_user_abilities=(new)
new.each do |k,v|
if v == "0"
v = false
end
default_user_abilities[k] = v
end
end
class DefaultUser
def initialize(server)
@server = server
end
def can?(action)
bit = User.permission_bits[action]
if bit.nil?
return false
else
return (@server.default_user_permissions & bit != 0)
end
end
def add_ability(action)
bit = User.permission_bits[action.to_sym]
unless bit.nil?
@server.default_user_permissions |= bit
end
end
def remove_ability(action)
bit = User.permission_bits[action.to_sym]
unless bit.nil?
@server.default_user_permissions &= ~ bit
end
end
end
end
|