Skip to content
Snippets Groups Projects

Základ práce s uživateli

Merged Jiří Setnička requested to merge jirka/users into master
2 unresolved threads
1 file
+ 22
0
Compare changes
  • Side-by-side
  • Inline
+ 22
0
@@ -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)
Loading