Le multi-utilisateurs et les permissions dans Gladys 4

Salut à tous!

Je suis entrain de travailler sur le multi-utilisateur dans Gladys 4.

Comme d’habitude dans Gladys 4, je veux faire simple et faire bien.

Dans certains systèmes, les permissions c’est un enfer, autant pour les utilisateurs que pour les développeurs: je ne veux pas ça. On fait simple, et efficace.

On a la particularité d’avoir un système qui est hébergé chez l’utilisateur, donc au sein d’un même système on peut prendre en considération que ces utilisateurs se font confiance. Je parle d’un point de vue “sécurité”.

D’un point de vue vie privée, j’aimerais en revanche qu’on conçoive un système qui respecte les libertés de chacun, même au sein d’une famille. Bien entendu, l’administrateur de la famille aura toujours accès à la base de donnée en se connectant en SSH (donc si il veut les infos, il les a), mais je veux qu’à minima dans l’interface il y ait une claire séparation entre les données des uns et des autres, quand cela fait sens bien entendu.

J’ai créé un tableau avec les différents écrans qu’on a dans Gladys, et les rôles que j’envisage dans Gladys 4.

Vous trouverez le tableau ici:

Remarques

Dashboard

Un dashboard est un modèle de grille de “box”. C’est juste l’information que “la box météo est en haut à gauche, puis la box pièce salon est au milieu, puis la box etc…”

  • Dans Gladys 4, il peut y avoir plusieurs dashboards. Ce n’est pas encore le cas dans l’interface car ce n’est pas codé, mais c’est le cas côté backend/data model.
  • Un dashboard n’est pas lié à un utilisateur dans Gladys 4.
  • Un dashboard affiche les informations relatives à l’utilisateur connecté, donc un même dashboard s’affiche différemment sur chaque compte. Exemple: Si on créé une box “Ma position”, alors la position sera la position de l’utilisateur connecté.
  • En revanche, comme il peut y avoir plusieurs dashboard, chacun dans la famille peut se créer un dashboard personnalisé si il estime que le dashboard que l’admin a créé n’est pas utile pour lui.
  • Tous les utilisateurs peuvent voir tous les dashboard créé (en gros, ils peuvent utiliser tous les “modèles” de dashboard créé. ça ne veut pas dire qu’ils voient les informations des autres)

Calendrier

Dans Gladys 4, chaque utilisateur pourra connecter ses calendriers (via différents services, ce n’est pas la question ici)

Actuellement, si un utilisateur connecte un calendrier, il n’est visible que par lui. Je pense que la gestion des permissions doit être fait au niveau au dessus (côté provider). Donc si par exemple vous voulez donner accès à un calendrier partagé Gmail, il faudra le faire côté Gmail. ça fait sens pour vous?

Périphériques

Je ne l’ai pas mis dans le tableau, mais c’est un vrai sujet:

Qui a accès à quoi dans la maison?

Est-ce qu’il faut une notion en plus des rôles? Des groupes?

Exemple: Le groupe “enfant” n’a pas le droit de contrôler la pompe de la piscine.

Je pense que c’est une notion séparée, mais le débat se fait ici aussi :slight_smile: Dites moi ce que vous en pensez.

Dites moi si vous avez des remarques/questions

Tout ça est un vrai débat, ceci est un premier jet qui va évoluer !

Ça me paraît bien cette approche et merci d’ouvrir le débat à tous.

Pour ma part, voici une remarque sur la map :

Quelqu’un sur le forum avait fait remarqué que celui qui regarde le dashboard sait déjà où il est. Cette remarque m’a fait réfléchir à l’utilité de la map.
Si on positionne sur soi, ça peut permettre de vérifier que gladys nous détecte bien dans une certaine zone et que par conséquent la maison doit être dans un certain état.
À contrario on peut centrer sur la maison et afficher tous les membres de la famille. On peut veiller sur quelqu’un, surveiller ses enfants etc.
Je pense que chaqu’un peut en faire une utilisation différentes en fonction de son besoin.
Du coup, je pense que mettre des permissions d’afficher ou non des personnes sur la carte peut avoir du sens.

Oui c’est ce qui semble le plus logique.

2 Likes

Ok, du coup là on sort du système de permissions “admin vs user”, et on est plus sur de la décision au niveau de chaque utilisateur. Je suis d’accord avec le besoin !

Effectivement c’est important car sur le dashboard de madame il y aura que l’essentiel (pour mon cas), musique, météo, lampe.

Est ce que l’on peux mettre en place une gestion des permissions qui sont gérés par l’admin uniquement pour les différents utilisateurs de la maison.
Je m’explique:
une page avec un tableau regroupant les services, les périphériques, … qui sont dans Gladys. Cette page est liée à l’utilisateur.
L’admin peux alors valider ou non tel ou tel service.

  • colonne 1: services, périphériques, …
  • colonne 2: Tout/aucun (cases à cocher pour donner accès)
  • colonne 3: Droit (descriptif des droits accordés)