diff options
| author | Robert | 2018-01-08 10:09:37 +0100 |
|---|---|---|
| committer | Robert | 2018-01-08 10:09:37 +0100 |
| commit | 0a69d409cded29a45ee3857f0a49c9a7a51d858a (patch) | |
| tree | 84f8eaef50642b5f89ccce2fa401b3c5da4cafa3 | |
| parent | fb9eb367b9c56c19df7f2e2301f4a417f5409d6d (diff) | |
| download | chouette-core-0a69d409cded29a45ee3857f0a49c9a7a51d858a.tar.bz2 | |
Fixes: #5413@1h; Specs implemented
| -rw-r--r-- | DEVNOTES.md | 2 | ||||
| -rw-r--r-- | app/helpers/newapplication_helper.rb | 4 | ||||
| -rw-r--r-- | app/policies/access_link_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/access_point_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/application_policy.rb | 13 | ||||
| -rw-r--r-- | app/policies/connection_link_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/journey_pattern_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/line_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/purchase_window_policy.rb | 8 | ||||
| -rw-r--r-- | app/policies/referential_policy.rb | 8 | ||||
| -rw-r--r-- | app/policies/route_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/routing_constraint_zone_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/time_table_combination_policy.rb | 2 | ||||
| -rw-r--r-- | app/policies/time_table_policy.rb | 10 | ||||
| -rw-r--r-- | app/policies/vehicle_journey_policy.rb | 6 | ||||
| -rw-r--r-- | app/views/referentials/show.html.slim | 6 | ||||
| -rw-r--r-- | app/views/workbenches/show.html.slim | 2 | ||||
| -rw-r--r-- | spec/helpers/table_builder_helper_spec.rb | 2 |
18 files changed, 53 insertions, 52 deletions
diff --git a/DEVNOTES.md b/DEVNOTES.md index 2a3915ed2..17a198446 100644 --- a/DEVNOTES.md +++ b/DEVNOTES.md @@ -37,7 +37,7 @@ They are overriden as follows ```ruby def <destructive>? - !archived? && organisation_match? && user.has_permission('<resource in plural form>.<action>') + !archived_or_finalised? && organisation_match? && user.has_permission('<resource in plural form>.<action>') end ``` diff --git a/app/helpers/newapplication_helper.rb b/app/helpers/newapplication_helper.rb index df19113db..3100450c9 100644 --- a/app/helpers/newapplication_helper.rb +++ b/app/helpers/newapplication_helper.rb @@ -147,11 +147,11 @@ module NewapplicationHelper content_tag :li, link_to(t("actions.#{action}"), polymorph_url) end elsif action == :archive - unless item.archived? + unless item.archived_or_finalised? content_tag :li, link_to(t("actions.#{action}"), polymorph_url, method: :put) end elsif action == :unarchive - if item.archived? + if item.archived_or_finalised? content_tag :li, link_to(t("actions.#{action}"), polymorph_url, method: :put) end else diff --git a/app/policies/access_link_policy.rb b/app/policies/access_link_policy.rb index 1f1147f60..c9a48d61f 100644 --- a/app/policies/access_link_policy.rb +++ b/app/policies/access_link_policy.rb @@ -6,14 +6,14 @@ class AccessLinkPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('access_links.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('access_links.create') end def update? - !archived? && organisation_match? && user.has_permission?('access_links.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('access_links.update') end def destroy? - !archived? && organisation_match? && user.has_permission?('access_links.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('access_links.destroy') end end diff --git a/app/policies/access_point_policy.rb b/app/policies/access_point_policy.rb index 41436e77c..469ed9739 100644 --- a/app/policies/access_point_policy.rb +++ b/app/policies/access_point_policy.rb @@ -6,14 +6,14 @@ class AccessPointPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('access_points.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('access_points.create') end def update? - !archived? && organisation_match? && user.has_permission?('access_points.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('access_points.update') end def destroy? - !archived? && organisation_match? && user.has_permission?('access_points.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('access_points.destroy') end end diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index dbe4542e7..68007b133 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -76,11 +76,12 @@ class ApplicationPolicy # Custom Permissions # ------------------ - def archived? - return @is_archived if instance_variable_defined?(:@is_archived) - @is_archived = is_archived + def archived_or_finalised? + return @is_archived_or_finalised if instance_variable_defined?(:@is_archived_or_finalised) + @is_archived_or_finalised = is_archived_or_finalised end + def organisation_match? user.organisation_id == organisation_id end @@ -116,12 +117,12 @@ class ApplicationPolicy end private - def is_archived + def is_archived_or_finalised !!case referential when Referential - referential.archived_at + referential.archived_at || referential.in_referential_suite? else - current_referential.try(:archived_at) + current_referential.try(:archived_at) || current_referential.try(:in_referential_suite?) end end end diff --git a/app/policies/connection_link_policy.rb b/app/policies/connection_link_policy.rb index 240c2a804..5a8e41ee8 100644 --- a/app/policies/connection_link_policy.rb +++ b/app/policies/connection_link_policy.rb @@ -6,14 +6,14 @@ class ConnectionLinkPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('connection_links.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('connection_links.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('connection_links.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('connection_links.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('connection_links.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('connection_links.update') end end diff --git a/app/policies/journey_pattern_policy.rb b/app/policies/journey_pattern_policy.rb index 12bcced17..57220033d 100644 --- a/app/policies/journey_pattern_policy.rb +++ b/app/policies/journey_pattern_policy.rb @@ -7,14 +7,14 @@ class JourneyPatternPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('journey_patterns.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('journey_patterns.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('journey_patterns.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('journey_patterns.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('journey_patterns.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('journey_patterns.update') end end diff --git a/app/policies/line_policy.rb b/app/policies/line_policy.rb index e7263cc3b..8028a063e 100644 --- a/app/policies/line_policy.rb +++ b/app/policies/line_policy.rb @@ -26,15 +26,15 @@ class LinePolicy < ApplicationPolicy end def create_footnote? - !archived? && organisation_match? && user.has_permission?('footnotes.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('footnotes.create') end def edit_footnote? - !archived? && organisation_match? && user.has_permission?('footnotes.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('footnotes.update') end def destroy_footnote? - !archived? && organisation_match? && user.has_permission?('footnotes.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('footnotes.destroy') end def update_footnote? ; edit_footnote? end diff --git a/app/policies/purchase_window_policy.rb b/app/policies/purchase_window_policy.rb index 75143a8bd..87cde4a7a 100644 --- a/app/policies/purchase_window_policy.rb +++ b/app/policies/purchase_window_policy.rb @@ -6,15 +6,15 @@ class PurchaseWindowPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('purchase_windows.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('purchase_windows.create') end def update? - !archived? && organisation_match? && user.has_permission?('purchase_windows.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('purchase_windows.update') end def destroy? - !archived? && organisation_match? && user.has_permission?('purchase_windows.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('purchase_windows.destroy') end -end
\ No newline at end of file +end diff --git a/app/policies/referential_policy.rb b/app/policies/referential_policy.rb index 253917509..ce4956460 100644 --- a/app/policies/referential_policy.rb +++ b/app/policies/referential_policy.rb @@ -10,19 +10,19 @@ class ReferentialPolicy < ApplicationPolicy end def destroy? - !archived? && organisation_match? && user.has_permission?('referentials.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('referentials.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('referentials.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('referentials.update') end def clone? - !archived? && create? + !archived_or_finalised? && create? end def validate? - !archived? && create? && organisation_match? + !archived_or_finalised? && create? && organisation_match? end def archive? diff --git a/app/policies/route_policy.rb b/app/policies/route_policy.rb index 7e9fe251a..3e1d46c97 100644 --- a/app/policies/route_policy.rb +++ b/app/policies/route_policy.rb @@ -6,15 +6,15 @@ class RoutePolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('routes.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('routes.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('routes.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('routes.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('routes.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('routes.update') end def duplicate? diff --git a/app/policies/routing_constraint_zone_policy.rb b/app/policies/routing_constraint_zone_policy.rb index 3cfcf46ff..a903e3728 100644 --- a/app/policies/routing_constraint_zone_policy.rb +++ b/app/policies/routing_constraint_zone_policy.rb @@ -6,14 +6,14 @@ class RoutingConstraintZonePolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('routing_constraint_zones.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('routing_constraint_zones.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('routing_constraint_zones.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('routing_constraint_zones.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('routing_constraint_zones.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('routing_constraint_zones.update') end end diff --git a/app/policies/time_table_combination_policy.rb b/app/policies/time_table_combination_policy.rb index daa6808e4..25ac9df67 100644 --- a/app/policies/time_table_combination_policy.rb +++ b/app/policies/time_table_combination_policy.rb @@ -7,6 +7,6 @@ class TimeTableCombinationPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('time_tables.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('time_tables.update') end end diff --git a/app/policies/time_table_policy.rb b/app/policies/time_table_policy.rb index 92d3aef3e..1f5a7a259 100644 --- a/app/policies/time_table_policy.rb +++ b/app/policies/time_table_policy.rb @@ -7,23 +7,23 @@ class TimeTablePolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('time_tables.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('time_tables.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('time_tables.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('time_tables.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('time_tables.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('time_tables.update') end def actualize? - !archived? && organisation_match? && edit? + !archived_or_finalised? && organisation_match? && edit? end def duplicate? - !archived? && organisation_match? && create? + !archived_or_finalised? && organisation_match? && create? end def month? diff --git a/app/policies/vehicle_journey_policy.rb b/app/policies/vehicle_journey_policy.rb index 24040455f..a7e0dfe03 100644 --- a/app/policies/vehicle_journey_policy.rb +++ b/app/policies/vehicle_journey_policy.rb @@ -6,14 +6,14 @@ class VehicleJourneyPolicy < ApplicationPolicy end def create? - !archived? && organisation_match? && user.has_permission?('vehicle_journeys.create') + !archived_or_finalised? && organisation_match? && user.has_permission?('vehicle_journeys.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('vehicle_journeys.destroy') + !archived_or_finalised? && organisation_match? && user.has_permission?('vehicle_journeys.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('vehicle_journeys.update') + !archived_or_finalised? && organisation_match? && user.has_permission?('vehicle_journeys.update') end end diff --git a/app/views/referentials/show.html.slim b/app/views/referentials/show.html.slim index 96755359c..889ea7ad1 100644 --- a/app/views/referentials/show.html.slim +++ b/app/views/referentials/show.html.slim @@ -1,7 +1,7 @@ - breadcrumb @referential - page_header_content_for @referential - content_for :page_header_actions do - - unless (@referential.archived? || !policy(@referential).edit?) + - unless (@referential.archived_or_finalised? || !policy(@referential).edit?) = link_to(t('actions.edit'), edit_referential_path(@referential), class: 'btn btn-default') - content_for :page_header_content do @@ -22,7 +22,7 @@ .row .col-lg-6.col-md-6.col-sm-12.col-xs-12 = definition_list t('metadatas'), - { t('activerecord.attributes.referential.status') => @referential.archived? ? "<div class='td-block'><span class='fa fa-archive'></span><span>#{t('activerecord.attributes.referential.archived_at')}</span></div>".html_safe : "<div class='td-block'><span class='sb sb-lg sb-preparing'></span><span>#{t('activerecord.attributes.referential.archived_at_null')}</span></div>".html_safe, + { t('activerecord.attributes.referential.status') => @referential.archived_or_finalised? ? "<div class='td-block'><span class='fa fa-archive'></span><span>#{t('activerecord.attributes.referential.archived_at')}</span></div>".html_safe : "<div class='td-block'><span class='sb sb-lg sb-preparing'></span><span>#{t('activerecord.attributes.referential.archived_at_null')}</span></div>".html_safe, @referential.human_attribute_name(:validity_period) => (@referential.validity_period.present? ? t('validity_range', debut: l(@referential.try(:validity_period).try(:begin), format: :short), end: l(@referential.try(:validity_period).try(:end), format: :short)) : '-'), @referential.human_attribute_name(:organisation) => @referential.organisation.name, @referential.human_attribute_name(:published_at) => '-' } @@ -102,5 +102,5 @@ .modal-footer button.btn.btn-link type='button' data-dismiss='modal' #{t('cancel')} - - unless policy(@referential).archived? + - unless policy(@referential).archived_or_finalised? = f.button :submit, t('actions.clean_up') , class: 'btn btn-primary' diff --git a/app/views/workbenches/show.html.slim b/app/views/workbenches/show.html.slim index fe0b05330..79f180e4d 100644 --- a/app/views/workbenches/show.html.slim +++ b/app/views/workbenches/show.html.slim @@ -30,7 +30,7 @@ ), \ TableBuilderHelper::Column.new( \ key: :status, \ - attribute: Proc.new {|w| w.archived? ? ("<div class='td-block'><span class='fa fa-archive'></span><span>#{t('activerecord.attributes.referential.archived_at')}</span></div>").html_safe : ("<div class='td-block'><span class='sb sb-lg sb-preparing'></span><span>#{t('activerecord.attributes.referential.archived_at_null')}</span></div>").html_safe} \ + attribute: Proc.new {|w| w.archived_or_finalised? ? ("<div class='td-block'><span class='fa fa-archive'></span><span>#{t('activerecord.attributes.referential.archived_at')}</span></div>").html_safe : ("<div class='td-block'><span class='sb sb-lg sb-preparing'></span><span>#{t('activerecord.attributes.referential.archived_at_null')}</span></div>").html_safe} \ ), \ TableBuilderHelper::Column.new( \ key: :organisation, \ diff --git a/spec/helpers/table_builder_helper_spec.rb b/spec/helpers/table_builder_helper_spec.rb index 83b746d4b..8f22f2ad0 100644 --- a/spec/helpers/table_builder_helper_spec.rb +++ b/spec/helpers/table_builder_helper_spec.rb @@ -105,7 +105,7 @@ describe TableBuilderHelper, type: :helper do TableBuilderHelper::Column.new( key: :status, attribute: Proc.new do |w| - if w.archived? + if w.archived_or_finalised? ("<div class='td-block'><span class='fa fa-archive'></span><span>Conservé</span></div>").html_safe else ("<div class='td-block'><span class='sb sb-lg sb-preparing'></span><span>En préparation</span></div>").html_safe |
