summaryrefslogtreecommitdiff
path: root/app/models/server.rb
diff options
context:
space:
mode:
authorAndrewMurrell <amurrel@purdue.edu>2014-04-06 22:20:28 -0400
committerAndrewMurrell <amurrel@purdue.edu>2014-04-06 22:20:28 -0400
commitbf798e57a760b68c3c7460789cef6389141c067d (patch)
tree16cd7400b7f289b4aa6ec90e253c4d30d7a1a08c /app/models/server.rb
parent91fee659eadaf6bcc4d063fd5645950da1250896 (diff)
parent628173fce3de8f5d3e31109b3aa7c964fdab38ca (diff)
Merge branch 'master' of http://github.com/LukeShu/leaguer
Diffstat (limited to 'app/models/server.rb')
-rw-r--r--app/models/server.rb36
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