Changeset 28620 in spip-zone


Ignore:
Timestamp:
May 13, 2009, 7:39:52 AM (12 years ago)
Author:
cedric@…
Message:

evolutions :

  • seuls les webmestres peuvent activer le plugin en travaux
  • tous les webmestres continuent a voir le site fonctionner
  • l'espace prive est bloque pour les non webmestres, sauf la page admin_plugin
  • une page login_secours permet de se connecter dans l'espace prive independamment d'une eventuelle personalisationd de la page login

Seul defaut fonctionnel : si un webmestre active le plugin, et qu'un admin passe sur la page admin_plugin (y va directement ou la recharge car il y etait deja), cela provoque la desactivation du plugin.
Je n'ai pas trouve de solution propre pour eviter cela, mais c'est un defaut marginal il me semble

Location:
_plugins_/_stable_/en_travaux
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/en_travaux/en_travaux_install.php

    r28611 r28620  
    1010        switch ($action){
    1111                        case 'test':
    12                                         include_spip('meta');
    13                                         if ($GLOBALS['visiteur_session']['id_auteur']
    14                                          AND $GLOBALS['visiteur_session']['statut']=='0minirezo'){
     12                                        include_spip('inc/meta');
     13                                        include_spip('inc/autoriser');
     14                                        if (autoriser('webmestre')){
    1515                                                ecrire_meta('entravaux_id_auteur',$GLOBALS['visiteur_session']['id_auteur']);
    1616                                        }
  • _plugins_/_stable_/en_travaux/en_travaux_options.php

    r28611 r28620  
    77 */
    88
     9#var_dump($GLOBALS['meta']['entravaux_id_auteur']);
     10
     11function autoriser_travaux_dist(){
     12        return autoriser('webmestre');
     13}
     14
    915if (isset($GLOBALS['meta']['entravaux_id_auteur']) AND $GLOBALS['meta']['entravaux_id_auteur']){
    1016        // desactiver le cache
     
    1319        // au cas ou, placer tout nouveau calcul dans le cache
    1420        $GLOBALS['marqueur'].= ":en_travaux";
     21
     22        if (test_espace_prive() AND (_request('exec')!='admin_plugin'
     23        //              OR _request('action')!='activer_plugins'
     24        )){
     25                include_spip('inc/autoriser');
     26                if (!autoriser('travaux')){
     27                        echo recuperer_fond("en_travaux",array());
     28                        die();
     29                }
     30        }
     31
     32}
     33else {
     34                include_spip('inc/autoriser');
     35                if (!autoriser('travaux')){
     36                        // se desactiver tout seul car on ne sert a rien
     37                        // sauf a ralentir le site !
     38                        include_spip('inc/plugin');
     39                        ecrire_plugin_actifs(array('ENTRAVAUX'=>trim(substr(_DIR_PLUGIN_ENTRAVAUX,strlen(_DIR_PLUGINS)),'/')),false,'enleve');
     40                        // avec un message d'erreur smart
     41                        ecrire_meta('plugin_erreur_activation',_T('entravaux:erreur_droit'));
     42                }
    1543}
    1644
     
    2452function entravaux_styliser($flux){
    2553        if (isset($GLOBALS['meta']['entravaux_id_auteur']) AND $GLOBALS['meta']['entravaux_id_auteur']){
    26                 if (!$GLOBALS['visiteur_session']['id_auteur']
    27                         OR $GLOBALS['meta']['entravaux_id_auteur']!=$GLOBALS['visiteur_session']['id_auteur']){
     54                include_spip('inc/autoriser');
     55                if (!autoriser('travaux')
     56                        AND !in_array($flux['args']['fond'],array('login_secours','formulaires/login','formulaires/menu_lang','formulaires/inc-logo_auteur','formulaires/administration'))){
    2857                        $ext = $flux['args']['ext'];
    2958                        $fond = find_in_path('en_travaux.html');
     
    3463}
    3564
    36 
    37 
    38 /*
    39  *
    40 if ($GLOBALS['meta']['en_travaux']=='true')
    41 {
    42         // tentative pour prendre en compte tous les cas possibles
    43         // penser a ajouter le test qui verifie si on est un admin pour faire propre voir ou le caser
    44         $en_travaux_mode_admin = false;
    45         $en_travaux_mode_admin |= strlen(strstr($_SERVER["PHP_SELF"],'/ecrire'))>0;
    46         $en_travaux_mode_admin |= isset($page) && ($page == 'login');
    47         $en_travaux_mode_admin |= isset($_GET['action']);
    48         $en_travaux_mode_admin |= isset($_POST['action']);
    49         $en_travaux_mode_admin |= $_GET['page'] == 'style_prive'; // filtrage de la feuille de style admin mise en squelette
    50         $en_travaux_mode_admin |= $_GET['page'] == 'style_prive_ie'; // idem IE
    51         $en_travaux_mode_admin |= $_GET['page'] == 'jquery.js';   // filtrage de jquery qui sert pour la partie admin
    52        
    53         if ($en_travaux_mode_admin) {
    54                 // ne rien faire si zone ecrire
    55         }
    56         else {
    57                 // dans tous les autres cas on force l'execution de l'affichage
    58                 $_GET['action']="en_travaux";
    59         }
    60 }
    61 
    62 function action_en_travaux(){
    63         include_spip('inc/minipres');
    64         include_spip('inc/charsets');
    65         include_spip('inc/texte');
    66         $corps = charset2unicode(propre($GLOBALS['meta']['en_travaux_message']));
    67         $page = minipres(_T('info_travaux_titre'), $corps);
    68         // a partir de spip 1.9.2 ces fonctions ne font plus l'echo directement
    69         if (version_compare($GLOBALS['spip_version_code'],'1.9200','>=')) echo $page;
    70         return true;
    71 }
    72 
    73  */
    7465?>
  • _plugins_/_stable_/en_travaux/lang/entravaux_fr.php

    r28611 r28620  
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    66'activer_message' => 'Activer la maintenance',
     7
     8'erreur_droit' => 'Vous devez être Webmestre pour utiliser le plugin En Travaux !',
     9
    710'en_travaux' => 'En travaux',
    811'info_travaux_texte' => 'Ce site est actuellement en travaux.<br /> Revenez plus tard...',
    912'info_message' => 'Cette page permet de mettre un message temporaire sur toute les pages du site pendant une phase de maintenance.',
     13
    1014'message_temporaire' => 'Votre message temporaire :',
    1115'parametrage_page_travaux' => 'Param&eacute;trage de la page temporaire',
Note: See TracChangeset for help on using the changeset viewer.