Annonce

  •  » Plugins
  •  » Empêcher la désactivation d'un plugin

#1 2012-06-18 18:14:05

yoyo2000
Invité

Empêcher la désactivation d'un plugin

Bonjour,

Existe-t-il un moyen simple d’empêcher la désactivation d'un plugin par l'administrateur ?

Car dans mon cas le plugin permet de s'authentifier à un serveur CAS, il est donc obligatoire.
Cela éviterait aux futurs administrateurs de faire des bêtises.

Merci d'avance.

#2 2012-06-18 18:46:47

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: Empêcher la désactivation d'un plugin

Bonjour,

C'est déjà le cas. Pour désactiver, activer, installer ou supprimer un plugin, il faut avoir le status "Webmestre". Les utilisateurs sous status "administrateur" ne peuvent pas toucher aux plugins.

Hors ligne

#3 2012-06-19 09:27:45

yoyo2000
Invité

Re: Empêcher la désactivation d'un plugin

Bonjour et merci pour ta réponse.

En fait je n'ai pas été assez précis dans ma demande :

je souhaiterai que celui qui a les droits de toucher aux plugins ne puisse pas désactiver le mien et uniquement le mien, tout en étant libre d'en installer/supprimer à sa guise.

Voila, est-ce possible simplement ?
Y a-t-il des hook spécifiques à intercepter ?
Ou faut-il patcher les sources de Piwigo ?

Merci d'avance pour tout éclaircissement.

#4 2012-06-19 17:55:24

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: Empêcher la désactivation d'un plugin

Le fonctionnement actuel de la galerie ne permet pas de savoir qui a installé un plugin. D'autant que les plugins ne sont pas "personnels" dans le sens où ils touchent souvent au fonctionnement global, parfois, à l'intégrité de la galerie et s'appliquent à tous les utilisateurs.

Et plusieurs webmestres sur une galerie, ce n'est pas une bonne idée selon moi. Le status administrateur est là pour çà. Il ne faudrait que 2 webmestres au maximum - l'un pouvant remplacer l'autre en cas d'absence - et liés par une grande confiance vu l'impact des actions qu'ils peuvent faire.

Combien de webmestres prévois-tu sur ta galerie ? Leur donner un status d'administrateur ne serait-il pas suffisant ?

Hors ligne

#5 2012-06-19 21:38:13

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16813

Re: Empêcher la désactivation d'un plugin

Eric je comprends la demande
C'est pour mettre sur des serveurs d'établissement scolaire, il ne faut pas que le webmaster puisse le désactiver.


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#6 2012-06-19 21:46:55

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: Empêcher la désactivation d'un plugin

Je comprends mieux le contexte mais, là encore, le profil admin est le plus adapté selon moi.

Sinon il manque un échelon intermédiaire entre webmestre et administrateur ou alors un super-webmestre.

Hors ligne

#7 2012-06-19 21:59:35

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

Re: Empêcher la désactivation d'un plugin

Je dois implémenter ce genre de fonctionnalité sur Piwigo.com. Pour être très concret, je veux que le plugin Grum Plugin Classes soit activé et caché et non désactivable (parce que pour des utilisateurs "non techniciens", voir ce plugin n'a aucun intérêt, il ne peuvent faire qu'une chose avec c'est le désactiver et c'est une bêtise).

J'avais prévu de faire ça en modifiant le core. Cela me semble impossible de faire autrement.

Sur Piwigo.com, il y a un autre truc un peu spécifique : certains plugins sont "cachés par défaut" et on peut les rendre visibles (donc activables) au cas par cas. C'est utile pour des plugins très spécifiques ou en phase de tests et sur lesquels des utilisateurs ont demandé à faire les beta-testeurs.


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

Hors ligne

#8 2012-06-19 22:06:03

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: Empêcher la désactivation d'un plugin

Donc, sur Piwigo.com, tu agis comme un super-webmestre des galeries parce que tu en maîtrises le code en plus de l'aspect hébergement. Pour réponse à la demande de yoyo2000, il manque bien un status intermédiaire ou supérieur dans son cas. CQFD ;-)

Hors ligne

#9 2012-06-19 23:04:40

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

Re: Empêcher la désactivation d'un plugin

Eric a écrit:

Donc, sur Piwigo.com, tu agis comme un super-webmestre des galeries parce que tu en maîtrises le code en plus de l'aspect hébergement.

