# \[Caldav\] Configuration multicomptes

**URL:** <https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620>\
**Category:** Configuration\
**Created:** [Octobre 20, 2021, 8:18 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620 "2021-10-20T20:18:22Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![pap](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@pap](https://community.gladysassistant.com/u/pap)\
**Post date:** [Octobre 20, 2021, 8:18 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/1 "2021-10-20T20:18:22Z")

</div>

Bonjour,  
Je suis nouveau dans le coin, j’ai fait ma 1e install de Gladys cette semaine donc je tâtonne encore pour certaines choses. Mon install est donc à jour, j’ai utilisé l’image fournie pour RPI.  
Pour commencer, j’ai un souci sur un sujet tout bête : le calendrier.  
Je l’ai paramétré sur mon compte dans Gladys, aucun souci (catégorie “Autre” puisque mon serveur caldav est auto-hébergé).  
J’ai créé un second compte Utilisateur, impossible de lui associer le même serveur. Je le passe Administrateur, je peux continuer la configuration.  
Si je connecte ce 2nd compte à caldav avec un 2nd user, cela fonctionne. Par contre impossible de lui paramétrer le même compte que moi (embêtant puisqu’on a un compte commun qui sert justement à partager nos calendriers).  
Merci d’avance si vous avez un tuyau, et bravo pour tout le boulot déjà fait !

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 21, 2021, 7:26 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/2 "2021-10-21T19:26:50Z")

</div>

Salut @pap bienvenue,

En effet c’est pas un cas que j’avais prévu, il doit y avoir des conflit en base de données. J’essaie de reproduire et de te fixer ça au plus tôt.

Pour information quel service utilises tu pour héberger ton calendrier ?

---

<div class="post-metadata">

**Author:** ![pap](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@pap](https://community.gladysassistant.com/u/pap)\
**Post date:** [Octobre 21, 2021, 7:28 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/3 "2021-10-21T19:28:03Z")

</div>

Merci pour ta réponse.  
J’utilise radicale.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Octobre 22, 2021, 3:14 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/4 "2021-10-22T03:14:55Z")

</div>

Bienvenue sur le forum @pap et merci de nous faire un retour, ça nous fait progresser! 🙏

@bertrandda A voir si la solution c’est de synchroniser 2 fois le calendrier (peut-être), ou de faire des calendriers cross-users dans Gladys ?

