Community Plugin Piwigo

De EjnTricks

Piwigo est assez sommaire pour les permissions par défaut. Lors de son étude, il était souhaité de permettre à des utilisateurs de pouvoir verser des photos. Or ceci ne semble pas faisable, sans des privilèges élevés. Cet article présente l'utilisation du plugin Community qui apporte un ensemble de fonctionnalités permettant de gérer plus finement les permissions.

Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Download-icon.png Téléchargement et installation

Une structure de répertoires a été mise en place pour faciliter la gestion des montées de versions. La procédure suivante présente l'installation de la version 2.8.a dans cette structure.

Dans un premier temps, la structure de Ldap_Login est mise en place.

#sudo mkdir /var/opt/piwigo/common/apps-available/community
#sudo chown www-data:www-data /var/opt/piwigo/common/apps-available/community
#sudo chmod 700 /var/opt/piwigo/common/apps-available/community

Puis la version est téléchargée dans le répertoire temporaire de la machine.

#sudo wget -O /tmp/community_2.8.a.zip http://fr.piwigo.org/ext/download.php?rid=5662

Une fois téléchargée, il faut décompresser l'archive dans la structure personnalisée des applications disponibles. L'objectif est de l'installer en mentionnant le numéro de version.

#sudo unzip /tmp/community_2.8.a.zip -d /var/opt/piwigo/common/apps-available/community
#sudo rm /tmp/community_2.8.a.zip
#sudo mv /var/opt/piwigo/common/apps-available/community/community /var/opt/piwigo/common/apps-available/community/2.8.a
#sudo chown -R www-data:www-data /var/opt/piwigo/common/apps-available/community/2.8.a
#sudo find /var/opt/piwigo/common/apps-available/community/2.8.a -type d -exec chmod 0700 {} \;
#sudo find /var/opt/piwigo/common/apps-available/community/2.8.a -type f -exec chmod 0600 {} \;

A noter la modification des permissions sur les fichiers qui n'accordent que des droits pour www-data. La commande chmod -R go-rwx n'est pas utilisée, car il est souhaité d'enlever la permission d'exécution sur les fichiers, mais pas sur les répertoires.

La mise en place de la structure de répertoire doit permettre de placer un lien dans le sous répertoire apps-enabled vers la version souhaitée, avec les commandes suivantes.

#sudo ln -s /var/opt/piwigo/common/apps-available/community/2.8.a /var/opt/piwigo/common/apps-enabled/community
#sudo chown -h www-data:www-data /var/opt/piwigo/common/apps-enabled/community

L'étape suivante serait de placer un lien vers chown -h www-data:www-data <code>/var/opt/piwigo/common/apps-enabled/community dans le répertoire plugins de l'instance.

Cependant, ce mode de fonctionne ne fonctionne pas avec la version 2.8.X de Piwigo. Le répertoire est donc copié, l'installation aurait pu être effectuée depuis l'interface d'administration.

#sudo cp -R -p /var/opt/piwigo/common/apps-available/community/2.8.a /var/opt/piwigo/piwigo/plugins/community

Le plugin est alors disponible dans l'interface d'administration.

Run-icon.png Activation

Il faut donc aller dans la page des applications avec un compte d'administration.


Il suffit de cliquer sur le bouton Activer, dans la boîte du plugin Community, pour le rendre disponible.

Warning-icon.png Attention, l'installation du plugin nécessite des modifications dans la base de données. Lors de l'installation, les permissions sur le compte d'accès à la abse ont été fortement réduits. Sans ajout temporairement de droits, l'installation sera réalisée mais incimplète. Des messages d'erreurs seront visibles dans les traces du serveur.

[Tue Oct 18 00:40:42.173010 2016] [:error] [pid 14359] [client 82.230.154.123:57105] PHP Warning:  [mysql error 1142]
ALTER command denied to user 'piwigo'@'localhost' for table 'piwigo_categories'\nALTER TABLE `piwigo_categories` ADD `community_user` mediumint unsigned DEFAULT NULL;
in /var/opt/piwigo/2.8.2/include/dblayer/functions_mysqli.inc.php on line 832, referer: ...

