forked from canada-ca/tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_sa.py
More file actions
61 lines (52 loc) · 1.9 KB
/
create_sa.py
File metadata and controls
61 lines (52 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import os
from db import db_session
from models import User_affiliations, Users, Organizations
from functions.slugify import slugify_value
SA_USER_NAME = os.getenv("SA_USER_NAME")
SA_PASSWORD = os.getenv("SA_PASSWORD")
SA_DISPLAY_NAME = os.getenv("SA_DISPLAY_NAME")
def create_sa():
user_orm = db_session.query(Users).filter(Users.user_name == SA_USER_NAME).first()
if user_orm is None:
new_user = Users(
user_name=SA_USER_NAME,
display_name=SA_DISPLAY_NAME,
password=SA_PASSWORD,
preferred_lang="english",
failed_login_attempt_time=0,
failed_login_attempts=0,
tfa_validated=False,
)
db_session.add(new_user)
db_session.commit()
org_orm = (
db_session.query(Organizations).filter(Organizations.acronym == "SA").first()
)
if org_orm is None:
new_org = Organizations(
acronym="SUPER-ADMIN",
slug="super-admin",
org_tags={"description": "Super Admin Organization"},
)
db_session.add(new_org)
db_session.commit()
user_orm = db_session.query(Users).filter(Users.user_name == SA_USER_NAME).first()
org_orm = (
db_session.query(Organizations).filter(Organizations.acronym == "SA").first()
)
if org_orm is not None and user_orm is not None:
user_aff_orm = (
db_session.query(User_affiliations)
.filter(User_affiliations.user_id == user_orm.id)
.filter(User_affiliations.organization_id == org_orm.id)
.first()
)
if user_aff_orm is None:
new_user_aff = User_affiliations(
organization_id=org_orm.id,
user_id=user_orm.id,
permission="super_admin",
)
db_session.add(new_user_aff)
db_session.commit()
print("Created Super Admin User")