aboutsummaryrefslogtreecommitdiffstats
path: root/app/policies
diff options
context:
space:
mode:
authorRobert2018-01-08 10:09:37 +0100
committerRobert2018-01-08 10:09:37 +0100
commit0a69d409cded29a45ee3857f0a49c9a7a51d858a (patch)
tree84f8eaef50642b5f89ccce2fa401b3c5da4cafa3 /app/policies
parentfb9eb367b9c56c19df7f2e2301f4a417f5409d6d (diff)
downloadchouette-core-0a69d409cded29a45ee3857f0a49c9a7a51d858a.tar.bz2
Fixes: #5413@1h; Specs implemented
Diffstat (limited to 'app/policies')
-rw-r--r--app/policies/access_link_policy.rb6
-rw-r--r--app/policies/access_point_policy.rb6
-rw-r--r--app/policies/application_policy.rb13
-rw-r--r--app/policies/connection_link_policy.rb6
-rw-r--r--app/policies/journey_pattern_policy.rb6
-rw-r--r--app/policies/line_policy.rb6
-rw-r--r--app/policies/purchase_window_policy.rb8
-rw-r--r--app/policies/referential_policy.rb8
-rw-r--r--app/policies/route_policy.rb6
-rw-r--r--app/policies/routing_constraint_zone_policy.rb6
-rw-r--r--app/policies/time_table_combination_policy.rb2
-rw-r--r--app/policies/time_table_policy.rb10
-rw-r--r--app/policies/vehicle_journey_policy.rb6
13 files changed, 45 insertions, 44 deletions
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