diff options
Diffstat (limited to 'app/models/user_team_project_relationship.rb')
-rw-r--r-- | app/models/user_team_project_relationship.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/models/user_team_project_relationship.rb b/app/models/user_team_project_relationship.rb new file mode 100644 index 00000000000..4413c492a6d --- /dev/null +++ b/app/models/user_team_project_relationship.rb @@ -0,0 +1,24 @@ +class UserTeamProjectRelationship < ActiveRecord::Base + attr_accessible :greatest_access, :project_id, :user_team_id + + belongs_to :user_team + belongs_to :project + + validates :project, presence: true + validates :user_team, presence: true + validate :check_greatest_access + + scope :with_project, ->(project){ where(project_id: project.id) } + + private + + def check_greatest_access + errors.add(:base, :incorrect_access_code) unless correct_access? + end + + def correct_access? + return false if greatest_access.blank? + return true if UsersProject.access_roles.has_value?(greatest_access) + false + end +end |