#1 2006-07-12 22:14:48

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12672

[evolution] amélioration de la gestion des permissions

Ce topic a pour objectif de discuter sur la gestion des permissions telle qu'elle existe dans la version 1.6 de PhpWebGallery, de lister les points forts et les points faibles, de trouver comment améliorer l'existant sans perdre les acquis.

1. L'existant

Les permissions n'ont pas évolué depuis les premières versions 1.0.x. Rappelons comment fonctionnent les permissions en 1.6. On appelle permission le fait de ne rendre acessible une photo qu'aux personnes explicitement autorisées.

Les permissions sont gérées catégorie par catégorie, pas directement pour chaque photo. Utilisons un exemple concret pour simplifier l'explication. Soient les photos photo_marion_erwann.jpg et photo_pierrick_erwann.jpg. Soient les 4 catégories "event/WE campagne", "people/Marion", "people/Pierrick", "people/Erwann". Les deux photos sont associées aux catégories de la façon suivante :

- photo_marion_erwann.jpg dans "event/WE campagne", "people/Marion", "people/Erwann"
- photo_pierrick_erwann.jpg dans "event/WE campagne", "people/Pierrick", "people/Erwann"

Depuis la branche 1.6, j'ai rajouté des tags sur mes photos "portrait", "Marion", "Pierrick", "Erwann", "noir et blanc". Les 2 photos sont associées aux tags de la façon suivante :

- photo_marion_erwann.jpg : "Marion", "Erwann", "portrait"
- photo_pierrick_erwann.jpg : "Pierrick", "Erwann", "portrait", "noir et blanc"

Si le webmestre souhaite cacher une photo contenu dans une catégorie, il faut que la catégorie soit privée. Une fois que la catégorie est privée, un administrateur pourra gérer les permissions. Par exemple, on décide que le groupe "famille" pourra accéder aux catégories privées "event/WE campagne", "people/Marion", "people/Erwann". La catégorie "people/Pierrick" est publique.

La priorité est donnée à l'autorisation (par rapport à l'interdiction). Cela veut dire qu'une photo est accessible si l'utilisateur accède à au moins 1 catégorie liée à la photo. Ainsi, pour un utilisateur qui n'est pas dans le groupe "famille", la photo photo_pierrick_erwann.jpg sera accessible car elle est associée à la catégorie "people/Pierrick" qui est accessible à tous.

2. Ce qui ne va pas avec l'existant

Les catégories sont destinées à être une méthode de classification. A priori, ce qu'un administrateur souhaite rendre privé, c'est une photo en particulier, ou une série de photo. J'ai tendance à penser que c'est en fonction du contenu des photos que l'on souhaite la cacher ou la montrer publiquement. Or, dans mon cas personnel, ce sont les tags qui me servent à décrire le contenu alors que les catégories donnent une structure au site.

