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.

×
nouveauté