diff --git a/app/policies/admin_or_author_policy.rb b/app/policies/admin_or_author_policy.rb index 195d8438..bf640bad 100644 --- a/app/policies/admin_or_author_policy.rb +++ b/app/policies/admin_or_author_policy.rb @@ -1,6 +1,6 @@ class AdminOrAuthorPolicy < ApplicationPolicy [:create?, :index?, :new?].each do |action| - define_method(action) { @user.internal_user? } + define_method(action) { admin? || teacher? } end [:destroy?, :edit?, :show?, :update?].each do |action| diff --git a/app/policies/exercise_policy.rb b/app/policies/exercise_policy.rb index e4563832..adc246d8 100644 --- a/app/policies/exercise_policy.rb +++ b/app/policies/exercise_policy.rb @@ -9,7 +9,7 @@ class ExercisePolicy < AdminOrAuthorPolicy end def show? - @user.internal_user? + admin? || teacher? end [:clone?, :destroy?, :edit?, :statistics?, :update?, :feedback?].each do |action| @@ -24,7 +24,7 @@ class ExercisePolicy < AdminOrAuthorPolicy def resolve if @user.admin? @scope.all - elsif @user.internal_user? + elsif @user.teacher? @scope.where('user_id = ? OR public = TRUE', @user.id) else @scope.none diff --git a/app/policies/intervention_policy.rb b/app/policies/intervention_policy.rb index b3a25667..7716e667 100644 --- a/app/policies/intervention_policy.rb +++ b/app/policies/intervention_policy.rb @@ -9,7 +9,7 @@ class InterventionPolicy < AdminOrAuthorPolicy end def show? - @user.internal_user? + admin? || teacher? end [:clone?, :destroy?, :edit?, :update?].each do |action| @@ -24,7 +24,7 @@ class InterventionPolicy < AdminOrAuthorPolicy def resolve if @user.admin? @scope.all - elsif @user.internal_user? + elsif @user.teacher? @scope.where('user_id = ? OR public = TRUE', @user.id) else @scope.none diff --git a/app/policies/proxy_exercise_policy.rb b/app/policies/proxy_exercise_policy.rb index 28de525e..c65f1f38 100644 --- a/app/policies/proxy_exercise_policy.rb +++ b/app/policies/proxy_exercise_policy.rb @@ -9,7 +9,7 @@ class ProxyExercisePolicy < AdminOrAuthorPolicy end def show? - @user.internal_user? + admin? || teacher? end [:clone?, :destroy?, :edit?, :update?].each do |action| @@ -24,8 +24,8 @@ class ProxyExercisePolicy < AdminOrAuthorPolicy def resolve if @user.admin? @scope.all - elsif @user.internal_user? - @scope.where('user_id = ? OR public = TRUE', @user.id) + elsif @user.teacher? + @scope.where('user_id = ?', @user.id) else @scope.none end diff --git a/app/policies/search_policy.rb b/app/policies/search_policy.rb index 9da9a641..b45ae00d 100644 --- a/app/policies/search_policy.rb +++ b/app/policies/search_policy.rb @@ -9,7 +9,7 @@ class SearchPolicy < AdminOrAuthorPolicy end def show? - @user.internal_user? + admin? || teacher? end [:clone?, :destroy?, :edit?, :update?].each do |action| @@ -24,7 +24,7 @@ class SearchPolicy < AdminOrAuthorPolicy def resolve if @user.admin? @scope.all - elsif @user.internal_user? + elsif @user.teacher? @scope.where('user_id = ? OR public = TRUE', @user.id) else @scope.none diff --git a/app/policies/tag_policy.rb b/app/policies/tag_policy.rb index 8325b9fa..51665053 100644 --- a/app/policies/tag_policy.rb +++ b/app/policies/tag_policy.rb @@ -9,7 +9,7 @@ class TagPolicy < AdminOrAuthorPolicy end def show? - @user.internal_user? + admin? || teacher? end [:clone?, :destroy?, :edit?, :update?].each do |action| @@ -24,7 +24,7 @@ class TagPolicy < AdminOrAuthorPolicy def resolve if @user.admin? @scope.all - elsif @user.internal_user? + elsif @user.teacher? @scope.where('user_id = ? OR public = TRUE', @user.id) else @scope.none diff --git a/app/views/application/_breadcrumbs.html.slim b/app/views/application/_breadcrumbs.html.slim index 7899ae0e..18045440 100644 --- a/app/views/application/_breadcrumbs.html.slim +++ b/app/views/application/_breadcrumbs.html.slim @@ -1,4 +1,4 @@ -- if current_user.try(:internal_user?) +- if current_user.try(:admin?) or current_user.try(:teacher?) ul.breadcrumb - if model = Kernel.const_get(controller_path.classify) rescue nil - object = model.find_by(id: params[:id]) diff --git a/app/views/application/_navigation.html.slim b/app/views/application/_navigation.html.slim index 006de33b..a23e59da 100644 --- a/app/views/application/_navigation.html.slim +++ b/app/views/application/_navigation.html.slim @@ -1,4 +1,4 @@ -- if current_user.try(:internal_user?) +- if current_user.try(:admin?) or current_user.try(:teacher?) ul.nav.navbar-nav li.nav-item.dropdown a.nav-link.dropdown-toggle.mx-3 data-toggle='dropdown' href='#' diff --git a/app/views/application/_session.html.slim b/app/views/application/_session.html.slim index db401908..abe53b21 100644 --- a/app/views/application/_session.html.slim +++ b/app/views/application/_session.html.slim @@ -5,10 +5,10 @@ = current_user span.caret ul.dropdown-menu.p-0.mt-1 role='menu' - - if current_user.internal_user? - li = link_to(t('consumers.show.link'), current_user.consumer, class: 'dropdown-item') if current_user.consumer - li = link_to(t('internal_users.show.link'), current_user, class: 'dropdown-item') - li = link_to(t('request_for_comments.index.all'), request_for_comments_path, class: 'dropdown-item') + - if current_user.try(:admin?) or current_user.try(:teacher?) + li = link_to(t('consumers.show.link'), current_user.consumer, class: 'dropdown-item') if current_user.consumer and policy(current_user.consumer).show? + li = link_to(t('internal_users.show.link'), current_user, class: 'dropdown-item') if policy(current_user).show? + li = link_to(t('request_for_comments.index.all'), request_for_comments_path, class: 'dropdown-item') if policy(RequestForComment).index? li = link_to(t('request_for_comments.index.get_my_rfc_activity'), my_rfc_activity_path, class: 'dropdown-item') li = link_to(t('request_for_comments.index.get_my_comment_requests'), my_request_for_comments_path, class: 'dropdown-item') - if current_user.internal_user? diff --git a/app/views/application/welcome.html.slim b/app/views/application/welcome.html.slim index 8f9448c7..eb8ebac3 100644 --- a/app/views/application/welcome.html.slim +++ b/app/views/application/welcome.html.slim @@ -1,8 +1,8 @@ h1 = t('.title', application_name: application_name) -- if current_user.try(:external_user?) - p = t('.text_signed_in_as_external_user', application_name: application_name) -- elsif current_user.try(:internal_user?) +- if current_user.try(:admin?) or current_user.try(:teacher?) p = t('.text_signed_in_as_internal_user', user_name: current_user.name) +- elsif current_user.try(:external_user?) + p = t('.text_signed_in_as_external_user', application_name: application_name) - else p == t('.text_signed_out', application_name: application_name, sign_in_path: sign_in_path) diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 64b5549f..7ba2cdd3 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -28,7 +28,7 @@ html lang='en' = render('session') .container data-controller=controller_name = render('flash') - = render('breadcrumbs') if current_user.try(:internal_user?) + = render('breadcrumbs') if current_user.try(:admin?) or current_user.try(:teacher?) - if (controller_name == "exercises" && action_name == "implement") .container-fluid = yield