diff options
Diffstat (limited to 'app/policies')
| -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 | 14 | ||||
| -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 | 10 | ||||
| -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 |
13 files changed, 53 insertions, 39 deletions
diff --git a/app/policies/access_link_policy.rb b/app/policies/access_link_policy.rb index 1f1147f60..f2ea7027f 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') + !referential_read_only? && organisation_match? && user.has_permission?('access_links.create') end def update? - !archived? && organisation_match? && user.has_permission?('access_links.update') + !referential_read_only? && organisation_match? && user.has_permission?('access_links.update') end def destroy? - !archived? && organisation_match? && user.has_permission?('access_links.destroy') + !referential_read_only? && 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..4fa887b9e 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') + !referential_read_only? && organisation_match? && user.has_permission?('access_points.create') end def update? - !archived? && organisation_match? && user.has_permission?('access_points.update') + !referential_read_only? && organisation_match? && user.has_permission?('access_points.update') end def destroy? - !archived? && organisation_match? && user.has_permission?('access_points.destroy') + !referential_read_only? && 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..c44937c9e 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -81,6 +81,11 @@ class ApplicationPolicy @is_archived = is_archived end + def referential_read_only? + return @is_referential_read_only if instance_variable_defined?(:@is_referential_read_only) + @is_referential_read_only = is_referential_read_only + end + def organisation_match? user.organisation_id == organisation_id end @@ -124,4 +129,13 @@ class ApplicationPolicy current_referential.try(:archived_at) end end + + def is_referential_read_only + !!case referential + when Referential + referential.referential_read_only? + else + current_referential.try(:referential_read_only?) + end + end end diff --git a/app/policies/connection_link_policy.rb b/app/policies/connection_link_policy.rb index 240c2a804..9bab5e4db 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') + !referential_read_only? && organisation_match? && user.has_permission?('connection_links.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('connection_links.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('connection_links.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('connection_links.update') + !referential_read_only? && 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..beb18d151 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') + !referential_read_only? && organisation_match? && user.has_permission?('journey_patterns.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('journey_patterns.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('journey_patterns.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('journey_patterns.update') + !referential_read_only? && 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..f7b03b0b5 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') + !referential_read_only? && organisation_match? && user.has_permission?('footnotes.create') end def edit_footnote? - !archived? && organisation_match? && user.has_permission?('footnotes.update') + !referential_read_only? && organisation_match? && user.has_permission?('footnotes.update') end def destroy_footnote? - !archived? && organisation_match? && user.has_permission?('footnotes.destroy') + !referential_read_only? && 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..eb3b04bf7 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') + !referential_read_only? && organisation_match? && user.has_permission?('purchase_windows.create') end def update? - !archived? && organisation_match? && user.has_permission?('purchase_windows.update') + !referential_read_only? && organisation_match? && user.has_permission?('purchase_windows.update') end def destroy? - !archived? && organisation_match? && user.has_permission?('purchase_windows.destroy') + !referential_read_only? && 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..af5c14880 100644 --- a/app/policies/referential_policy.rb +++ b/app/policies/referential_policy.rb @@ -10,23 +10,23 @@ class ReferentialPolicy < ApplicationPolicy end def destroy? - !archived? && organisation_match? && user.has_permission?('referentials.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('referentials.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('referentials.update') + !referential_read_only? && organisation_match? && user.has_permission?('referentials.update') end def clone? - !archived? && create? + !referential_read_only? && create? end def validate? - !archived? && create? && organisation_match? + !referential_read_only? && create? && organisation_match? end def archive? - record.archived_at.nil? && organisation_match? && user.has_permission?('referentials.update') + !referential_read_only? && record.archived_at.nil? && organisation_match? && user.has_permission?('referentials.update') end def unarchive? diff --git a/app/policies/route_policy.rb b/app/policies/route_policy.rb index 7e9fe251a..0337a5300 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') + !referential_read_only? && organisation_match? && user.has_permission?('routes.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('routes.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('routes.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('routes.update') + !referential_read_only? && 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..fd8081bef 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') + !referential_read_only? && organisation_match? && user.has_permission?('routing_constraint_zones.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('routing_constraint_zones.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('routing_constraint_zones.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('routing_constraint_zones.update') + !referential_read_only? && 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..bba458c18 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') + !referential_read_only? && 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..390c170c7 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') + !referential_read_only? && organisation_match? && user.has_permission?('time_tables.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('time_tables.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('time_tables.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('time_tables.update') + !referential_read_only? && organisation_match? && user.has_permission?('time_tables.update') end def actualize? - !archived? && organisation_match? && edit? + !referential_read_only? && organisation_match? && edit? end def duplicate? - !archived? && organisation_match? && create? + !referential_read_only? && organisation_match? && create? end def month? diff --git a/app/policies/vehicle_journey_policy.rb b/app/policies/vehicle_journey_policy.rb index 24040455f..adbc5fd89 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') + !referential_read_only? && organisation_match? && user.has_permission?('vehicle_journeys.create') end def destroy? - !archived? && organisation_match? && user.has_permission?('vehicle_journeys.destroy') + !referential_read_only? && organisation_match? && user.has_permission?('vehicle_journeys.destroy') end def update? - !archived? && organisation_match? && user.has_permission?('vehicle_journeys.update') + !referential_read_only? && organisation_match? && user.has_permission?('vehicle_journeys.update') end end |
