Skip to content
Snippets Groups Projects
Commit d0378b75 authored by Jiří Setnička's avatar Jiří Setnička
Browse files

Rights: Práva pro přidávání a editování uživatelů/orgů

Právo pro přidávání je oddělené, aby mohl napři dozor přidávat řešitele, ale
nemohl volně editovat již existující.
parent 61fde039
No related branches found
No related tags found
1 merge request!5Základ práce s uživateli
......@@ -16,6 +16,10 @@ class Right(Enum):
upload_solutions = auto()
upload_feedback = auto()
edit_points = auto()
add_users = auto()
edit_users = auto()
add_orgs = auto()
edit_orgs = auto()
@dataclass
......@@ -33,6 +37,10 @@ roles: List[Role] = [
Right.assign_rights,
Right.edit_place,
Right.manage_contest,
Right.add_users,
Right.edit_users,
Right.add_orgs,
Right.edit_orgs,
},
),
Role(
......@@ -42,6 +50,10 @@ roles: List[Role] = [
Right.assign_rights,
Right.edit_place,
Right.manage_contest,
Right.add_users,
Right.edit_users,
Right.add_orgs,
Right.edit_orgs,
},
),
Role(
......@@ -51,6 +63,8 @@ roles: List[Role] = [
Right.assign_rights,
Right.edit_place,
Right.manage_contest,
Right.add_users,
Right.edit_users,
},
),
Role(
......@@ -58,6 +72,7 @@ roles: List[Role] = [
name='dozor',
rights={
Right.upload_solutions,
Right.add_users,
},
),
Role(
......@@ -150,3 +165,10 @@ class Rights:
# level >= 3 ... city 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
elif user.is_org:
return self.have_right(Right.edit_orgs)
return self.have_right(Right.edit_users)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment