Files
old-holivud2/app/policies/contract_template_policy.rb
2020-05-31 22:38:19 +02:00

40 lines
783 B
Ruby

class ContractTemplatePolicy < ApplicationPolicy
class Scope < Scope
def resolve
if user.account_manager?
scope.left_outer_joins(:project).where(projects: {account: user.account})
else
scope.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
end
end
end
def create?
user.manager? || user.account_manager?
end
def show?
true
end
def destroy?
create?
end
def import?
if user.account_manager?
record.project.account = user.account
elsif user.manager?
user.project_memberships.exists?(project: record.project)
else
false
end
end
private
def has_signed_releases?
record.present? && !record.releases.size.zero?
end
end