diff --git a/app/controllers/paginable/plans_controller.rb b/app/controllers/paginable/plans_controller.rb index 8bdb47c..6f15447 100644 --- a/app/controllers/paginable/plans_controller.rb +++ b/app/controllers/paginable/plans_controller.rb @@ -34,6 +34,20 @@ ) end + # CHANGES: New Visibility + # /paginable/plans/privately_private_visible/:page + # Paginable for Privately Private Visibility + # Plans that are only visible by the owner of a plan and its collaborators + def privately_private_visible + unless Paginable::PlanPolicy.new(current_user).privately_private_visible? + raise Pundit::NotAuthorizedError + end + paginable_renderise( + partial: "privately_private_visible", + scope: Plan.active(current_user) + ) + end + # GET /paginable/plans/org_admin/:page # def org_admin # unless current_user.present? && current_user.can_org_admin? diff --git a/app/policies/paginable/plan_policy.rb b/app/policies/paginable/plan_policy.rb index 01c259a..44698ef 100644 --- a/app/policies/paginable/plan_policy.rb +++ b/app/policies/paginable/plan_policy.rb @@ -1,5 +1,8 @@ module Paginable class PlanPolicy < ApplicationPolicy + + include Dmpopidor::Policies::Paginable::Plan + def initialize(user) @user = user end diff --git a/lib/dmpopidor/controllers/paginable/plans.rb b/lib/dmpopidor/controllers/paginable/plans.rb index dc453f7..f28a8b0 100644 --- a/lib/dmpopidor/controllers/paginable/plans.rb +++ b/lib/dmpopidor/controllers/paginable/plans.rb @@ -2,19 +2,6 @@ module Controllers module Paginable module Plans - - # /paginable/plans/privately_private_visible/:page - # Paginable for Privately Private Visibility - # Plans that are only visible by the owner of a plan and its collaborators - def privately_private_visible - unless Paginable::PlanPolicy.new(current_user).privately_private_visible? - raise Pundit::NotAuthorizedError - end - paginable_renderise( - partial: "privately_private_visible", - scope: Plan.active(current_user) - ) - end # GET /paginable/plans/org_admin/:page # Renders only the plans with a visibility superior to privately_private def org_admin diff --git a/lib/dmpopidor/policies/paginable/plan.rb b/lib/dmpopidor/policies/paginable/plan.rb new file mode 100644 index 0000000..6b273e2 --- /dev/null +++ b/lib/dmpopidor/policies/paginable/plan.rb @@ -0,0 +1,11 @@ +module Dmpopidor + module Policies + module Paginable + module Plan + def privately_private_visible? + @user.is_a?(User) + end + end + end + end +end \ No newline at end of file