Gestion des utilisateurs (personnes) dans l'application. Ce module couvre l'annuaire des personnes internes et externes, la création de comptes, les arrivées/départs, et les fiches individuelles.
tpaccount)| Valeur | Libellé | Usage |
|---|---|---|
N |
Nominatif | Compte personnel nominatif |
G |
Générique | Boîte générique (service, rôle) |
B |
Boîte partagée | Compte partagé entre plusieurs personnes |
A |
Administrateur | Compte administrateur local |
dtdes null, dtdel null)dtar dans le futurdtdep récentdtdes renseigné, dtdel nulldtdel renseigné (soft delete — invisible dans les listes)/persons)Liste les personnes de l'entité courante. Les onglets disponibles dépendent du profil de l'utilisateur connecté :
| Onglet | Visible par | Contenu |
|---|---|---|
| Personnes actives | Tous | Comptes actifs de type N |
| Arrivées prévues | Tous | Arrivées futures |
| Départs récents | Tous | 20 derniers départs |
| Boîtes partagées/Génériques | Tous | Comptes G et B |
| Tous | Tous | Ensemble des personnes |
| Désactivés | Admin local | Comptes désactivés |
| Administrateurs | Admin local | Comptes de type A |
/persons/clients)Réservé aux prestataires premium. Affiche les personnes des entités clientes pour lesquelles le prestataire a un accès. Permet la création de personnes chez les clients.
/persons/ext)Réservé aux clients (non prestataires). Affiche les personnes provenant de prestataires ayant accès à l'entité. Vue en lecture seule avec actions de gestion des droits.
La création se fait via un assistant multi-étapes (wizard) :
account_type_allowed), racine email, domaine, login (généré automatiquement ou saisi), vérification d'unicitéLe type d'email proposé dépend du paramètre tenant account_type_allowed (configurable dans les paramètres DSI) :
| Valeur | Options proposées |
|---|---|
mailpro_only |
Email pro uniquement |
mailpro_nothing |
Email pro ou sans email |
mailpro_mailperso |
Email pro ou email personnel externe |
mailpro_all |
Email pro, sans email, ou email personnel externe |
La valeur tpmail est enregistrée sur l'utilisateur (pro, perso ou none) en fonction du choix effectué.
L'alerte informative de l'étape Email est dynamique : elle liste uniquement les options réellement disponibles pour le tenant courant, en nombre et en contenu. Elle n'affiche jamais d'options inaccessibles selon la configuration account_type_allowed.
Trois types de création sont disponibles depuis l'annuaire interne :
Accessible depuis chaque ligne de l'annuaire. La fiche est organisée en onglets latéraux :
| Onglet | Contenu | Condition |
|---|---|---|
| Fiche | Données identité, contact, fonction | Toujours visible |
| Informatique | Profils d'accès, rôles projet, matériels | Toujours visible |
| RH | Données RH | Module RH activé |
| Tickets | Tickets associés | Module Ticket + utilisateur gestionnaire |
| Droits | Droits d'accès détaillés | Toujours visible |
| Onglet | Condition |
|---|---|
| Profils d'accès | Toujours visible |
| Rôles projet | Module Projet activé + profil gestionnaire |
| Matériels | Module IT activé + droits matériels |
La sidebar affiche :
tel), SMS (si lbpor), localisation Google Maps (si idaddr)Le panneau latéral d'actions contextuelles propose, selon les droits :
account_type_allowed. Si l'adresse est déjà prise, un message explicite s'affiche sous le champ : il indique quel utilisateur la détient, et précise si c'est un utilisateur archivé qu'il faut supprimer définitivement pour libérer l'adresse (nom masqué si le compte appartient à une autre structure)bl_hide_activation dans DsiParam)En haut de la fiche, des compteurs affichent (chacun conditionné par module et droits) :
| Compteur | Condition |
|---|---|
| Documentations | Module Wiki actif + droit ANNU sur 14170101 |
| Tickets | Module Ticket actif + utilisateur gestionnaire |
| Matériels | Module IT actif + droit R sur 80000101 |
| Projets | Module Projet actif + profil gestionnaire |
| Profils d'accès | Toujours visible (en rouge si 0 profil) |
| Postes / missions | Module RH actif (dsiparam.blrh = 1) |
Accessible via le bouton "Voir" dans les listes, la vue rapide affiche :
Chaque utilisateur possède un ou plusieurs profils dans la table users_profile. Le profil favori (blfavorite = 1) est celui utilisé activement par la session.
| Profil | Rôle |
|---|---|
100 |
Administrateur — assignable uniquement par un admin |
110 / 150 |
Gestionnaires — peuvent modifier les profils |
900 |
Limité — accès restreint aux entités définies dans idlimit |
Un profil peut être contractuel (blcontract) et associé à des adresses spécifiques (idaddrs).
Chaque utilisateur peut avoir plusieurs fonctions dans users_fonc. La fonction principale est marquée blmaster = 1.
| Champ | Description |
|---|---|
lbfonc |
Libellé du poste |
tpfonc |
Type de fonction (référentiel 810079) |
tpcon |
Type de contrat (référentiel 810035) |
idc |
Entité de rattachement de la fonction |
blmaster |
Fonction principale active |
dtbegin / dtend |
Période de validité |
Le module Personnes utilise des hooks PHP et des vues Blade pour gérer la validation, les effets de bord et les alertes du formulaire fiche individuelle (module 12000101, modèle 01).
120001.blade.php)En mode update + modidel = 01, des alertes contextuelles s'affichent en haut de la fiche :
dtdes est renseigné, affiche la date de désactivation120001.form.php)Règles appliquées avant l'enregistrement :
tpsector) n'est pas MS ou MCO120001.db_after.php)Après chaque modification (update) du modèle 01 :
idlimit à vide dans users_profilelbname_asker dans les tickets et lbname_master dans dsi_hw et project_rolelbmail_asker, lbname_asker et iduser_asker dans les tickets + les mêmes champs dans dsi_hw et project_rolepersons_{_id}_{id} et persons_DataTable_{_id}_{id}120001.ctlbefore.php)Avant l'affichage du formulaire (modèle 01) :
/personsidc soumis appartient bien au tenant (les prestataires premium peuvent aussi créer chez leurs clients)tpaccount = 'N' ou valeur invalide, force 'G'120101)Les hooks du sous-module fonctions (12010101) gèrent la création, modification et suppression des postes/missions associés à un utilisateur (users_fonc).
120101.form.php)Règles appliquées pour le modèle 01 :
idc soumis correspond au même _id que l'utilisateur concernétpfonc (CLI_AUTRE), tpcon (depuis tpuser), idaddr et dtbegin (depuis dtar) ; blmaster forcé à 1 si c'est la première fonctionlbfonc absent au POST, récupère le libellé depuis le référentiel 810079blmaster passe à 1, retire automatiquement ce statut aux autres fonctions via updateUnactiveValuesblmaster = 1, la corrige automatiquement en base120101.ctlbefore.php)En mode suppression uniquement :
UserFonc) et son statut blmasterpersons.internal.rh)users_fonc et termine l'exécution120501)Les hooks du sous-module profils (12050101) gèrent la création, modification et suppression des profils d'accès associés à un utilisateur (users_profile).
120501.form.php)Règles appliquées pour le modèle 01 :
_id soumis correspond au tenant courant et que l'utilisateur appartient bien au même tenant que l'entité_id = 1), utilise la liste de profils spéciale 8040078 ; injecte automatiquement _id et initialise blcontract selon le profil choisi (CRUD pour 100/110/120/300, NO sinon) ; les profils 100/110/120 verrouillent le champ idlimit_id + idprofile) pour le même utilisateuridlimit est obligatoire si c'est l'utilisateur courant qui fait la demandeblcontract : masqué sauf pour les admins ou les profils ayant le droit contractuel (blcontract IN CRUD, R)120501.ctlbefore.php)En mode suppression uniquement :
UsersProfile) et vérifie si c'est le profil favori (blfavorite)persons.internal.it)users_profile et termine l'exécutionLes droits sur les personnes sont contrôlés par le droit 12000101 :
| Action | Code |
|---|---|
| Voir l'annuaire | ANNU |
| Lire une fiche | R |
| Créer | C |
| Modifier | U |
| Supprimer/Désactiver | D |
Des restrictions supplémentaires s'appliquent selon le profil :
idlimit) : accès limité à certaines entités seulementtpread: limit-entities : lecture restreinte aux entités configuréestpcreate: limit-entities : création restreinte aux entités configuréesAccessible depuis la page Paramètres DSI (hook 800501, onglet 7). Ces paramètres sont répartis dans 3 sous-onglets, chacun géré par un composant Livewire dédié, et stockés dans DsiParam (colonnes JSON par tenant).
account_type_allowed)Détermine les options proposées à la création de compte (étape Email du wizard) et dans le modal "Modifier l'email" de la fiche :
| Valeur | Options proposées |
|---|---|
mailpro_only |
Email professionnel uniquement |
mailpro_nothing |
Email professionnel ou sans email |
mailpro_mailperso |
Email professionnel ou email personnel |
mailpro_all |
Email professionnel, personnel ou sans email |
| Paramètre | Description |
|---|---|
user-enable-group-step |
Active ou non l'étape "Groupe / Profil" |
user-enable-sante-step |
Active ou non l'étape "Santé" (si module Santé activé) |
Lors de la création d'un utilisateur, une action peut être déclenchée automatiquement :
| Valeur | Comportement |
|---|---|
0 |
Ne rien faire |
1 |
Créer un ticket (SI ou RH) avec un sujet prédéfini |
2 |
Envoyer un email à une adresse configurée |
Champs conditionnels selon le mode :
1 : sélection du sujet de ticket (référentiel 810098)2 : saisie d'une ou plusieurs adresses email de destination (champ à étiquettes : saisir l'adresse puis Entrée pour l'ajouter). Lors de la création, le mail est envoyé à toutes les adresses configurées (ou à l'unique si une seule).Trame du contenu : pour les modes 1 et 2, une trame HTML (éditeur riche) peut être configurée pour pré-remplir le corps du ticket ou de l'email.
ticket_userinfo_si / ticket_userinfo_rh)Paramètre contrôlant l'intégration des informations personnelles dans les tickets de création d'utilisateur. Options issues du référentiel 8040171 (visible uniquement si le module Ticket est actif).
Envoi automatique d'un email X jours avant la date de départ (dtdep) d'un utilisateur. Configurée indépendamment pour les canaux SI et RH.
Paramètre departure_days : nombre de jours avant le départ déclenchant l'alerte (1–365). Si non renseigné, aucune alerte n'est envoyée.
Actions disponibles (par canal SI et RH) :
| Valeur | Comportement |
|---|---|
0 |
Ne rien faire |
2 |
Envoyer un email à une adresse configurée |
Champs conditionnels (mode 2) : une ou plusieurs adresses email de destination (champ à étiquettes) + trame HTML du corps du mail. L'alerte est envoyée à toutes les adresses configurées pour le canal.
Déclenchement : une commande planifiée (user:send-departure-alerts) s'exécute chaque jour à 07h00 et identifie les utilisateurs dont dtdep correspond exactement à aujourd'hui + departure_days. Les utilisateurs archivés ou désactivés sont exclus.
Toutes les requêtes sont filtrées par le tenant courant via _id = session('user')['info']['_id']. Les personnes externes (prestataires) sont gérées via la relation extAccess avec filtre sur _idpresta.