diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index e81df385..7c4719d3 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -41,10 +41,10 @@ class ApplicationPolicy end private :everyone_in_study_group - def teacher_in_study_group + def teacher_in_study_group? teacher? && everyone_in_study_group end - private :teacher_in_study_group + private :teacher_in_study_group? def initialize(user, record) @user = user diff --git a/app/policies/exercise_policy.rb b/app/policies/exercise_policy.rb index f44a302d..c5dc347c 100644 --- a/app/policies/exercise_policy.rb +++ b/app/policies/exercise_policy.rb @@ -3,10 +3,14 @@ class ExercisePolicy < AdminOrAuthorPolicy admin? end - [:show?, :study_group_dashboard?, :feedback?, :requests_for_comments?, :statistics?].each do |action| + [:show?, :feedback?, :requests_for_comments?, :statistics?].each do |action| define_method(action) { admin? || teacher? } end + def :study_group_dashboard? + admin? || teacher_in_study_group? + end + [:clone?, :destroy?, :edit?, :update?, :export_external_check?, :export_external_confirm?].each do |action| define_method(action) { admin? || teacher_in_study_group || author? } end diff --git a/app/policies/submission_policy.rb b/app/policies/submission_policy.rb index 0d891f3e..d6ca7830 100644 --- a/app/policies/submission_policy.rb +++ b/app/policies/submission_policy.rb @@ -14,6 +14,6 @@ class SubmissionPolicy < ApplicationPolicy def show_study_group? - admin? || teacher_in_study_group + admin? || teacher_in_study_group? end end