Aller au contenu

app.attribution_permissions

Attribution d’un ensemble de permissions à un utilisateur, avec sa période de validité.

Name Type Default Nullable Children Parents Comment
id uuid app.uuid_v7() false Identifiant de l’attribution (UUID v7).
organisation_id uuid false app.utilisateur app.ensemble_permissions Organisation propriétaire de la ligne. Sert à l’isolation par RLS (EC-032) et au filtrage de la synchronisation.
utilisateur_id uuid false app.utilisateur Utilisateur bénéficiaire.
ensemble_id uuid false app.ensemble_permissions Ensemble de permissions attribué.
debut timestamp with time zone now() false Début de la période d’attribution.
fin timestamp with time zone true Fin de la période. Nulle si l’attribution est sans limite.
attribue_par uuid false app.utilisateur Utilisateur qui a attribué l’ensemble.
cree_le timestamp with time zone now() false Date de création de la ligne.
modifie_le timestamp with time zone now() false Date de la dernière modification, tenue par un déclencheur.
Name Type Definition
attribution_permissions_check CHECK CHECK (((fin IS NULL) OR (fin > debut)))
attribution_permissions_organisation_id_attribue_par_fkey FOREIGN KEY FOREIGN KEY (organisation_id, attribue_par) REFERENCES app.utilisateur(organisation_id, id)
attribution_permissions_organisation_id_utilisateur_id_fkey FOREIGN KEY FOREIGN KEY (organisation_id, utilisateur_id) REFERENCES app.utilisateur(organisation_id, id)
attribution_permissions_organisation_id_ensemble_id_fkey FOREIGN KEY FOREIGN KEY (organisation_id, ensemble_id) REFERENCES app.ensemble_permissions(organisation_id, id)
attribution_permissions_pkey PRIMARY KEY PRIMARY KEY (id)
Name Definition
attribution_permissions_pkey CREATE UNIQUE INDEX attribution_permissions_pkey ON app.attribution_permissions USING btree (id)
Name Definition
journal CREATE TRIGGER journal AFTER INSERT OR DELETE OR UPDATE ON app.attribution_permissions FOR EACH ROW EXECUTE FUNCTION journal.tg_journaliser()
modifie_le CREATE TRIGGER modifie_le BEFORE UPDATE ON app.attribution_permissions FOR EACH ROW EXECUTE FUNCTION app.tg_modifie_le()
erDiagram

"app.attribution_permissions" }o--|| "app.utilisateur" : "FOREIGN KEY (organisation_id, attribue_par) REFERENCES app.utilisateur(organisation_id, id)"
"app.attribution_permissions" }o--|| "app.utilisateur" : "FOREIGN KEY (organisation_id, utilisateur_id) REFERENCES app.utilisateur(organisation_id, id)"
"app.attribution_permissions" }o--|| "app.ensemble_permissions" : "FOREIGN KEY (organisation_id, ensemble_id) REFERENCES app.ensemble_permissions(organisation_id, id)"

"app.attribution_permissions" {
  uuid id "Identifiant de l'attribution (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
  uuid utilisateur_id FK "Utilisateur bénéficiaire."
  uuid ensemble_id FK "Ensemble de permissions attribué."
  timestamp_with_time_zone debut "Début de la période d'attribution."
  timestamp_with_time_zone fin "Fin de la période. Nulle si l'attribution est sans limite."
  uuid attribue_par FK "Utilisateur qui a attribué l'ensemble."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de la dernière modification, tenue par un déclencheur."
}
"app.utilisateur" {
  uuid id "Identifiant de l'utilisateur (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
  uuid keycloak_sub "Identifiant du compte Keycloak (revendication sub). Identique d'une organisation à l'autre pour un compte externe."
  text identifiant "Identifiant local de connexion, sans le code de l'organisation : 3 à 32 caractères parmi a-z, 0-9, _ et -. Unique dans l'organisation."
  text nom_affiche "Nom affiché dans l'application."
  text telephone "Numéro de téléphone. Attribut du compte, jamais son identifiant."
  text statut "Statut du compte : actif, suspendu ou desactive."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de la dernière modification, tenue par un déclencheur."
}
"app.ensemble_permissions" {
  uuid id "Identifiant de l'ensemble (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
  text code "Code de l'ensemble, unique dans l'organisation."
  text libelle "Libellé affiché."
  text__ permissions "Permissions accordées, validées par l'API contre le catalogue du code."
  boolean sensible "Vrai si l'ensemble impose le second facteur d'authentification."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de la dernière modification, tenue par un déclencheur."
}

Generated by tbls