Vai al contenuto

People — Dettaglio utente

La pagina Dettaglio utente (/dashboard/users/:id) mostra il profilo completo di un Paradigmino, suddiviso in sezioni indipendenti.

Esperienza utente

Sezioni del profilo

Sezione Contenuto
Header Foto, nome, azioni rapide
Informazioni generali Dati lavorativi, posizione, BU
Informazioni personali Dati anagrafici e di contatto
Contratti Storico contrattuale
Skills Competenze associate
Progetti Progetti assegnati

Cosa si può fare

  • Consultare tutte le sezioni (accesso in lettura per utenti autorizzati)
  • Modificare il profilo se canManageUsers() oppure se si sta visualizzando il proprio profilo (isSelf)
  • Gestire contratti e skills (aggiunta/rimozione): in base alle policies dedicate / gestione utenti
  • Aprire dialog di aggiornamento foto e campi principali dall'header

Limitazioni

Azione canManageUsers() Self (proprio profilo) Altri utenti
Visualizzare sezioni
Modificare generali/personali No
Gestire contratti Sì (policies) No No
Aggiungere skills Sì (policies) No No
Dialog aggiornamento header No

Vedi Accesso e ruoli.

Dettaglio tecnico

Modello permessi

UserDetailComponent calcola:

  • canManageUserspoliciesService.canManageUsers() (persons.create)
  • isSelf → confronto email da PeopleService.getEmailByID(id) con authService.isSelf(email)

L'email viene caricata all'ngOnInit. In caso di 403, viene mostrato un toast e isSelf resta false — l'utente non può operare come "proprio profilo" senza accesso all'email.

Caricamento sezioni

Ogni sotto-componente in src/components/user-detail/ carica i propri dati tramite PeopleService con endpoint differenziati per tipo (general, personal, contracts, skills, projects, …). Non c'è un unico payload aggregato.

Dialog skills

AddSkillDialogComponent è orchestrato da AddSkillDialogService (stato condiviso per apertura/chiusura e callback).

flowchart LR
  UD[UserDetailComponent] -->|id| PS[PeopleService.getEmailByID]
  PS -->|email| IS{isSelf?}
  IS -->|sì/no + canManageUsers| SEC[Sezioni editabili]
  SEC --> GI[GeneralInfo]
  SEC --> PI[PersonalInfo]
  SEC --> UC[UserContracts]
  SEC --> US[UserSkills]
  SEC --> UP[UserProjects]

File principali

File Ruolo
src/pages/user-detail/user-detail.component.ts Orchestrazione e permessi
src/components/user-detail/ Sezioni profilo
src/services/people.service.ts API per sezione
src/services/policies.service.ts ACL UI
src/services/add-skill-dialog.service.ts Stato dialog skills