aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/policies/company_policy.rb20
-rw-r--r--app/policies/line_policy.rb12
-rw-r--r--app/policies/network_policy.rb11
-rw-r--r--app/policies/stop_area_policy.rb12
-rw-r--r--spec/fixtures/zip/.gitkeep0
-rw-r--r--spec/policies/access_link_policy_spec.rb10
-rw-r--r--spec/policies/company_policy_spec.rb10
-rw-r--r--spec/policies/line_policy_spec.rb10
-rw-r--r--spec/policies/network_policy_spec.rb10
-rw-r--r--spec/policies/stop_area_policy_spec.rb10
10 files changed, 76 insertions, 29 deletions
diff --git a/app/policies/company_policy.rb b/app/policies/company_policy.rb
index 45386aba4..eb2b868d9 100644
--- a/app/policies/company_policy.rb
+++ b/app/policies/company_policy.rb
@@ -1,7 +1,19 @@
class CompanyPolicy < ApplicationPolicy
- class Scope < Scope
- def resolve
- scope
- end
+ class Scope < Scope
+ def resolve
+ scope
end
end
+
+ def create?
+ !archived? && organisation_match? && user.has_permission?('companies.create')
+ end
+
+ def update?
+ !archived? && organisation_match? && user.has_permission?('companies.update')
+ end
+
+ def destroy?
+ !archived? && organisation_match? && user.has_permission?('companies.destroy')
+ end
+end
diff --git a/app/policies/line_policy.rb b/app/policies/line_policy.rb
index acb0d79e7..a39beb788 100644
--- a/app/policies/line_policy.rb
+++ b/app/policies/line_policy.rb
@@ -6,6 +6,18 @@ class LinePolicy < ApplicationPolicy
end
end
+ def create?
+ !archived? && organisation_match? && user.has_permission?('lines.create')
+ end
+
+ def update?
+ !archived? && organisation_match? && user.has_permission?('lines.update')
+ end
+
+ def destroy?
+ !archived? && organisation_match? && user.has_permission?('lines.destroy')
+ end
+
def create_footnote?
!archived? && organisation_match? && user.has_permission?('footnotes.create')
end
diff --git a/app/policies/network_policy.rb b/app/policies/network_policy.rb
index 9f86451a5..7adc48589 100644
--- a/app/policies/network_policy.rb
+++ b/app/policies/network_policy.rb
@@ -4,4 +4,15 @@ class NetworkPolicy < ApplicationPolicy
scope
end
end
+ def create?
+ !archived? && organisation_match? && user.has_permission?('networks.create')
+ end
+
+ def update?
+ !archived? && organisation_match? && user.has_permission?('networks.update')
+ end
+
+ def destroy?
+ !archived? && organisation_match? && user.has_permission?('networks.destroy')
+ end
end
diff --git a/app/policies/stop_area_policy.rb b/app/policies/stop_area_policy.rb
index de8ecda8d..6f147efef 100644
--- a/app/policies/stop_area_policy.rb
+++ b/app/policies/stop_area_policy.rb
@@ -4,4 +4,16 @@ class StopAreaPolicy < ApplicationPolicy
scope
end
end
+
+ def create?
+ !archived? && organisation_match? && user.has_permission?('stop_areas.create')
+ end
+
+ def update?
+ !archived? && organisation_match? && user.has_permission?('stop_areas.update')
+ end
+
+ def destroy?
+ !archived? && organisation_match? && user.has_permission?('stop_areas.destroy')
+ end
end
diff --git a/spec/fixtures/zip/.gitkeep b/spec/fixtures/zip/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/spec/fixtures/zip/.gitkeep
diff --git a/spec/policies/access_link_policy_spec.rb b/spec/policies/access_link_policy_spec.rb
index 6194ae55c..65b7bbee9 100644
--- a/spec/policies/access_link_policy_spec.rb
+++ b/spec/policies/access_link_policy_spec.rb
@@ -3,18 +3,18 @@ RSpec.describe AccessLinkPolicy, type: :policy do
let( :record ){ build_stubbed :access_link }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', "access_links.destroy", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.destroy", archived: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true
end
end
diff --git a/spec/policies/company_policy_spec.rb b/spec/policies/company_policy_spec.rb
index 2d249a2be..152b61199 100644
--- a/spec/policies/company_policy_spec.rb
+++ b/spec/policies/company_policy_spec.rb
@@ -24,19 +24,19 @@ RSpec.describe CompanyPolicy, type: :policy do
context 'Destructive actions →' do
permissions :create? do
- it_behaves_like 'always forbidden', 'companies.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'companies.create', archived: true
end
permissions :destroy? do
- it_behaves_like 'always forbidden', 'companies.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'companies.destroy', archived: true
end
permissions :edit? do
- it_behaves_like 'always forbidden', 'companies.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'companies.update', archived: true
end
permissions :new? do
- it_behaves_like 'always forbidden', 'companies.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'companies.create', archived: true
end
permissions :update? do
- it_behaves_like 'always forbidden', 'companies.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'companies.update', archived: true
end
end
end
diff --git a/spec/policies/line_policy_spec.rb b/spec/policies/line_policy_spec.rb
index 334073506..da99d1726 100644
--- a/spec/policies/line_policy_spec.rb
+++ b/spec/policies/line_policy_spec.rb
@@ -24,19 +24,19 @@ RSpec.describe LinePolicy, type: :policy do
context 'Destructive actions →' do
permissions :create? do
- it_behaves_like 'always forbidden', 'lines.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'lines.create', archived: true
end
permissions :destroy? do
- it_behaves_like 'always forbidden', 'lines.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'lines.destroy', archived: true
end
permissions :edit? do
- it_behaves_like 'always forbidden', 'lines.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'lines.update', archived: true
end
permissions :new? do
- it_behaves_like 'always forbidden', 'lines.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'lines.create', archived: true
end
permissions :update? do
- it_behaves_like 'always forbidden', 'lines.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'lines.update', archived: true
end
end
diff --git a/spec/policies/network_policy_spec.rb b/spec/policies/network_policy_spec.rb
index c09546c22..aeffdd0d2 100644
--- a/spec/policies/network_policy_spec.rb
+++ b/spec/policies/network_policy_spec.rb
@@ -24,19 +24,19 @@ RSpec.describe Chouette::NetworkPolicy, type: :policy do
context 'Destructive actions →' do
permissions :create? do
- it_behaves_like 'always forbidden', 'networks.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'networks.create', archived: true
end
permissions :destroy? do
- it_behaves_like 'always forbidden', 'networks.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'networks.destroy', archived: true
end
permissions :edit? do
- it_behaves_like 'always forbidden', 'networks.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'networks.update', archived: true
end
permissions :new? do
- it_behaves_like 'always forbidden', 'networks.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'networks.create', archived: true
end
permissions :update? do
- it_behaves_like 'always forbidden', 'networks.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'networks.update', archived: true
end
end
end
diff --git a/spec/policies/stop_area_policy_spec.rb b/spec/policies/stop_area_policy_spec.rb
index 8fe59c8e3..45a938564 100644
--- a/spec/policies/stop_area_policy_spec.rb
+++ b/spec/policies/stop_area_policy_spec.rb
@@ -24,19 +24,19 @@ RSpec.describe StopAreaPolicy, type: :policy do
context 'Destructive actions →' do
permissions :create? do
- it_behaves_like 'always forbidden', 'stop_areas.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'stop_areas.create', archived: true
end
permissions :destroy? do
- it_behaves_like 'always forbidden', 'stop_areas.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'stop_areas.destroy', archived: true
end
permissions :edit? do
- it_behaves_like 'always forbidden', 'stop_areas.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'stop_areas.update', archived: true
end
permissions :new? do
- it_behaves_like 'always forbidden', 'stop_areas.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'stop_areas.create', archived: true
end
permissions :update? do
- it_behaves_like 'always forbidden', 'stop_areas.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'stop_areas.update', archived: true
end
end
end