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