Oui bien sûr. Et d'ailleurs sur Piwigo.com, le gestionnaire de plugin est largement tronqué car on ne peut activer/désactiver qu'une liste de plugins préinstallés, donc je ne suis pas à une nouvelle modification spécifique près.


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

Hors ligne

#10 2012-06-20 00:41:53

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16813

Re: Empêcher la désactivation d'un plugin

Eric a écrit:

Donc, sur Piwigo.com, tu agis comme un super-webmestre des galeries parce que tu en maîtrises le code en plus de l'aspect hébergement. Pour réponse à la demande de yoyo2000, il manque bien un status intermédiaire ou supérieur dans son cas. CQFD ;-)

Non tu te trompe complètement
la dans un établissement scolaire je suis webmaster de mon site
juste il ne faut pas désactiver le plugin d’authentification qui 'attaque une table externe'

à quoi servirais le statut super webmaster pour le développeur de l'interface de préinstallation ?


Je dirais que la solution que je vois en rapide avant d'améliorer le système c'est de
1/ De Cacher de la liste le plugin
2/ ajouter dans la fonction de désinstallation du plugin la réinstallation de celui ci au cas ou le webmaster 'tape' le lien direct de désactivation


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#11 2012-06-20 09:50:40

yoyo2000
Invité

Re: Empêcher la désactivation d'un plugin

Bonjour et merci de votre implication dans mon problème :)

En fait je ne voyais pas ça comme une question de statut d'utilisateur avec des droits différents sur les plugins, mais plutôt comme un "super plugin" que personne ne pourrait désactiver par l'interface.

L'idéal pour moi serait que ce plugin apparaisse dans la liste mais n'ait pas les liens de désactivation. Même la désactivation par "lien direct" ne serait pas gênante.

En attendant, comme dit ddtddt, je peux le cacher de la liste des plugins.
Mais comment faire ça simplement ?

Merci d'avance.

#12 2012-07-14 19:12:06

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

Re: Empêcher la désactivation d'un plugin

yoyo2000 a écrit:

En attendant, comme dit ddtddt, je peux le cacher de la liste des plugins.
Mais comment faire ça simplement ?

Voilà comment je fais sur Piwigo.com :

Code:

Index: plugins_installed.php
===================================================================
--- plugins_installed.php       (revision 1101)
+++ plugins_installed.php       (revision 1102)
@@ -62,6 +62,13 @@
 //--------------------------------------------------perform requested actions
 if (isset($_GET['action']) and isset($_GET['plugin']))
 {
+  // Piwigo.com specific -- starts here
+  if ('delete' == $_GET['action'])
+  {
+    die ("Hacking attempt!");
+  }
+  // Piwigo.com specific -- stops here
+
   if (!is_webmaster())
   {
     array_push($page['errors'], l10n('Webmaster status is required.'));
@@ -86,6 +93,11 @@
 //--------------------------------------------------------Incompatible Plugins
 if (isset($_GET['incompatible_plugins']))
 {
+  // Piwigo.com specific - starts here
+  echo json_encode(array());
+  exit;
+  // Piwigo.com specific - stops here
+
   $incompatible_plugins = array();
   foreach ($plugins->get_incompatible_plugins() as $plugin => $version)
   {
@@ -106,9 +118,16 @@
 $merged_plugins = false;
 $tpl_plugins = array();
 $active_plugins = 0;
-
 foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
 {
+  // Piwigo.com specific -- starts here
+  if (in_array($plugin_id, $conf['hidden_plugins']))
+  {
+    continue;
+  }
+  // Piwigo.com specific -- stops here
+
+
   if (isset($_SESSION['incompatible_plugins'][$plugin_id])
     and $fs_plugin['version'] != $_SESSION['incompatible_plugins'][$plugin_id])
   {

Et dans le fichier de conf local :

Code:

$conf['hidden_plugins'] = array(
  'PayPalShoppingCart',
  'rotateImage',
  'SmartAlbums',
  'custom_download_link',
  'icy_picture_modify',
  'AntiAspi',
  'perso_jojo'
);

(oui, il y a un plugin qui s'appelle "perso_jojo", c'est normal)


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

Hors ligne

  •  » Plugins
  •  » Empêcher la désactivation d'un plugin

Pied de page des forums

Propulsé par FluxBB

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