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
This commit is part of merge request !5. Comments created here will be created in the context of that merge request.
...@@ -16,6 +16,10 @@ class Right(Enum): ...@@ -16,6 +16,10 @@ class Right(Enum):
upload_solutions = auto() upload_solutions = auto()
upload_feedback = auto() upload_feedback = auto()
edit_points = auto() edit_points = auto()
add_users = auto()
edit_users = auto()
add_orgs = auto()
edit_orgs = auto()
@dataclass @dataclass
...@@ -33,6 +37,10 @@ roles: List[Role] = [ ...@@ -33,6 +37,10 @@ roles: List[Role] = [
Right.assign_rights, Right.assign_rights,
Right.edit_place, Right.edit_place,
Right.manage_contest, Right.manage_contest,
Right.add_users,
Right.edit_users,
Right.add_orgs,
Right.edit_orgs,
}, },
), ),
Role( Role(
...@@ -42,6 +50,10 @@ roles: List[Role] = [ ...@@ -42,6 +50,10 @@ roles: List[Role] = [
Right.assign_rights, Right.assign_rights,
Right.edit_place, Right.edit_place,
Right.manage_contest, Right.manage_contest,
Right.add_users,
Right.edit_users,
Right.add_orgs,
Right.edit_orgs,
}, },
), ),
Role( Role(
...@@ -51,6 +63,8 @@ roles: List[Role] = [ ...@@ -51,6 +63,8 @@ roles: List[Role] = [
Right.assign_rights, Right.assign_rights,
Right.edit_place, Right.edit_place,
Right.manage_contest, Right.manage_contest,
Right.add_users,
Right.edit_users,
}, },
), ),
Role( Role(
...@@ -58,6 +72,7 @@ roles: List[Role] = [ ...@@ -58,6 +72,7 @@ roles: List[Role] = [
name='dozor', name='dozor',
rights={ rights={
Right.upload_solutions, Right.upload_solutions,
Right.add_users,
}, },
), ),
Role( Role(
...@@ -150,3 +165,10 @@ class Rights: ...@@ -150,3 +165,10 @@ class Rights:
# level >= 3 ... city and lower # level >= 3 ... city and lower
return True return True
return False 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 register or to comment