diff --git a/app/controllers/api/v0/themes_controller.rb b/app/controllers/api/v0/themes_controller.rb index 5dd997a..8fcf85a 100644 --- a/app/controllers/api/v0/themes_controller.rb +++ b/app/controllers/api/v0/themes_controller.rb @@ -15,7 +15,7 @@ org_answers = [] if params[:admin_visible].present? && params[:admin_visible] - admin_answers = @theme.answers.where(plan_id: @user.org.plans.privately_visible) + admin_answers = @theme.answers.where(plan_id: @user.org.plans.administrator_visible) end if params[:org_visible].present? && params[:org_visible] diff --git a/app/models/plan.rb b/app/models/plan.rb index dd9bbc1..1159b22 100644 --- a/app/models/plan.rb +++ b/app/models/plan.rb @@ -55,8 +55,8 @@ organisationally_visible: _("organisational"), publicly_visible: _("public"), is_test: _("test"), - privately_visible: _('Administrator'), - privately_private_visible: _('private') + administrator_visible: _('Administrator'), + privately_visible: _('private') } # ============== @@ -65,7 +65,7 @@ # public is a Ruby keyword so using publicly enum visibility: %i[organisationally_visible publicly_visible - is_test privately_visible privately_private_visible] + is_test administrator_visible privately_visible] alias_attribute :name, :title diff --git a/app/views/branded/plans/_share_form.html.erb b/app/views/branded/plans/_share_form.html.erb index 8f83b98..d7aa91f 100644 --- a/app/views/branded/plans/_share_form.html.erb +++ b/app/views/branded/plans/_share_form.html.erb @@ -126,12 +126,12 @@
>
- <%= f.label :visibility_privately_private_visible, raw("#{f.radio_button :visibility, :privately_private_visible}\ + <%= f.label :visibility_privately_visible, raw("#{f.radio_button :visibility, :privately_visible}\ #{d_('dmpopidor', 'Private: visible to me and specified collaborators')}") %>
- <%= f.label :visibility_privately_visible do %> - <%= f.radio_button :visibility, :privately_visible %> + <%= f.label :visibility_administrator_visible do %> + <%= f.radio_button :visibility, :administrator_visible %> <%= d_('dmpopidor', 'Administrator: visible to me, specified collaborators and administrators at my organisation') %> <% end %>
diff --git a/app/views/branded/plans/index.html.erb b/app/views/branded/plans/index.html.erb index 5de8dce..2687edb 100644 --- a/app/views/branded/plans/index.html.erb +++ b/app/views/branded/plans/index.html.erb @@ -17,9 +17,9 @@
<%= paginable_renderise( - partial: '/paginable/plans/privately_private_visible', + partial: '/paginable/plans/privately_visible', controller: 'paginable/plans', - action: 'privately_private_visible', + action: 'privately_visible', scope: @plans, query_params: { sort_field: 'plans.updated_at', sort_direction: 'desc' }) %>
diff --git a/config/application.rb b/config/application.rb index 5330c96..192eb3d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -126,9 +126,9 @@ # organisationally_visible - Any member of the user's org can view, export and duplicate the plan # publicly_visibile - (NOT advisable because plans will show up in Public DMPs page by default) # is_test - (NOT advisable because test plans are excluded from statistics) - # privately_visible - Only the owner, people they invite can access the plan and org admin - # privately_private_visible - Only the owner and people they invite can access the plan - config.default_plan_visibility = 'privately_private_visible' + # administrator_visible - Only the owner, people they invite can access the plan and org admin + # privately_visible - Only the owner and people they invite can access the plan + config.default_plan_visibility = 'privately_visible' # The percentage of answered questions needed to enable the plan visibility section of the Share plan page config.default_plan_percentage_answered = 0 diff --git a/config/routes.rb b/config/routes.rb index 0d90bf0..7075c30 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -165,7 +165,7 @@ end # Paginable actions for plans resources :plans, only: [] do - get 'privately_private_visible/:page', action: :privately_private_visible, on: :collection, as: :privately_private_visible + get 'administrator_visible/:page', action: :administrator_visible, on: :collection, as: :administrator_visible get 'privately_visible/:page', action: :privately_visible, on: :collection, as: :privately_visible get 'organisationally_or_publicly_visible/:page', action: :organisationally_or_publicly_visible, on: :collection, as: :organisationally_or_publicly_visible get 'publicly_visible/:page', action: :publicly_visible, on: :collection, as: :publicly_visible diff --git a/lib/dmpopidor/controllers/org_admin/plans.rb b/lib/dmpopidor/controllers/org_admin/plans.rb index 4b6f0a2..bface01 100644 --- a/lib/dmpopidor/controllers/org_admin/plans.rb +++ b/lib/dmpopidor/controllers/org_admin/plans.rb @@ -14,7 +14,7 @@ .where('users.org_id = ? AND plans.feedback_requested is TRUE AND roles.active is TRUE', current_user.org_id).pluck(:plan_id) @feedback_plans = Plan.where(id: feedback_ids).reject{|p| p.nil?} - @plans = current_user.org.plans.where.not(visibility: [Plan.visibilities[:privately_private_visible], Plan.visibilities[:is_test]]).page(1) + @plans = current_user.org.plans.where.not(visibility: [Plan.visibilities[:privately_visible], Plan.visibilities[:is_test]]).page(1) end # CHANGES @@ -43,7 +43,7 @@ plans = CSV.generate do |csv| csv << header_cols org.plans - .where.not(visibility: Plan.visibilities[:privately_private_visible]) + .where.not(visibility: Plan.visibilities[:privately_visible]) .includes(template: :org).order(updated_at: :desc).each do |plan| owner = plan.owner csv << [ diff --git a/lib/dmpopidor/controllers/paginable/plans.rb b/lib/dmpopidor/controllers/paginable/plans.rb index e2b9e47..8de81e8 100644 --- a/lib/dmpopidor/controllers/paginable/plans.rb +++ b/lib/dmpopidor/controllers/paginable/plans.rb @@ -3,7 +3,7 @@ module Paginable module Plans # GET /paginable/plans/org_admin/:page - # Renders only the plans with a visibility superior to privately_private + # Renders only the plans with a visibility superior to privately def org_admin unless current_user.present? && current_user.can_org_admin? raise Pundit::NotAuthorizedError @@ -11,7 +11,7 @@ paginable_renderise( partial: "org_admin", scope: current_user.org.plans.where.not(visibility: [ - Plan.visibilities[:privately_private_visible], + Plan.visibilities[:privately_visible], Plan.visibilities[:is_test] ]), query_params: { sort_field: 'plans.updated_at', sort_direction: :desc } @@ -19,15 +19,15 @@ 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? + # /paginable/plans/administrator_visible/:page + # Paginable for Administrator Private Visibility + # Plans that are only visible by the owner of a plan, its collaborators and the org admin + def administrator_visible + unless ::Paginable::PlanPolicy.new(current_user).administrator_visible? raise Pundit::NotAuthorizedError end paginable_renderise( - partial: "privately_private_visible", + partial: "administrator_visible", scope: Plan.active(current_user), query_params: { sort_field: 'plans.updated_at', sort_direction: :desc } ) diff --git a/lib/dmpopidor/controllers/plans.rb b/lib/dmpopidor/controllers/plans.rb index 799779b..ca19f22 100644 --- a/lib/dmpopidor/controllers/plans.rb +++ b/lib/dmpopidor/controllers/plans.rb @@ -221,11 +221,11 @@ end end - # Removing test flag now put the plan in privately_private visibility + # Removing test flag now put the plan in privately visibility def set_test plan = Plan.find(params[:id]) authorize plan - plan.visibility = (params[:is_test] === "1" ? :is_test : :privately_private_visible) + plan.visibility = (params[:is_test] === "1" ? :is_test : :privately_visible) # rubocop:disable Metrics/LineLength if plan.save render json: { diff --git a/lib/dmpopidor/helpers/plans.rb b/lib/dmpopidor/helpers/plans.rb index e90e8ad..5eab5d1 100644 --- a/lib/dmpopidor/helpers/plans.rb +++ b/lib/dmpopidor/helpers/plans.rb @@ -13,30 +13,30 @@ end # display the visibility of the plan - # CHANGE : Added privately_private_visible visibility + # CHANGE : Added administrator_visible visibility def display_visibility(val) case val when 'organisationally_visible' return "#{_('Organisation')}" when 'publicly_visible' return "#{_('Public')}" - when 'privately_visible' + when 'administrator_visible' return "#{d_('dmpopidor', 'Administrator')}" - when 'privately_private_visible' + when 'privatelyvisible' return "#{_('Private')}" else return "#{_('Private')}" # Test Plans end end - # CHANGE : Added privately_private_visible visibility + # CHANGE : Added administrator_visible visibility def visibility_tooltip(val) case val when 'organisationally_visible' return _('Organisation: anyone at my organisation can view.') when 'publicly_visible' return _('Public: anyone can view.') - when 'privately_visible' + when 'administrator_visible' return d_('dmpopidor', 'Administrator: visible to me, specified collaborators and administrators at my organisation.') else return _('Private: restricted to me and people I invite.') diff --git a/lib/dmpopidor/models/plan.rb b/lib/dmpopidor/models/plan.rb index b2f2aa5..57eac1a 100644 --- a/lib/dmpopidor/models/plan.rb +++ b/lib/dmpopidor/models/plan.rb @@ -41,23 +41,6 @@ answer end - # Deactivates the plan (sets all roles to inactive and visibility to :private) - # - # Returns Boolean - def deactivate! - # If no other :creator, :administrator or :editor is attached - # to the plan, then also deactivate all other active roles - # and set the plan's visibility to :private - # CHANGE : visibility setting to privately_private_visible - if authors.size == 0 - roles.where(active: true).update_all(active: false) - self.visibility = ::Plan.visibilities[:privately_private_visible] - save! - else - false - end - end - # The number of research outputs for a plan. # diff --git a/lib/dmpopidor/policies/paginable/plan.rb b/lib/dmpopidor/policies/paginable/plan.rb index 6b273e2..4dba38b 100644 --- a/lib/dmpopidor/policies/paginable/plan.rb +++ b/lib/dmpopidor/policies/paginable/plan.rb @@ -2,7 +2,7 @@ module Policies module Paginable module Plan - def privately_private_visible? + def administrator_visible? @user.is_a?(User) end end