> [@bertrandda](#):
>
> En effet c’est pas un cas que j’avais prévu, il doit y avoir des conflit en base de données. J’essaie de reproduire et de te fixer ça au plus tôt.

En parlant de ça, j’ai fais une proposition récemment pour éviter les conflits justement:

> [@Proposition: Ajouter un nombre aléatoire à 4 chiffres à tous les "selector" pour éviter les collisions](https://community.gladysassistant.com/t/proposition-ajouter-un-nombre-aleatoire-a-4-chiffres-a-tous-les-selector-pour-eviter-les-collisions/6617):
>
> Salut à tous, Petite proposition, je sais qu’il arrive qu’il y ait des collisions avec les selectors quand on créé un device dans une intégration qui a le même nom qu’un device dans une autre intégration. Je propose d’ajouter un nombre à 4 chiffres à la fin de chaque selector futur (pas ceux déjà créé), pour éviter les collisions MAIS garder un selector lisible et “human readable” slight_smile Exemple: Nom: Capteur température chambre Selector: capteur-temperature-chambre-1234 Le selecto…

---

<div class="post-metadata">

**Author:** ![pap](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@pap](https://community.gladysassistant.com/u/pap)\
**Post date:** [Octobre 22, 2021, 7:58 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/5 "2021-10-22T07:58:20Z")

</div>

Pouvoir partager calendriers et tableaux de bord entre utilisateurs, ça serait top, effectivement…

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 23, 2021, 9:16 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/6 "2021-10-23T09:16:55Z")

</div>

En reproduisant c’est bien certaines contraintes d’unicité sur des champs qui posent problèmes.

Oui partager des calendriers en interne dans Gladys est une bonne solution.

Par la suite j’aimerai quand même fixer ce problème d’unicité car imaginons une famille qui utilise une même instance Nextcloud (ou icloud, google… je n’ai pas l’impression que ce soit possible avec Radicale) si ils configurent les partages directement dans l’agenda Nextcloud les external id seront sûrement les même lors des synchronisations.

Quoi qu’il arrive ça demande un développement dans les 2 cas. Le partage interne à Gladys ne devrait pas poser de soucis, par contre le fix d’unicité va prendre la tête. Pour les selectors je suis d’accord avec toi Pierre-Gilles. Mais là il y a aussi l’external id et on retombe sur les même problèmes évoqués ici [Gladys V4 - Affichage de capteurs dans l'interface - #11 by pierre-gilles](https://community.gladysassistant.com/t/gladys-v4-affichage-de-capteurs-dans-linterface/4939/11) quand on souhaite supprimer les contraintes. Par exemple j’aimerai supprimer la contrainte d’unicité sur t\_calendar.external\_id qui en elle même n’est pas nécessaire entre plusieurs utilisateurs car quand on récupère un calendrier on précise son user. À la limite si on en veut vraiment une on peut la mettre sur l’ensemble external\_id + user\_id.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Octobre 25, 2021, 2:02 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/7 "2021-10-25T02:02:57Z")

</div>

> [@bertrandda](#):
>
> Mais là il y a aussi l’external id et on retombe sur les même problèmes évoqués ici [Gladys V4 - Affichage de capteurs dans l’interface - #11 by pierre-gilles](https://community.gladysassistant.com/t/gladys-v4-affichage-de-capteurs-dans-linterface/4939/11) quand on souhaite supprimer les contraintes. Par exemple j’aimerai supprimer la contrainte d’unicité sur t\_calendar.external\_id qui en elle même n’est pas nécessaire entre plusieurs utilisateurs car quand on récupère un calendrier on précise son user. À la limite si on en veut vraiment une on peut la mettre sur l’ensemble external\_id + user\_id.

Je suis d’accord que c’est un problème !

Pour retirer la contrainte sur external\_id, à voir parce que justement si on commence à faire des calendriers multi-utilisateurs, ça peut ne plus être le cas ! (Un calendrier pourra être la propriété de tout le monde dans la famille)

Je serais plutôt pour rajouter quelque chose dans l’external\_id qui le rende encore plus unique (quitte à rajouter le user selector de celui qui ajoute le calendrier dans l’external id)

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 25, 2021, 8:54 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/8 "2021-10-25T20:54:48Z")

</div>

> [@pierre-gilles](#):
>
> Pour retirer la contrainte sur external\_id, à voir parce que justement si on commence à faire des calendriers multi-utilisateurs, ça peut ne plus être le cas ! (Un calendrier pourra être la propriété de tout le monde dans la famille)

Oui ça réduira surement les cas d’erreurs, mais dans le cas particulier de partage côté hébergeur de calendrier je pense que ça peut arriver. Bref on verra après, dans un premier temps rendons possible le partage, j’ai commencé une PR [Add internal calendar sharing by bertrandda · Pull Request #1337 · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/pull/1337)

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 28, 2021, 7:25 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/9 "2021-10-28T19:25:40Z")

</div>

Ça y est, la PR est prête, si vous voulez tester

---

<div class="post-metadata">

**Author:** ![pap](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@pap](https://community.gladysassistant.com/u/pap)\
**Post date:** [Octobre 30, 2021, 1:12 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/10 "2021-10-30T13:12:11Z")

</div>

salut,  
comment faut-il s’y prendre pour tester ?  
désolé, je ne m’y connais pas trop en github et ce genre de choses 😅

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 30, 2021, 4:46 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/11 "2021-10-30T16:46:34Z")

</div>

Pour tester fonctionnellement une PR c’est expliqué ici par Pierre-Gilles [Review des PR - J'ai besoin de vous!](https://community.gladysassistant.com/t/review-des-pr-jai-besoin-de-vous/6030), par contre tu ne pourras pas faire ça directement sur ton RPI.  
Il y a une discussion qui a commencé sur la PR donc des changements vont surement arriver.

---

<div class="post-metadata">

**Author:** ![pap](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@pap](https://community.gladysassistant.com/u/pap)\
**Post date:** [Octobre 30, 2021, 6:06 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/12 "2021-10-30T18:06:01Z")

</div>

ok merci pour ta réponse.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Novembre 1, 2021, 2:22 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/13 "2021-11-01T02:22:03Z")

</div>

J’ai mis [ma réponse](https://github.com/GladysAssistant/Gladys/pull/1337#issuecomment-955870204) sur la PR !

Pour information, on débat sur le type de partage:

1. Soit on partage un calendrier à toute l’instance (en mode calendrier partagé: oui/non)
2. Soit on propose de partager un calendrier seulement à certaines personnes de l’instance

Les deux options sont possibles, mais l’option 2 est quand même plus complexe à pas mal de niveaux (comment ça se passe pour les scènes?)

Voir mes 2 message sur Github

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Novembre 12, 2021, 3:34 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/14 "2021-11-12T03:34:36Z")

</div>

Je reposte ici ce qu’on s’est dit sur Github.

Pour archive, on part sur du “partagé/privée” et pas du partage par utilisateur qui est peu utile/complexe à mettre en place pour pas grand chose 🙂

 ![Screenshot 2021-11-12 at 11.33.28](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/b/be032c65982a36fd344448eb8cb9c70e0692f233.png)

Cf discussion Github: [Add internal calendar sharing by bertrandda · Pull Request #1337 · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/pull/1337#issuecomment-961454974)

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Février 18, 2022, 1:30 UTC](https://community.gladysassistant.com/t/caldav-configuration-multicomptes/6620/15 "2022-02-18T13:30:07Z")

</div>

Pour information, je viens de merge la gestion du partage de calendrier dans une instance Gladys 🚀

Vous pouvez remercier @bertrandda pour tout le travail effectué 🙂

Dans l’UI ça ressemble à ça :

 ![Screenshot 2022-02-18 at 13.29.36](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/9/9eb2b5197deb034ce4e13168f43107ecfc53f115.jpeg)

La PR est dispo ici :

> <https://github.com/GladysAssistant/Gladys/pull/1337>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affects code, did your write the tests?
> \- \[x\] Are tests passing? (\`npm test\` on both front/server)
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[x\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)
> \- \[x\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to \[the community\](https://community.gladysassistant.com/) for testing before merging.
> \- \[x\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
> \- \[x\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/v4-website) and the \[website\](https://gladysassistant.com).
> \- \[x\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> Added attribute in model \`Calendars\` to list Gladys users who can see the calendar.
> In front calendar page display my calendars & calendars shared with me
> 
> !\[image\](https://user-images.githubusercontent.com/18148265/141336915-4e78060e-95ae-4e9e-be9e-ceb99e88807b.png)
