From 909b6a93dc43795392efe98df1910d000623f15c Mon Sep 17 00:00:00 2001
From: Craig Williams
Date: Thu, 10 Feb 2022 17:54:56 +0000
Subject: [PATCH] Tighten some edit permissions on organisations
---
.../Seeds/OrganisationPermissions.php | 9 +++++-
templates/pages/organisation.html.twig | 30 ++++++++++++++++---
2 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/src/Database/Seeds/OrganisationPermissions.php b/src/Database/Seeds/OrganisationPermissions.php
index 92eb4bb..1ccf848 100644
--- a/src/Database/Seeds/OrganisationPermissions.php
+++ b/src/Database/Seeds/OrganisationPermissions.php
@@ -66,9 +66,15 @@ class OrganisationPermissions extends BaseSeed
'view_organisation_field_own' => new Permission([
'slug' => 'view_organisation_field',
'name' => 'View own organisation',
- 'conditions' => "is_organisation_member(self.id,organisation.id) & in(property,['name','slug','description','members'])",
+ 'conditions' => "is_organisation_member(self.id,organisation.id) && in(property,['name','slug','description','members'])",
'description' => 'View certain properties of own organisation.',
]),
+ 'update_organisation_field_own' => new Permission([
+ 'slug' => 'update_organisation_field',
+ 'name' => 'Update own organisation',
+ 'conditions' => "is_organisation_admin(self.id,organisation.id) && subset(fields,['name','slug','description','members'])",
+ 'description' => 'Edit basic properties of own organisation.',
+ ]),
'update_organisation_field' => new Permission([
'slug' => 'update_organisation_field',
'name' => 'Edit organisation',
@@ -206,6 +212,7 @@ class OrganisationPermissions extends BaseSeed
$permissions['uri_organisations']->id,
$permissions['uri_organisation_own']->id,
$permissions['view_organisation_field_own']->id,
+ $permissions['update_organisation_field_own']->id,
$permissions['leave_organisation']->id,
$permissions['register_organisation']->id,
]);
diff --git a/templates/pages/organisation.html.twig b/templates/pages/organisation.html.twig
index 75175d1..3e17f39 100644
--- a/templates/pages/organisation.html.twig
+++ b/templates/pages/organisation.html.twig
@@ -24,17 +24,39 @@
@@ -78,7 +100,7 @@
{% endif %}
{% block organisation_profile %}{% endblock %}
- {% if checkAccess('leave_organisation') %}
+ {% if checkAccess('leave_organisation') and (isOrganisationMember(organisation)) %}