Forked from
PortalMEC / portalmec
1113 commits behind the upstream repository.
-
Marcela Ribeiro de Oliveira authoredMarcela Ribeiro de Oliveira authored
learning_object_policy.rb 981 B
class LearningObjectPolicy < ApplicationPolicy
include SociablePolicy
include ReportablePolicy
include TaggablePolicy
class Scope < Scope
def resolve
if user.nil?
scope.where(state: 'published')
elsif user.is_admin?
scope.all
else
scope.where(state: 'published')
end
end
end
def create?
record if user_exists?
end
def update?
record if owns?
end
def destroy?
record if owns?
end
def destroy_attachment?
record if owns?
end
def remove_thumbnail?
record if owns?
end
def show?
return record if record.published? || user.try(:is_admin?)
return record if user == record.publisher
## TODO: falta verificar se o +record.publisher+ é uma instituição e +user+ faz parte
end
def index?
record
end
def add_object?
record if user_exists?
end
def remove_object?
record if user_exists?
end
def owner
record.publisher
end
end