Skip to content
Snippets Groups Projects
Commit 9e5447f3 authored by Martin Mareš's avatar Martin Mareš
Browse files

DB: Zavedení systémového uživatele

Občas potřebujeme objekt typu User pro nějakou akci, která není
přimo vyvolaná uživatelem: ať už je spuštěná ze samostatného skriptu,
nebo z automaticky naplánovaného jobu.
parent b9fd4b32
Branches
No related tags found
1 merge request!109Automatická oprava rozbitých PDF
...@@ -31,6 +31,12 @@ CREATE TABLE users ( ...@@ -31,6 +31,12 @@ CREATE TABLE users (
email_notify boolean NOT NULL DEFAULT true -- přeje si dostávat mailové notifikace email_notify boolean NOT NULL DEFAULT true -- přeje si dostávat mailové notifikace
); );
-- Uživatel s user_id=0 vždy existuje a je to systémový uživatel s právy admina.
-- Nemá nastavené heslo, takže se na něj nejde přihlásit.
-- Nelze mu ani heslo resetovat (to nejde adminům obecně), ani poslat pozvánku (má last_login_at).
INSERT INTO users(user_id, email, first_name, last_name, is_admin, email_notify, last_login_at, note)
VALUES(0, 'system', 'Systém', 'OSMO', true, false, NOW(), 'Systémový uživatel');
-- Hierarchie regionů a organizací -- Hierarchie regionů a organizací
CREATE TYPE place_type AS ENUM ( CREATE TYPE place_type AS ENUM (
......
...@@ -2,3 +2,6 @@ SET ROLE 'mo_osmo'; ...@@ -2,3 +2,6 @@ SET ROLE 'mo_osmo';
ALTER TABLE papers ADD COLUMN ALTER TABLE papers ADD COLUMN
fixed_at timestamp with time zone DEFAULT NULL; fixed_at timestamp with time zone DEFAULT NULL;
INSERT INTO users(user_id, email, first_name, last_name, is_admin, email_notify, last_login_at, note)
VALUES(0, 'system', 'Systém', 'OSMO', true, false, NOW(), 'Systémový uživatel');
...@@ -373,6 +373,13 @@ class User(Base): ...@@ -373,6 +373,13 @@ class User(Base):
return self.password_hash is None return self.password_hash is None
def get_system_user() -> User:
"""Uživatel s user_id=0 je systémový (viz db.ddl)"""
user = get_session().query(User).get(0)
assert user is not None
return user
class Contest(Base): class Contest(Base):
__tablename__ = 'contests' __tablename__ = 'contests'
__table_args__ = ( __table_args__ = (
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment