From cebfa63bed4981856de5fda4fb9d5c958f3c8155 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Fri, 15 Jan 2021 22:43:29 +0100
Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1na=20role=20=C5=A1koln=C3=ADho?=
=?UTF-8?q?=20garanta?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Zatím má dost velka práva, časem omezíme.
---
db/db.ddl | 1 +
db/upgrade-20210115b.sql | 3 +++
mo/db.py | 2 ++
mo/rights.py | 15 +++++++++++++++
4 files changed, 21 insertions(+)
create mode 100644 db/upgrade-20210115b.sql
diff --git a/db/db.ddl b/db/db.ddl
index 83bfb7a4..52b984df 100644
--- a/db/db.ddl
+++ b/db/db.ddl
@@ -197,6 +197,7 @@ CREATE TYPE role_type AS ENUM (
'garant', -- celostátní garant (může být omezený na kategorii)
'garant_kraj', -- krajský garant
'garant_okres', -- okresní garant
+ 'garant_skola', -- školní garant
'dozor', -- dozor na soutěži (může odevzdávat řešení za účastníky)
'opravovatel' -- opravovatel
);
diff --git a/db/upgrade-20210115b.sql b/db/upgrade-20210115b.sql
new file mode 100644
index 00000000..1262c923
--- /dev/null
+++ b/db/upgrade-20210115b.sql
@@ -0,0 +1,3 @@
+SET ROLE 'mo_osmo';
+
+ALTER TYPE role_type ADD VALUE 'garant_skola' AFTER 'garant_okres';
diff --git a/mo/db.py b/mo/db.py
index ec1dfe01..cd9d0a39 100644
--- a/mo/db.py
+++ b/mo/db.py
@@ -348,6 +348,7 @@ class RoleType(MOEnum):
garant = auto()
garant_kraj = auto()
garant_okres = auto()
+ garant_skola = auto()
dozor = auto()
opravovatel = auto()
@@ -359,6 +360,7 @@ role_type_names = {
RoleType.garant: 'celostátní garant',
RoleType.garant_kraj: 'krajský garant',
RoleType.garant_okres: 'okresní garant',
+ RoleType.garant_skola: 'školní garant',
RoleType.dozor: 'dozor',
RoleType.opravovatel: 'opravovatel',
}
diff --git a/mo/rights.py b/mo/rights.py
index a9daeb9c..63a4e5db 100644
--- a/mo/rights.py
+++ b/mo/rights.py
@@ -84,6 +84,21 @@ roles: List[Role] = [
Right.edit_users,
},
),
+ Role(
+ role=db.RoleType.garant_skola,
+ rights={
+ # FIXME: Až se pořádně rozjedou školní kola, asi chceme školním správcům omezit
+ # práva na editaci uživatelů. Viz issue #66.
+ Right.assign_rights,
+ Right.edit_place,
+ Right.manage_contest,
+ Right.view_submits,
+ Right.upload_submits,
+ Right.edit_points,
+ Right.add_users,
+ Right.edit_users,
+ },
+ ),
Role(
role=db.RoleType.dozor,
rights={
--
GitLab