On est donc en droit de se demander ce qui m'est passé par la tête pour faire reposer le système des permissions sur les catégories et pas directement sur les photos. La raison est technique et pas fonctionnelle. En effet, gérer les permissions photo par photo serait à mon avis très consommateur. L'information prendrait beaucoup plus de place en mémoire par exemple et certaines requêtes deviendrait très longues (il faut fournir la liste des identifiants des images que l'ont ne veut pas trouver dans les résultats).

Autre point qui me semble limite : le fait que l'autorisation soit plus forte que l'interdiction n'est pas forcément un mauvais choix conceptuel, mais il est dommage de ne pas pouvoir choisir avec le contraire. Dans l'exemple des 2 photos citées plus haut, il est évident que pour moi, les photos dans lesquels mon fils (Erwann) ou ma femme (Marion) apparaissent doivent être privées. Donc les deux photos devraient être privées. Or, comme je (Pierrick) fais parti de la seconde photo, et que la catégorie "people/Pierrick" est autorisée à tous, alors la seconde photo est visible de tous. Si j'avais pu choisir de basculer sur une interdiction plus forte que l'autorisation, alors les 2 photos auraient été inaccessibles pour un utilisateur non membre du groupe "famille".

3. Quoi et comment améliorer ?

Je suis personnellement non satisfait du système actuel. Je pense que si on pouvait basculer sur un mode "interdiction plus fort qu'autorisation", mes attentes seraient comblées.

Gérer les permissions par photo me semble difficile à envisager à cause du problème de consommation disque. Peut-être ai-je du mal à imaginer un système convenable en terme de consommation disque et de performances. Si vous avez des suggestions, n'hésitez surtout pas, exprimez vous.

J'ai exposé mes doléances concernant le système de permissions. C'est maintenant à vous de donner votre avis. L'objectif est de trouver une voie d'amélioration pour la branche 1.7. Donc la discussion doit arriver à un consensus d'ici la fin de l'été. Au-delà de ce délai, les autres améliorations suggérées ne pourront être prises en compte que pour la branche 1.8.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#2 2006-07-12 22:42:04

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [evolution] amélioration de la gestion des permissions

Ma première analyse du problème est de dire:

1 - Le système actuel me convient excepté...
2 - Que la permission au niveau des images serait une erreur.
3 - Selon moi, je n'ai pas la science infuse, un tag interdit (à un utilisateur/un groupe) est plus fort qu'une catégorie autorisée.

Je veux dire que Monsieur Erwann a le droit de voir toute image de "event/WE campagne", "people/Marion", "people/Erwann", "people/Pierrick"
sauf si celles qui aurait un tag égal à "couché" ou = "foin" ou = "majeur".

Problème si on rentre dans ce système, on risque de nous demander des formules d'autorisations ou/et/non/()
Il ne faut pas tomber dans le panneau.
Il faut simplement un NOT IN (17, 24, 36).
Si les gens veulent affiner leur système de filtrage, ils ajoutent des tags.

8-)

PS: "On est donc en droit de se demander ce qui m'est passé par la tête pour faire reposer le système des permissions sur les catégories et pas directement sur les photos." : Non, tu avais bien établi les règles de bases, pas de discussion.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2006-07-12 22:49:56

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [evolution] amélioration de la gestion des permissions

Inverser le processus de logique "Interdire" au lieu d'autoriser.

Je crée mes catégories par défaut en :
$conf['newcat_default_visible'] = false;
$conf['newcat_default_status'] = 'private';

Elles sont donc interdites par défaut.
Puis, je décide public ou reste private.
Si private, je choisi les groupes.
Quand c'est fait, et prêt, je déverrouille.

Si tu me demande d'interdire...
Je vais commencer par te demander de savoir interdire "guest", il faudra donc que "guest" deviennent un vrai user.
Mais pourquoi "guest" n'est-il pas un vrai user intégré dans le système des permissions (à intégrer dans le système des droits).

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#4 2006-07-12 23:27:33

rvelices
Équipe Piwigo
2005-12-29
1417

Re: [evolution] amélioration de la gestion des permissions

