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