diff options
author | guntasgrewal <guntasgrewal@gmail.com> | 2014-04-06 20:09:54 -0400 |
---|---|---|
committer | guntasgrewal <guntasgrewal@gmail.com> | 2014-04-06 20:09:54 -0400 |
commit | f3c395c56a644d976aa9a5608300557600bc683e (patch) | |
tree | 83cb961a721fa8c50903c70bb08ae14dd15ca58c /app/models/server.rb | |
parent | 7575d8cc70a28b323db0486ed06ab8af33b1f21a (diff) | |
parent | f85943114dba527a1f87abb03229553472f57c0c (diff) |
solved merge conflicts
Diffstat (limited to 'app/models/server.rb')
-rw-r--r-- | app/models/server.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/models/server.rb b/app/models/server.rb index 120f0fa..5ba7524 100644 --- a/app/models/server.rb +++ b/app/models/server.rb @@ -1,2 +1,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 |