diff options
Diffstat (limited to 'app/models/tournament.rb')
-rw-r--r-- | app/models/tournament.rb | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 5e8ddfe..ca7fade 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -1,4 +1,21 @@ class Tournament < ActiveRecord::Base - belongs_to :game - has_many :matches + belongs_to :game + has_many :matches + has_many :users, :through => :user_tournament_pair + + def open? + return true + end + + def joinable_by?(user) + return ((not user.nil?) and user.in_group?(:player) and open?) + end + + def join(user) + unless joinable?(user) + return false + end + pair = new_user_tournament_pair(user: user) + return pair.save + end end |