Files
codeocean/app/policies/code_ocean/file_policy.rb
2021-05-14 22:03:06 +02:00

36 lines
684 B
Ruby

# frozen_string_literal: true
module CodeOcean
class FilePolicy < AdminOrAuthorPolicy
def author?
@user == @record.context.author
end
def show?
if @record.context.is_a?(Exercise)
admin? || author? || !@record.hidden
else
admin? || author?
end
end
def create?
if @record.context.is_a?(Exercise)
admin? || author?
elsif @record.context.is_a?(Submission) && @record.context.exercise.allow_file_creation
author?
else
no_one
end
end
def destroy?
if @record.context.is_a?(Exercise)
admin? || author?
else
no_one
end
end
end
end