9.5 Paramétrage des droits documentaires
9.5.1 Le profil de documents
Un profil de documents permet de déterminer les droits acquis pour les rôles, les groupes et les utilisateurs pour un document donné.
Le profil contient la matrice permettant d'associer comptes et droits.
Exemple de matrice de droits :
Droit D1 | Droit D2 | Droit D3 | |
---|---|---|---|
Rôle R1 | X | X | |
Rôle R2 | X | ||
Groupe G1 | X | ||
Utilisateur U1 | O | O | O |
Quatre familles de profils sont définies :
- profil de famille (droit de créer des documents ou de voir la famille),
- profil de document (droit de voir, modifier ou supprimer des documents),
- profil de dossier (droit de voir le contenu du dossier),
- profil de recherche (droit d'exécuter la recherche).
Liste des droits définis pour ces quatre familles de profils :
Légende :
-
D
: Pour les profils de Document, -
F
: Pour les profils de Dossier (Folder), -
S
: Pour les profils de Recherche (Search), -
C
: Pour les profils de Famille (Class).
Nom interne | Description | Description longue | D |
F |
S |
C |
---|---|---|---|---|---|---|
view | Voir | Voir les caractéristiques du document, du dossier ou de la recherche. Le fait de ne pas voir un dossier n'implique pas de ne pas voir les documents contenus dans le dossier. | X | X | X | |
edit | Modifier | Modifier les caractéristiques du document, du dossier. | X | X | X | |
delete | Supprimer | Supprimer le document, le dossier, la recherche Suppression logique. | X | X | X | |
unlock | Déverrouiller | Déverrouiller le document. | X | X | X | |
viewacl | Voir les droits | Voir les droits du document. | X | X | X | |
modifyacl | Modifier les droits | Modifier les droits du document. | X | X | X | |
confidential | Voir document confidentiel | Permet d'utiliser normalement un document qui est confidentiel. (Confidentiel est une propriété de document). | X | X | X | |
send | Envoyer | Envoyer par courriel le document. | X | |||
open | Ouvrir | Ouvrir le dossier. Permet de voir le contenu du dossier. | X | |||
modify | Contenu | Modifier le contenu du dossier. Permet d'ajouter ou de supprimer des documents dans le dossier. | X | |||
execute | Executer | Permet d'exécuter la recherche. | X | |||
create | Créer | Autorise la création de document de cette famille. | X | |||
icreate | Créer manuellement | Autorise la création de document de cette famille à partir de l'interface. Si ce droit n'est pas mis et que create est mis, l'utilisateur ne pourra créer le document que de manière indirecte (soit sur une transition, soit sur toute autre action particulière mis en place par l'administrateur). Sans ce droit les menus de création de cette famille sont inaccessibles. Si ce droit est mis il faut que le droit create soit aussi mis. |
X | |||
9.5.2 Profil liés
Un document Profil est fait pour être appliqué à des documents. Un document qui est lié à un profil obtient les mêmes droits que ceux définis sur le profil. Dès que les droits du profils sont changés alors tous les documents liés à ce profils ont également leurs droits mis à jour.
Une famille peut indiquer un profil par défaut pour les documents de cette famille. Une fois cette propriété de famille enregistrée, tous les documents sont liés au même profil lors de leur création. Les documents déjà existants ne sont donc pas affectés.
Un document sans profil n'est pas protégé. Il est alors accessible et modifiable par tous les utilisateurs.
9.5.2.1 Lier un profil par fichier d'importation
Le profil d'un document peut être modifié avec un fichier d'importation en
utilisant la clef PROFID
. La syntaxe est celle décrite pour
l'exportation de profil.
Identifiant du document | Identifiant du profil | |
---|---|---|
PROFIL | MY_DOCUMENT | MY_PROFIL |
9.5.2.2 Affecter les droits d'un profil par importation
Un droit peut être posé sur un rôle, un groupe ou un utilisateur.
3.2.21 Le compte peut être identifié avec son login pour les utilisateurs et la "référence" pour les groupes et rôles. Le type de compte peut être indiqué dans la troisième colonne ou directement dans l'expression de la référence au compte. Le type précisé dans la référence est prioritaire au type indiqué dans la troisième colonne.
Pour indiquer ce compte, le nom logique du document lié à ce compte aussi être utilisé.
Pour compatibilité avec les anciennes versions (3.2.20) l'identifiant système du compte (attribut us_whatid donné sur le document) est utilisable si le type de compte n'est pas indiqué.
Exemple :
Identifiant du profil | Type de compte | Option | Droit | Droit | Droit | |
---|---|---|---|---|---|---|
PROFIL | MY_FIRST_PROFIL | :useAccount |
RESET |
view=attribute(tst_writer), john.doe | edit=attribute(tst_writer) | delete=gadmin |
PROFIL | MY_SECOND_PROFIL | :useDocument |
RESET |
view=DOC_JOHN, SPECIAL_GROUP | edit=DOC_JOHN | delete=GADMIN |
Soit le compte utilisateur X : login : john.doe
(id système : 23
), nom
logique : DOC_JOHN
. Le profil est dynamique et son document lié à un attribut
account nommé my_account
.
Type | Référence | Résultat |
---|---|---|
vide | john.doe | KO |
vide | DOC_JOHN | OK |
vide | my_account | OK |
vide | 23 | OK |
tout type | account(john.doe) | OK |
tout type | document(DOC_JOHN) | OK |
tout type | attribute(my_account) | OK |
:useAccount |
john.doe | OK |
:useAccount |
DOC_JOHN | KO |
:useAccount |
my_account | KO |
:useAccount |
23 | KO |
:useDocument |
john.doe | KO |
:useDocument |
DOC_JOHN | OK |
:useDocument |
my_account | KO |
:useDocument |
23 | KO |
:useAttribute |
john.doe | KO |
:useAttribute |
DOC_JOHN | KO |
:useAttribute |
my_account | OK |
:useAttribute |
23 | KO |
Quatre options permettent de spécifier le comportement d'importation des droits :
-
ADD
: Ajout de droits (option par défaut).
Les anciens droits sont conservés, les droits spécifiés seront ajoutés. -
DELETE
: Suppression de droits.
Les droits spécifiés sont retirés. -
SET
: Synchronisation des droits sans mise à jour systématique des documents. 3.2.17 Les droits à importer sont comparés aux droits en base et la mise à jour des documents n'est effectuée uniquement si les droits à importer sont différents de ceux présents en base. -
RESET
: Réinitialisation des droits.
Les anciens droits sont retirés, les droits spécifiés sont ajoutés et un calcul des droits est lancé sur tous les documents associés à ce profil. Attention : Cette opération peut-être consommatrice en temps et en ressources.
Dans le fichier d'importation chaque droit posé est déclaré après la quatrième colonne. Pour chacun des droits, un ou plusieurs identifiant de compte doit être indiqué. Si plusieurs comptes sont associés à un droit ils doivent être dans la même cellule séparés par une virgule ou alors dans des cellules séparées.
Identifiant du profil | Type de compte | Option | Droit | Droit | Droit | |
---|---|---|---|---|---|---|
PROFIL | MY_PROFIL | :useAccount |
RESET |
view=all, gadmin | edit=gadmin | delete=gadmin |
PROFIL | MY_OTHER_PROFIL | :useAccount |
view=all | edit=myfirstrole | view=myfirstgroup | |
9.5.2.3 Lier un profil par programmation
La méthode Doc::setProfil($profilIdentifier)
permet de lier un profil à un
document.
Note : Un document Profil ne peut pas être lié à un autre profil.
9.5.3 Profil dédié
Un document qui porte son propre profil est déclaré comme profil dédié. Cela implique que la modification du profil du document n'impacte que lui-même.
Les documents "profil" ont tous un profil dédié.
En utilisant un fichier d'importation., l'exemple suivant déclare un profil dédié :
Identifiant du document | Identifiant du profil | |
---|---|---|
PROFIL | MY_DOCUMENT | MY_DOCUMENT |
9.5.4 Profil dynamique
Un document profil est dynamique si l'attribut "dynamique/famille"
(dpdoc_famid
) est valorisé. Cet attribut doit contenir un identifiant de
famille. Dans ce cas, ce profil ne peut être lié qu'à un document de cette
famille ou dérivé de cette famille.
Cette caractéristique permet de rajouter des droits en fonction des attributs
account présents dans le document. Les attributs de type
docid avec l'option isuser=yes
sont aussi utilisables comme
paramètre de droit.
Exemple :
BEGIN | Recette | TST_RECETTE | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
// | idattr | idframe | label | T | A | type | ord | vis | need | ... | option |
ATTR | TST_IDENTIFICATION | Identification | N | N | frame | 100 | W | ||||
ATTR | TST_SUBJECT | AN_IDENTIFICATION | Sujet | Y | N | text | 110 | W | Y | ||
ATTR | TST_WRITER | AN_IDENTIFICATION | Rédacteur | N | N | account | 120 | W | |||
ATTR | TST_OBSERVERS | AN_IDENTIFICATION | Observateurs | N | N | account | 130 | W | match=group |
Dans cette famille, le rédacteur et le groupe d'observateurs peuvent être utilisés dans la définition des droits. Il est possible d'avoir les règles suivantes :
- le rédacteur a le droit de voir et de modifier le document,
- les observateurs ont le droit de voir le document.
Si le rédacteur est modifié alors les droits sur le document sont
automatiquement (et en temps réel) mis à jour en conséquence. De même si un
utilisateur devient membre du groupe référencé par l'attribut tst_observers
alors il aura aussitôt le droit de voir ce document.
L'importation de droits pour un profil dynamique se fait en utilisant l'identifiant de l'attribut à la place de l'identifiant d'un rôle, d'un groupe ou d'un utilisateur. Un profil dynamique peut aussi avoir une partie statique comme les profils standards.
Identifiant du profil | Type de compte | Option | Droit | Droit | Droit | |
---|---|---|---|---|---|---|
PROFIL | MY_DYNAMIC_PROFIL | :useAttribute |
RESET |
view=tst_writer, tst_observers | edit=tst_writer | delete=account(gadmin) |
PROFIL | MY_DYNAMIC_OTHER_PROFIL | :useAccount |
RESET |
view=attribute(tst_writer), john.doe | edit=attribute(tst_writer) | delete=gadmin |
Les noms des attributs peuvent être écrits sans prendre en compte la casse dans le fichier d'importation.
: Si l'identifiant d'un attribut est le même qu'un nom logique de compte c'est le nom logique du compte qui est utilisé dans le cas où le type de compte n'est pas précisé.
: Si la référence d'un compte est en
conflit avec la notation de type (exemple "attribute(test)
"), il est
nécessaire de préciser sa référence avec le type explicite :
"account(attribute(test))
"
9.5.5 Profil privé
Le profil privé est un profil personnel associé à chacun des utilisateurs. C'est un profil de dossier. Il est applicable aussi aux documents.
Le nom logique de ce profil est PERSONAL-PROFIL-<uid>
. uid
est l'identifiant
système (numérique) du compte.
La fonction getMyProfil()
permet de récupérer le profil privé de l'utilisateur
courant. Par défaut, le profil privée donne tous les droits à l'utilisateur
associé et aucun droit aux autres utilisateurs. L'utilisateur peut alors décider
d'ajouter d'autres groupes ou d'autre utilisateurs à son profil pour accéder à
ces documents privés.