Je me suis heurte plusieurs fois au systeme actuel (pas de permission par photo et autorisation plus forte que l'interdiction). L'interdiction plus forte que l'autorisation m'aurait convenu dans certains cas (comme celui que tu presentes), mais pas dans tous les cas (par example: photos des vacances dans une categorie qui contient des photos privees ainsi que des photos nature par exemple - ces photos nature se trouvent aussi dans la categorie virtuelle nature).

Je pense que l'interdiction + forte que l'autorisation n'est pas suffisante comme evolution. Peut-etre une combinaison entre les 2 au choix de l'utilisateur (je n'ai pas reflechi encore comment ca peut marcher d'une maniere assez simple et comprehensible). A premiere vue je croix que ca va etre assez difficile d'implementer l'interdiction + forte (je pense aux requetes sql).

Les permissions par photo ca serait bien s'il y avait un moyen simple de le faire (utilisation memoire + vitesse) - mais comme tu le soulignes il'y en a pas. J'ai fait quelque modifs sur mon site pour avoir des "pseudo" permissions par photos - je n'ai pas parle jusqua maintenant car c'est un peu lourd. Voila en deux mots le principe:
- chaque photo a un niveau de securite
- chaque user a un niveau de securite
- le user X a le droit de voir la photo Y si niveau(X)>=niveau(Y) et si le systeme actuel des permissions lui donne le droit
Ce principe (pas du tout couteux en terme de php/sql) peut etre etendu de 2 manieres:
- en considerant le niveau comme un "bit mask" (mais on est limite a 64 possibilites - le type set en MySql) - donc si le 3eme bit du niveau photo est a 1, l'acces est autorise au user si 3eme bit du niveau user est a 1.
- en rajoutant les niveaux pour les groupes.

Je suis tres curieux des propositions qu'on aura sur ce topic.

Hors ligne

#5 2006-07-13 01:03:54

vimages
Membre
2004-03-27
2429

Re: [evolution] amélioration de la gestion des permissions

Bonsoir,

c'est un sujet très intéressant,

en préalable :

- je mets en ligne des reportages dans lesquelles se trouvent des photos pour plusieurs visiteurs, certaines photos sont visibles de plusieurs d'entre eux, d'autres d'un seul d'entre eux... d'autres de tous.... 
- j'utilise les dossiers (donc les catégories physiques) pour les classer, et donner les droits d'accés. Eventuellement, pour certaines sélections temporaires, j'utilise les cat. virtuelles.
- le nombre de sujet et le nombre de visiteurs sont très grand, donc le nombre de possibilités d'association de "droits d'accés/catégories/photos" est énorme.

ce qui fait que sur ce sujet, je me permets de dire que :

- les tags ne doivent absolument pas servir à autre chose que trouver les images auquels ils sont associés (dans la mesure de leur définition actuelle, basée sur les mots clés). Il deviendrait vite ingérable de s'y retrouver entre les mots clés descriptifs et ceux gérant le droit d'accés à tel ou tel visiteur.
-Les keywords ne doivent pas, par ailleurs, être polués par des mots servant à autre chose chose que la descrition de l'image (en plus de la légende), n'oubliez pas que ces keywords suivent l'images et sont utilisés aussi par les visiteurs/utilisateurs des dites images.

- gérer les droits d'accés par des niveaux de sécurité ne me parait pas compatible avec des galeries photos telles que les notres. (du moins avec un systeme de niveau simple, à une échelle). Et puis, il ne conviendrait pas d'introduire un systeme qui contiendrait des limites intrinsèques trop petites. Mais je reste à l'écoute, favorablement, n'ayant pas forcément bien saisi le fonctionnement de la chose....

- Le système de permission actuel est performant, simple à mettre en oeuvre, il est sans doute possible de l'améliorer, mais c'est un point sensible, à traiter comme tel.


à suivre  :o)
merci,
éric.

Hors ligne

#6 2006-07-13 07:02:03

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [evolution] amélioration de la gestion des permissions

vimages a écrit:

- les tags ne doivent absolument pas servir à autre chose que trouver les images auquels ils sont associés (dans la mesure de leur définition actuelle, basée sur les mots clés). Il deviendrait vite ingérable de s'y retrouver entre les mots clés descriptifs et ceux gérant le droit d'accés à tel ou tel visiteur.

Ok...
On duplique le système de tags et on en fait le système de Lockers. Ce n'est qu'une idée.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#7 2006-07-13 10:20:45

vimages
Membre
2004-03-27
2429

Re: [evolution] amélioration de la gestion des permissions

VDigital a écrit:

On duplique le système de tags et on en fait le système de Lockers. Ce n'est qu'une idée.

- oui, dans ce cas.... mais les tags seraient basés sur quels champs IPTC ?

- je mets un warning sur l'utilisation... il est actuellement rapide de donner une autorisation d'accés à une ou plusieurs catégories pour un visiteur; avec cette proposition, qu'en sera-t'il, il faudra s"assurer à chaque fois de créer un nouveau tag dédié à ce nouveau compte utilisateur ? sur toutes les photos ? dans les IPTC  donc impossible à distance ! Et puis en gérant les permissions à la photo, on est sur d'en oublier..

Maintenant, si ces problèmes sont contournés, why not ?

eric.

Dernière modification par vimages (2006-07-13 10:22:35)

Hors ligne

#8 2006-07-13 10:52:06

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [evolution] amélioration de la gestion des permissions

vimages a écrit:

VDigital a écrit:

On duplique le système de tags et on en fait le système de Lockers. Ce n'est qu'une idée.

- oui, dans ce cas.... mais les tags seraient basés sur quels champs IPTC ?

