diff --git a/app/models/project_group.rb b/app/models/project_group.rb index a3be229..05a4c1e 100644 --- a/app/models/project_group.rb +++ b/app/models/project_group.rb @@ -1,44 +1,66 @@ class ProjectGroup < ActiveRecord::Base - #associations between tables - belongs_to :project - belongs_to :user - - attr_accessible :project_creator, :project_editor, :project_administrator, :project_id, :user_id, :email, :access_level, :as => [:default, :admin] - - def email - unless user.nil? - return user.email - end - end - - def email=(new_email) - unless User.find_by_email(email).nil? then - user = User.find_by_email(email) + #associations between tables + belongs_to :project + belongs_to :user + + attr_accessible :project_creator, :project_editor, :project_administrator, :project_id, :user_id, :email, :access_level, :as => [:default, :admin] + + ## + # returns the user's email unless it is nil + # + # @return [Boolean, String] false if no email exists, the email otherwise + def email + unless user.nil? + return user.email end - end - - def access_level - if project_administrator then - return 3 - elsif project_editor then - return 2 - else - return 1 - end - end - - def access_level=(new_access_level) - new_access_level = new_access_level.to_i - if new_access_level >= 3 then - project_administrator = true - else - project_administrator = false - end - if new_access_level >= 2 then - project_editor = true - else - project_editor = false - end - end + end + + ## + # define a new user for the project group by email + # + # @param new_email [String] the email of the new user for the project group + # @return [User] the new user + def email=(new_email) + unless User.find_by(email: email).nil? then + user = User.find_by(email: email) + end + end + + ## + # return the access level for the current project group + # 3 if the user is an administrator + # 2 if the user is an editor + # 1 if the user can only read + # + # @return [Integer] + def access_level + if project_administrator then + return 3 + elsif project_editor then + return 2 + else + return 1 + end + end + + ## + # define a new access level for the current project group + # if >=3, the user is a project administrator + # if >=2, the user is an editor + # + # @param new_access_level [Integer] the access level to give the user + def access_level=(new_access_level) + new_access_level = new_access_level.to_i + if new_access_level >= 3 then + project_administrator = true + else + project_administrator = false + end + if new_access_level >= 2 then + project_editor = true + else + project_editor = false + end + end end