Avant installation, les permissions sont donc augmentées.

mysql> GRANT ALL ON piwigo.* TO 'piwigo'@'localhost';
Query OK, 0 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

La page est rafraîchie et le plugin est indiqué comme activé.


Une fois installé, les droits sont de nouveau réduits.

mysql> REVOKE ALL ON piwigo.* FROM 'piwigo'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, LOCK TABLES ON piwigo.* TO 'piwigo'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

A noter que lors de la première activation, un album Community est automatiquement créé, et est par défaut visible de tout le monde.


Process-Icon.png Utilisation

Ce plugin permet de gérer des communautés au niveau de la galerie photo, mais également de spécialiser les permissions. La configuration du plugin s'effectue au niveau de l'interface d'administration, dans la section Plugins. IL faut cliquer sur le lien Community pour accéder aux pages de paramétrages.


Icon ACL.png Permissions

Le principal objectif est de pouvoir donner des permissions à des utilisateurs, un peu plus finement que les standards. Lors de l'installation du plugin, une règle est automatiquement créé authorisant tous les utilisateurs déclarés à verser des photos dans l'album Community, automatiquement créé lors de l'installation. La confiance accordée est faible, c'est à dire que les photos seront soumises à validation des administrateurs.

Il est possible de modifier cette configuration, ou bien de la supprimer. Dans un premier temps, celle-ci sera conservée car l'album a été placé dans une zone privée.


Il est également possible de créer de nouvelles règles de gestion, en cliquant sur le lien Ajouter une permission. Un formulaire est alors affiché.


Il est alors possible de définir plusieurs critères.

Paramètre Description
Qui Utilisateur à qui s'applique la permission.
  • n'importe quel visiteur : toute personne qui accède à la galerie;
  • n'importe quel visiteur enregistré : toute personne déclarée;
  • un utilisateur en particulier : Une liste de choix est affichée afin de sélectionner un utilisateur. Attention, les utilisateurs doivent être du type générique ou normal. Les administrateurs et webmasters ne seront donc pas affichés.
  • un groupe : Une liste de choix est affichée afin de sélectionner un groupe déclaré dans l'application.
Périmètre de la permission.
  • La galerie tout entière : s'applique à tous les albums;
  • Un album spécifique : La liste contient tous les albums déclarés, permettant de spécialiser la permission sur un en particulier.
Appliquer aux sous-albums Case à cocher afin d'appliquer la permission aux sous albums d'un album, si un a été sélectionné dans la liste précédente.
possibilité de créer des sous-albums Case à cocher afin de permettre la création de sous album.
Quel degré de confiance ? Coix entre deux options.
  • confiance faible : les photos versées seront soumises à validation;
  • confiance élevée : les photos versées sont automatiquement visibles.
Combien de photos ? Permet de limiter le nombre de photos pour les groupes / utilisateurs spécifiés dans le paramètre Qui.
Combien d'espace disque ? Permet de limiter la taille totale des photos pour les groupes / utilisateurs spécifiés dans le paramètre Qui.

Une permission est validé en cliquant sur le bouton Ajouter. En cas de succès, celle-ci vient s'ajouter a tableau des permissions.


Process-Icon.png Validation photos

Dans le cas où des permissions accordent une confiance faible, les images sont soumises à validation des administrateurs. Celles-ci sont affichées dans l'onglet Photos en attente.

Configuration-icon.png Configuration

Le dernier onglet Configuration offre la possibilité de créer automatiquement un album "personnel" lors de la première connexion d'un utilisateur, en cochant la case Albums utilisateur.


Le bouton Enregistrer les paramètres permet de valider la sélection.


Viewer icon.png Voir aussi

Documentation officielle: http://fr.piwigo.org/ext/extension_view.php?eid=303