- je mets un warning sur l'utilisation... il est actuellement rapide de donner une autorisation d'accés à une ou plusieurs catégories pour un visiteur; avec cette proposition, qu'en sera-t'il, il faudra s"assurer à chaque fois de créer un nouveau tag dédié à ce nouveau compte utilisateur ? sur toutes les photos ? dans les IPTC  donc impossible à distance ! Et puis en gérant les permissions à la photo, on est sur d'en oublier..

Maintenant, si ces problèmes sont contournés, why not ?

eric.

On s'est mal compris.
Ce que je propose ce sont des Locks (verrous logiques).
Ils ne sont au départ pas alimentés par des champs IPTC, il ne saurait être question que l'image sache à l'avance dans quelles conditions elle sera publiée et par défaut, elle n'est pas interdite.
L'avantage des Locks gérés comme les tags est d'avoir le nuage des interdictions pour tel ou tel(s) membre(s) ou groupe(s) uniquement dans la partie admin.
On n'ajoute un Lock que si on en éprouve le besoin.
Le nuage permet à l'admin de voir les vignettes qui sont lockées ou plus encore l'inverse celles qui ne le sont pas.
D'où l'intérêt de mettre en oeuvre un système comparable aux tags.
Est-ce un peu plus clair?
(Je ne suis pas convaincu que ce soit la meilleure solution mais elle me semble plus proche d'une logique humaine simple).
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#9 2006-07-13 11:07:31

vimages
Membre
2004-03-27
2429

Re: [evolution] amélioration de la gestion des permissions

très bien je saisi mieux..   merci de tes explications!

demeure l'aspect pratique pour les grosses galeries....   (rapidité, affichage, oublis...)



à +

éric.

Hors ligne

#10 2006-07-13 15:23:16

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: [evolution] amélioration de la gestion des permissions

Si je résume la gestions des verrous logiques:
on pose des droits sur les catégories, où l'autorisation est la plus forte.
on pose ensuite des droits par verrous logiques, où l'interdiciton est la plus forte, et plus forte que l'autorisation des catégories.
J'ai bon?

Hors ligne

#11 2006-07-13 15:43:56

mathiasm
Former Piwigo Team
2006-02-06
2692

Re: [evolution] amélioration de la gestion des permissions

Et je relance le débat sur les droits gérés uniquement avec des groupes et non avec des groupes et des utilisateurs.

C'est intéressant sur les petites comme sur les grosses galeries, et il n'y a qu'une granularité à contrôler (évite les oublis, etc). Je rappelle que c'est le mode de gestion des droits sur Linux et celui préconisé sur Windows.

Le système idéal serait de pouvoir mettre des groupes dans d'autres. Je m'explique :
Je crée un groupe "famille" et un groupe "amis". Je crée une catégorie contenant un événement commun, un bapteme par exemple. Je souhaite donc que les deux groupes puissent voir cette catégorie. Soit je permets aux deux groupes l'accès à cette catégorie, soit je crée un groupe "bapteme", que j'autorise sur cette catégorie et dans lequel j'inclus mes deux groupes. Cela permet d'avoir "bapteme" et "bapteme_upload", entre autres.
C'est plus intéressant a priori pour les grosses galeries. J'aimerais savoir si vimages par exemple, ou quelqu'un ayant beaucoup d'utilisateurs avec des niveaus différents, est intéressé par ma proposition.

Voili-voilou

PS: z0rglub, j'ai rajouté un r à pemissions dans le titre ;-)

Hors ligne

#12 2006-07-13 16:16:15

vimages
Membre
2004-03-27
2429

Re: [evolution] amélioration de la gestion des permissions

moi , oui ! 

je pars de suite en déplacement jusqu'à lundi soir... et pas sur de pouvoir intervenir d'ici là..   à bientôt,
merci.

eric

Hors ligne

#13 2006-07-14 09:46:50

marsue
Membre
2003-11-22
73

Re: [evolution] amélioration de la gestion des permissions

historie de jetter un peu d'huile sur le feu ....
moi j'aime bien la gestion des droits sauf au niveau de l'héritage.

En fait J'ai des catégories virtuelles qui me servent à organiser et les photos et aussi les droits:

Famille / Event   --> uniquement accessible au groupe famille. si j'ajoute une sous-catégorie à famille, ce serait tip-top que la nouvelle categorie ait les même droits que famille/ Event

j'ai aussi une categorie Amis --> accessible aux groupe famille,amis
une catégorie "potes de Loulou"  --> accessible aux amisDeLoulou, la familleDeLoulou et ma famille

des categories "rencontres photos", etc .....

et aussi des catégories publiques pour le portfolio.

Je trouve que c'est assez facile de ranger les photos de cette manière et les catégories sont assez parlante pour donner une idée de qui a accès à quoi :-)

le top du top ce serait l'heritage des droits :-)))

Marsue

Hors ligne

#14 2006-07-14 09:51:01

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [evolution] amélioration de la gestion des permissions

Voui, je partage cet avis.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#15 2006-07-14 17:12:33

chrisaga
Former Piwigo Team
France (92)
2005-08-10
566

Re: [evolution] amélioration de la gestion des permissions

J'interviens (enfin) dans ce sujet qui me gratouille depuis un moment car je trouve que pein de bonnes idées ont été évoquées.
Je ne l'ai pas fait jusqu'à présent parce que je suis une grosse feignasse qui ne bouge que lors que la gêne de la gratouille est
supérieure à celle du fait de se mettre à bouger.  <;o)
Ma contribution :

