diff options
author | AndrewMurrell <amurrel@purdue.edu> | 2014-04-06 22:20:28 -0400 |
---|---|---|
committer | AndrewMurrell <amurrel@purdue.edu> | 2014-04-06 22:20:28 -0400 |
commit | bf798e57a760b68c3c7460789cef6389141c067d (patch) | |
tree | 16cd7400b7f289b4aa6ec90e253c4d30d7a1a08c /app/models/server.rb | |
parent | 91fee659eadaf6bcc4d063fd5645950da1250896 (diff) | |
parent | 628173fce3de8f5d3e31109b3aa7c964fdab38ca (diff) |
Merge branch 'master' of http://github.com/LukeShu/leaguer
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 |