Publié le 04/07/2018, rédigé par Gaulthier LALLEMAND

DAViCal

Accorder des droits sur des Collections.

Sommaire : Monter son propre service de calendrier

Etape précédente : Créer des entités (Calendar, Addressbook)

Dans cet article, je suis logué à l'interface web de DAViCal en tant que Marie, qui souhaite accorder des droits à d'autres utilisateurs ou groupes, sur ses Collections (calendriers et carnets d'adresses).

Marie dispose de deux calendriers et deux carnets d'adresses :

Les différents droits

Les droits (ou permissions) dans DAViCal correspondent à ceux évoqués dans la RFC3744.

Afin de garder cet article lisible sans paraphraser la RFC ni la page du wiki de DAViCal qui traite des permissions, je vais simplement parler des agrégats de droits suivants :

Privileges agregates

Bien sûr, ces permissions peuvent être affinées selon les goûts, la granularité étant particulièrement fine dans DAViCal.

A noter : les droits SCHEDULE DELIVER et SCHEDULE SEND s'appliquent sur des Principals seulement. Les autres droits s'appliquent sur des Principals ou des Collections.

Accorder des droits à tous les utilisateurs

Pour cela, je vais dans le menu User Functions puis View My Details. Dans la section Principal: Marie, je vais à la ligne Privileges granted to All Users :

Privileges granted to All Users

Puis je choisis les droits que tous les utilisateurs auront sur mes Collections (Cf point précédent).

Collections et droits par défaut

Pour appliquer ces droits par défaut sur mes Collections, je vais maintenant dans la section Principal Collections. Je sélectionne un objet de type Collection en cliquant sur la ligne correspondante.

Parmi les options de l'objet, je coche la case de l'option Default Privileges :

Collection default privileges

Puis je clique sur APPLY CHANGES.

La nouvelle politique pour cet objet devient alors :

Il s'agit donc d'une mesure destinée à assurer la confidentialité des Collections.

Astuce : Pour vérifier que ma Collection dispose bien des droits par défaut, je reviens dans la page de l'utilisateur Marie, à la section Principal Collections. Dans la ligne de l'objet que je viens de modifier, la colonne Privileges doit indiquer la valeur [from principal].

Exemple

Marie souhaite que :

D'abord, je définis les droits par défaut.

Menu User Functions --> View My Details.

Section Principal: Marie, ligne Privileges granted to All Users.

Je clique sur FREE/BUSY puis SCHEDULE DELIVER et j'obtiens :

Default privileges FREE/BUSY SCHEDULE DELIVER

Ensuite, j'applique ces droits sur mes calendriers.

Dans la section Principal Collections, je vérifie que mes calendriers ont comme valeur [from principal] dans la colonne Privileges.

Si ce n'est pas le cas, je clique sur la ligne du calendrier, et dans la fenêtre qui apparaît, je coche la case Default Privileges, puis je clique sur APPLY CHANGES.

Enfin, je reviens dans la section Principal Collection de l'utilisateur marie, et pour chaque carnet d'adresses :

On voit rapidement l'intérêt de définir correctement les variables $c->default_privileges et $c->default_collections dans le fichier de configuration de DAViCal, surtout quand le nombre d'utilisateurs est important.

Cas général

Cet article et l'exemple qui l'illustre sont un cas particulier d'une situation qui peut se généraliser. En effet, si tous les utilisateurs se conforment au même schéma de droits que Marie, cela signifie que :

Autrement dit, l'utilisation des droits par défaut implique l'existence d'un groupe Tout_le_monde "caché", dans lequel tous les utilisateurs sont réunis. Le fait d'accorder des droits par défaut à tous les utilisateurs revient en réalité à accorder ces droits au groupe Tout_le_monde, et par transitivité à tout ses utilisateurs.

Il existe pourtant des cas où il n'est pas souhaitable que tous les utilisateurs soient en contact. Par exemple :

Dans ces situations, il est alors nécessaire de passer par la création de groupes, et de délaisser complètement les droits par défaut, leur praticité se transformant en faille de sécurité potentielle.

Etape suivante : Utiliser des Groupes