From 2aedc8a00497c13694503f4545ed45484d843382 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sat, 16 Jan 2021 16:24:57 +0100
Subject: [PATCH] =?UTF-8?q?M=C3=ADt=20pr=C3=A1vo=20editovat=20m=C3=ADsto?=
 =?UTF-8?q?=20a=20p=C5=99idat=20mu=20pod=C5=99=C3=ADzen=C3=A9=20nen=C3=AD?=
 =?UTF-8?q?=20tot=C3=A9=C5=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mo/rights.py                    | 8 ++++++++
 mo/web/org_place.py             | 1 +
 mo/web/templates/org_place.html | 2 +-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/mo/rights.py b/mo/rights.py
index 4f119ef7..40a72a75 100644
--- a/mo/rights.py
+++ b/mo/rights.py
@@ -153,6 +153,14 @@ class Rights:
             return True
         return False
 
+    def can_add_place_child(self, place: db.Place):
+        if self.have_right(Right.edit_region):
+            return True
+        elif place.level >= 2 and self.have_right(Right.edit_place):
+            # Can add cities and lower
+            return True
+        return False
+
     def can_edit_user(self, user: db.User):
         if user.is_admin:
             return self.user.is_admin  # only admins can edit admins
diff --git a/mo/web/org_place.py b/mo/web/org_place.py
index 8d032472..4192d0b8 100644
--- a/mo/web/org_place.py
+++ b/mo/web/org_place.py
@@ -34,6 +34,7 @@ def org_place(id: int):
     return render_template(
         'org_place.html', place=place, school=school,
         can_edit=rr.can_edit_place(place),
+        can_add_child=rr.can_add_place_child(place),
         children=children
     )
 
diff --git a/mo/web/templates/org_place.html b/mo/web/templates/org_place.html
index e5773cf0..1386bfd1 100644
--- a/mo/web/templates/org_place.html
+++ b/mo/web/templates/org_place.html
@@ -49,7 +49,7 @@
 	{% endfor %}
 	</table>
 {% endif %}
-{% if can_edit %}
+{% if can_add_child %}
 	<a class="btn btn-primary" href="{{ url_for('org_place_new_child', id=place.place_id) }}">Přidat nové podřízené místo</a>
 {% endif %}
 {% endif %}
-- 
GitLab