summaryrefslogtreecommitdiff
path: root/app/models
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
parent91fee659eadaf6bcc4d063fd5645950da1250896 (diff)
parent628173fce3de8f5d3e31109b3aa7c964fdab38ca (diff)
Merge branch 'master' of http://github.com/LukeShu/leaguer
Diffstat (limited to 'app/models')
-rw-r--r--app/models/server.rb36
-rw-r--r--app/models/tournament.rb13
-rw-r--r--app/models/user.rb45
3 files changed, 66 insertions, 28 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
diff --git a/app/models/tournament.rb b/app/models/tournament.rb
index 0b55cb6..fdcdba2 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -78,19 +78,20 @@ class Tournament < ActiveRecord::Base
for i in 1..num_matches
self.matches.create(name: "Match #{i}", status: 0)
end
- match_num = 0
+ match_num = num_matches-1
team_num = 0
#for each grouping of min_players_per_team
- self.players.each_slice(min_players_per_team) do |players|
- #create a new team in the current match
- self.matches[match_num].teams.push(Team.create(users: players))
+ players.each_slice(min_players_per_team) do |players|
+
#if the match is full, move to the next match, otherwise move to the next team
- if (team_num != 0 and team_num % max_teams_per_match == 0)
- match_num += 1
+ if (team_num == min_teams_per_match)
+ match_num -= 1
team_num = 0
else
team_num += 1
end
+ #create a new team in the current match
+ self.matches[match_num].teams.push(Team.create(users: players))
end
end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 626e4bf..0b77ab1 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -11,31 +11,32 @@ class User < ActiveRecord::Base
def self.permission_bits
return {
- :create_tournament => 1,
- :edit_tournament => 2,
- :join_tournament => 3,
- :delete_tournament => 4,
+ :create_tournament => (2**1),
+ :edit_tournament => (2**2),
+ :join_tournament => (2**3),
+ :delete_tournament => (2**4),
- :create_game => 5,
- :edit_game => 6,
- :delete_game => 7,
+ :create_game => (2**5),
+ :edit_game => (2**6),
+ :delete_game => (2**7),
- :create_user => 8,
- :edit_user => 9,
- :delete_user => 10,
+ :create_user => (2**8),
+ :edit_user => (2**9),
+ :delete_user => (2**10),
- :create_alert => 11,
- :edit_alert => 12,
- :delete_alert => 13,
+ :create_alert => (2**11),
+ :edit_alert => (2**12),
+ :delete_alert => (2**13),
- :create_pm => 14,
- :edit_pm => 15,
- :delete_pm => 16,
+ :create_pm => (2**14),
+ :edit_pm => (2**15),
+ :delete_pm => (2**16),
- :create_session => 17,
- :delete_session => 18,
+ :create_session => (2**17),
+ :delete_session => (2**18),
- :edit_permissions => 19,
+ :edit_permissions => (2**19),
+ :edit_server => (2**20),
}
end
@@ -44,21 +45,21 @@ class User < ActiveRecord::Base
if bit.nil?
return false
else
- return (self.permissions & (2**bit) != 0)
+ return (self.permissions & bit != 0)
end
end
def add_ability(action)
bit = User.permission_bits[action.to_sym]
unless bit.nil?
- self.permissions |= 2**bit
+ self.permissions |= bit
end
end
def remove_ability(action)
bit = User.permission_bits[action.to_sym]
unless bit.nil?
- self.permissions &= ~ (2**bit)
+ self.permissions &= ~ bit
end
end