25 lines
621 B
Ruby
25 lines
621 B
Ruby
|
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
|