forked from ScoDoc/ScoDoc
Ajout rôles et permissions pour Entreprises
This commit is contained in:
parent
411533ae79
commit
0e02baccb0
@ -37,6 +37,16 @@ _SCO_PERMISSIONS = (
|
||||
(1 << 21, "ScoEditPVJury", "Éditer les PV de jury"),
|
||||
# ajouter maquettes Apogee (=> chef dept et secr):
|
||||
(1 << 22, "ScoEditApo", "Ajouter des maquettes Apogées"),
|
||||
# Application relations entreprises
|
||||
(1 << 23, "RelationsEntreprisesView", "Voir l'application relations entreprises"),
|
||||
(1 << 24, "RelationsEntreprisesChange", "Modifier les entreprises"),
|
||||
(
|
||||
1 << 25,
|
||||
"RelationsEntreprisesExport",
|
||||
"Exporter les données de l'application relations entreprises",
|
||||
),
|
||||
(1 << 25, "RelationsEntreprisesSend", "Envoyer des offres"),
|
||||
(1 << 26, "RelationsEntreprisesValidate", "Valide les entreprises"),
|
||||
)
|
||||
|
||||
|
||||
|
@ -58,8 +58,31 @@ SCO_ROLES_DEFAULTS = {
|
||||
# il peut ajouter des tags sur les formations:
|
||||
# (doit avoir un rôle Ens en plus !)
|
||||
"RespPe": (p.ScoEditFormationTags,),
|
||||
# Rôles pour l'application relations entreprises
|
||||
# ObservateurEntreprise est un observateur de l'application entreprise
|
||||
"ObservateurEntreprise": (p.RelationsEntreprisesView,),
|
||||
# UtilisateurEntreprise est un utilisateur de l'application entreprise (droit de modification)
|
||||
"UtilisateurEntreprise": (p.RelationsEntreprisesView, p.RelationsEntreprisesChange),
|
||||
# AdminEntreprise est un admin de l'application entreprise (toutes les actions possibles de l'application)
|
||||
"AdminEntreprise": (
|
||||
p.RelationsEntreprisesView,
|
||||
p.RelationsEntreprisesChange,
|
||||
p.RelationsEntreprisesExport,
|
||||
p.RelationsEntreprisesSend,
|
||||
p.RelationsEntreprisesValidate,
|
||||
),
|
||||
# Super Admin est un root: création/suppression de départements
|
||||
# _tous_ les droits
|
||||
# Afin d'avoir tous les droits, il ne doit pas être asscoié à un département
|
||||
"SuperAdmin": p.ALL_PERMISSIONS,
|
||||
}
|
||||
|
||||
# Les rôles accessibles via la page d'admin utilisateurs
|
||||
# - associés à un département:
|
||||
ROLES_ATTRIBUABLES_DEPT = ("Ens", "Secr", "Admin", "RespPe")
|
||||
# - globaux: (ne peuvent être attribués que par un SuperAdmin)
|
||||
ROLES_ATTRIBUABLES_SCODOC = (
|
||||
"ObservateurEntreprise",
|
||||
"UtilisateurEntreprise",
|
||||
"AdminEntreprise",
|
||||
)
|
||||
|
@ -62,7 +62,7 @@ from app.decorators import (
|
||||
permission_required,
|
||||
)
|
||||
|
||||
from app.scodoc import html_sco_header, sco_import_users, sco_excel
|
||||
from app.scodoc import html_sco_header, sco_import_users, sco_excel, sco_roles_default
|
||||
from app.scodoc import sco_users
|
||||
from app.scodoc import sco_utils as scu
|
||||
from app.scodoc import sco_xml
|
||||
@ -150,9 +150,10 @@ def user_info(user_name, format="json"):
|
||||
@permission_required(Permission.ScoUsersAdmin)
|
||||
@scodoc7func
|
||||
def create_user_form(user_name=None, edit=0, all_roles=1):
|
||||
"form. création ou edition utilisateur"
|
||||
"form. création ou édition utilisateur"
|
||||
if user_name is not None: # scodoc7func converti en int !
|
||||
user_name = str(user_name)
|
||||
Role.insert_roles() # assure la mise à jour des rôles en base
|
||||
auth_dept = current_user.dept
|
||||
from_mail = current_app.config["SCODOC_MAIL_FROM"] # current_user.email
|
||||
initvalues = {}
|
||||
@ -191,7 +192,7 @@ def create_user_form(user_name=None, edit=0, all_roles=1):
|
||||
else:
|
||||
# Les rôles standards créés à l'initialisation de ScoDoc:
|
||||
standard_roles = [
|
||||
Role.get_named_role(r) for r in ("Ens", "Secr", "Admin", "RespPe")
|
||||
Role.get_named_role(r) for r in sco_roles_default.ROLES_ATTRIBUABLES_DEPT
|
||||
]
|
||||
# Départements auxquels ont peut associer des rôles via ce dialogue:
|
||||
# si SuperAdmin, tous les rôles standards dans tous les départements
|
||||
@ -215,6 +216,11 @@ def create_user_form(user_name=None, edit=0, all_roles=1):
|
||||
editable_roles_set = {
|
||||
(r, dept) for r in standard_roles for dept in administrable_dept_acronyms
|
||||
}
|
||||
if current_user.is_administrator():
|
||||
editable_roles_set |= {
|
||||
(Role.get_named_role(r), "")
|
||||
for r in sco_roles_default.ROLES_ATTRIBUABLES_SCODOC
|
||||
}
|
||||
#
|
||||
if not edit:
|
||||
submitlabel = "Créer utilisateur"
|
||||
|
Loading…
Reference in New Issue
Block a user