1) je pense qu'un système où l'interdiction est plus forte que l'autorisation serait souhaitable en théorie (c'est toujours ce mode qui est
préconisé en termes de sécurité) mais attention à l'usage.
Ça fonctionne bien si l'on considère le schéma suivant :
* Le groupe copains est autorisé à la catégorie [u]soirée[/b]
* l'utilisateur toto appartient au groupe copains
* j'interdis à toto l'accès à la catégorie soirée parceque j'ai remarqué qu'il reluquait ma copine
Le résultat attendu est que toto ne voit pas les photos de la soirée.

Mais dans le schéma suivant :
J'ai des photos d'un week-end dans un château, la fête est privée, mais le château est superbe et j'ai envie de montrer les photos
* une catégorie (virtuelle ou non) privée avec toutes les photos
* une catégorie virtuelle avec les photos publiques
Le résultat attendu est que "guest" puisse voir les photos publiques (dans la catégorie, ou par recherche), ce qui ne sera pas le cas si
l'on privilégie l'interdiction (les photos appartiennent également à la catégorie privée).

2) je suis pour l'héritage des droits des sous-caégories

3) je suis pour la possibilité de gérer les droits de "guest"

4) les droits Linux hérités d'unix reposent bien sur des groupes et des utilisateurs. Il faut bien évidemment modifier les droit
d'un utilisateur par rapport à son groupe qu'en dernier ressort pour "paufiner", et je pense que c'est bien de pouvoir le faire.

5) les groupes membres d'autres groupes sont intéressants en théorie, mais j'ai peur que ça entraîne un "moulinage" de PWG
disproportionné (je suis pour le développement durable et l'économie des ressources des hébergements mutualisés)
Peut-être que la possibilité de récupérer les droits d'un groupe à la création d'un nouveau groupe suffirait ?

6) Ne surtout pas demander aux tags de faire ce pourquoi ils ne sont pas faits : de la sécurité

7) Une solution pourait tourner autour d'une idée qui a déjà été évoquée, je crois. Celle de catégories réellement virtuelles
composée des éléments de plusieurs autres catégories.
Pour reprendre le deuxième exemple du point 1), on aurait :
* la catégorie fiesta privée
* la catégorie château publique
* pour bien faire, les deux catégories masquées (tiens, un attribut qui existait dans le temps et qui a été abandonné)
* une catégorie week-end au château composée dynamiquement de l'ensemble des photos des deux catégories précédentes.
Résultat attendu : le public peut voir mes magnifiques photos du non moins magnifique château, tandis que les copains ( à qui j'ai
donné accès à la catégorie fiesta voient toutes les photos du week-end, paysage et personnes dans une même galerie.
Dans la vraie vie, ce mode de fonctionnement me permettrait de montrer mes photos de voyages et de rando à mes amis dans une
chronologie cohérente, sans avoir à leur montrer une catégorie à part pour toutes les photos sur lesquelles des personnes
apparaissent.


Utilisateur depuis la version 1.3, Impliqué depuis la 1.4, Responsable du template des 1.5 et 1.6  ... et en (in)disponibilité sur la 1.7

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact