Changeset 113694 in spip-zone


Ignore:
Timestamp:
Jan 30, 2019, 10:48:29 PM (3 months ago)
Author:
peetdu@…
Message:

Report dernières modifs du trunk

Location:
_plugins_/lim/branches/V2
Files:
1 deleted
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/lim/branches/V2/lim_autorisations.php

    r112295 r113694  
    6565/************* RESTRICTION DANS LES RUBRIQUES *************/
    6666/**
    67  * gérer création et modification (en fait publierdans)
     67 * gérer création et modification (en fait creerobjetrdans)
    6868 * @pipeline autoriser
    6969 */
     
    127127}
    128128
    129 if (!function_exists('autoriser_rubrique_publierdans')) {
    130         function autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt) {
     129// if (!function_exists('autoriser_rubrique_publierdans')) {
     130//      function autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt) {
    131131
    132                 // Dans LIM l'appel à cette autorisation signifie que forcément $opt est renseigné
    133                 if (is_array($opt) AND array_key_exists('lim_except_rub',$opt) AND array_key_exists('type',$opt)) {
    134                         $type = $opt['type'];
    135                         $quelles_rubriques = lire_config("lim_rubriques/$type");
    136                         if (!is_null($quelles_rubriques)) {
    137                                 $rubrique_except = array(0 => $opt['lim_except_rub']);
    138                                 $quelles_rubriques = array_diff($quelles_rubriques, $opt);
    139                                 $lim_rub = !in_array($id,$quelles_rubriques);
    140                         }
    141                         // cas possible : un objet peut avoir été sélectionné dans ?exec=configurer_lim_rubriques, mais aucune restriction activée
    142                         else $lim_rub = true;
    143                 }
    144                 // ici gestion hors CVT
    145                 else $lim_rub = true;
     132//              // Dans LIM l'appel à cette autorisation signifie que forcément $opt est renseigné
     133//              if (is_array($opt) AND array_key_exists('lim_except_rub',$opt) AND array_key_exists('type',$opt)) {
     134//                      $type = $opt['type'];
     135//                      $quelles_rubriques = lire_config("lim_rubriques/$type");
     136//                      if (!is_null($quelles_rubriques)) {
     137//                              $rubrique_except = array(0 => $opt['lim_except_rub']);
     138//                              $quelles_rubriques = array_diff($quelles_rubriques, $opt);
     139//                              $lim_rub = !in_array($id,$quelles_rubriques);
     140//                      }
     141//                      // cas possible : un objet peut avoir été sélectionné dans ?exec=configurer_lim_rubriques, mais aucune restriction activée
     142//                      else $lim_rub = true;
     143//              }
     144//              // ici gestion hors CVT
     145//              else $lim_rub = true;
    146146
    147                 return
    148                         $lim_rub
    149                         AND autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt);
    150         }
    151 }
     147//              return
     148//                      $lim_rub
     149//                      AND autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt);
     150//      }
     151// }
  • _plugins_/lim/branches/V2/lim_pipelines.php

    r112295 r113694  
    6060**/
    6161function lim_formulaire_charger($flux) {
    62         $form   = $flux['args']['form'];
    63         $valid  = strpos($form, 'editer');
    64         // si ce n'est pas un formulaire d'édition
    65         // ou si la restriction par rubrique n'a pas été activée, on sort
    66         if ($valid === false OR is_null(lire_config('lim_objets'))) {
     62        // si ce n'est pas un formulaire d'édition d'un objet ou si la restriction par rubrique n'a pas été activée, on sort.
     63        if (strncmp($flux['args']['form'], 'editer_', 7) !== 0 OR is_null(lire_config('lim_objets'))) {
    6764                return $flux;
    6865        }
    6966
    70         $type                           = substr($form, 7); // 'editer_objet' devient 'objet'
    71         $nom_table                      = table_objet_sql($type);
     67        $objet = substr($flux['args']['form'], 7); // 'editer_objet' devient 'objet'
     68        $nom_table      = table_objet_sql($objet);
    7269        $tableau_tables_lim     = explode(',', lire_config('lim_objets'));
    7370       
    7471        if (in_array($nom_table, $tableau_tables_lim)) {
    75                 $tab_rubriques_choisies = lim_publierdansrubriques($type);
     72                $tab_rubriques_choisies = lim_publierdansrubriques($objet);
    7673                if (count($tab_rubriques_choisies) == 1) {
    7774                        $id_parent = $flux['data']['id_parent'];
     
    8683
    8784/**
    88  * Gestion des contenus par rubrique : vérifier si on a le droit de publier l'objet dans cette rubrique
    89  * en fonction des rubriques décochées dans la page exec=configurer_lim_rubriques
     85 * Gestion des contenus par rubrique :
     86 * Impossible de CREER ou DEPLACER un objet dans une rubrique interdite par la configuration choisie dans exec=configurer_lim_rubriques
     87 * exception : possibilité de modifier un objet si celui-ci est maintenant dans une rubrique où il est interdit de créer ce type d'objet.
    9088 *
    9189 * @param array $flux
     
    9492**/
    9593function lim_formulaire_verifier($flux) {
    96         $form   = $flux['args']['form'];
    97         $valid  = strpos($form, 'editer');
    98 
    99         // si ce n'est pas un formulaire d'édition
    100         //ou si la restriction par rubrique n'a pas été activée, on sort
    101         if ($valid === false OR is_null(lire_config('lim_objets'))) return $flux;
     94        // si ce n'est pas un formulaire d'édition d'un objet ou si la restriction par rubrique n'a pas été activée, on sort.
     95        if (strncmp($flux['args']['form'], 'editer_', 7) !== 0 OR is_null(lire_config('lim_objets'))) {
     96                return $flux;
     97        }
    10298       
    103         $type   = substr($form, 7); // 'editer_objet' devient 'objet'
    104         $nom_table                      = table_objet_sql($type);
     99        $objet = substr($flux['args']['form'], 7); // 'editer_objet' devient 'objet'
     100        $nom_table      = table_objet_sql($objet);
    105101        $tableau_tables_lim     = explode(',', lire_config('lim_objets'));
    106102
    107103        if (in_array($nom_table, $tableau_tables_lim)) {
    108104                include_spip('inc/autoriser');
    109 
    110                 // Si modification : le rédacteur doit pouvoir modifier le contenu d'un objet existant,
    111                 // même ci celui-ci est maintenant dans une rubrique où il est interdit de publier cet objet.
     105                $faire = 'creer'.$objet.'dans';
     106               
    112107                $id_objet = $flux['args']['args'][0];
    113108                if (is_numeric($id_objet)) {    // c'est donc une modification,
    114109
    115                         // récupérer l'id_rubrique actuel (en BdD) de l'objet
    116                         $faire = 'publierdans';
    117                         $where = id_table_objet($type).'='.$id_objet;
    118                         if ($type == 'rubrique')
    119                                 $id_rub_en_cours = sql_getfetsel('id_parent', $nom_table, $where);
    120                         else
    121                                 $id_rub_en_cours = sql_getfetsel('id_rubrique', $nom_table, $where);
    122                         $opt = array('lim_except_rub' => $id_rub_en_cours, 'type' => $type);
    123                         $msg_error = _T('lim:info_deplacer_dans_rubrique_non_autorise');
     110                        // récupérer l'id_rubrique actuel de l'objet
     111                        // note : dans l'idéal, il faudrait utiliser le plugin déclarer parent ici
     112                        $where = id_table_objet($objet).'='.$id_objet;
     113                        switch ($objet) {
     114                                case 'rubrique':
     115                                        $id_rub_en_cours = sql_getfetsel('id_parent', $nom_table, $where);
     116                                        break;
     117                                case 'document':
     118                                        // rien à faire ici
     119                                        break;
     120                                default:
     121                                        $id_rub_en_cours = sql_getfetsel('id_rubrique', $nom_table, $where);
     122                                        break;
     123                        }
     124
     125                        // si c'est un déplacement vers une autre rubrique, on vérifie
     126                        if (isset($id_rub_en_cours) and $id_rub_en_cours !=_request('id_parent')) {
     127                                if (!autoriser($faire, 'rubrique', _request('id_parent'))) {
     128                                        $flux['data']['id_parent'] = _T('lim:info_deplacer_dans_rubrique_non_autorise');
     129                                }
     130                        }
    124131                }
    125132                else { //c'est une création
    126133                        // en fait, cela ne sert à rien...snif...à cause de /echafaudage qui intercepte les créations avant le CVT (?!).
    127                         $faire = 'creer'.$type.'dans';
    128                         $opt = null;
    129                         $msg_error = _T('lim:info_creer_dans_rubrique_non_autorise');
     134                        // if (!autoriser($faire, 'rubrique', _request('id_parent'))) {
     135                        //      $flux['data']['id_parent'] = _T('lim:info_creer_dans_rubrique_non_autorise');
    130136                }
    131                 // mise en berne car il faudrait pourvoir gérer les cas suivants :
    132                 // 1- cas de la création : voir #122 (juste au dessus)
    133                 // 2- en l'état avec SPIP, impossible de surcharger deux fois une autorisation. Du coup devient compliqué de gérer aussi le cas des rédacteurs
    134                 // voir à ce propos : https://www.spip.net/fr_article3517.html et https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/autoriser.php#L555
    135                 /*
    136                 if (!autoriser($faire, 'rubrique', _request('id_parent'),'', $opt)) {
    137                         $flux['data']['id_parent'] = $msg_error;
    138                 }
    139                 */
    140137        }
     138
    141139        return $flux;
    142140}
    143141
    144142/**
     143 * Gestion de la desactivation de l'affichage de certain champs dans le formulaire Editer Auteur
    145144 * Inserer le JS qui gére l'affichage ou non des champs dans certains formulaires historiques
    146  * juste le formulaire Auteur (pour l'instant ?)
     145 * juste le formulaire Auteur
    147146 *
    148147 * @param array $flux
  • _plugins_/lim/branches/V2/paquet.xml

    r113106 r113694  
    22        prefix="lim"
    33        categorie="maintenance"
    4         version="2.0.0"
     4        version="2.0.1"
    55        etat="stable"
    66        compatibilite="[3.2.0;3.2.*]"
     
    1818        <licence>GNU/GPL</licence>
    1919
     20<<<<<<< .working
    2021        <necessite nom="saisies" compatibilite="[1.42.11;[" />
    2122        <necessite nom="medias" compatibilite="[2.20.15;[" />
     23=======
     24        <necessite nom="saisies"  compatibilite="[1.42.11;[" />
     25        <necessite nom="medias"  compatibilite="[2.20.15;[" />
     26>>>>>>> .merge-right.r113693
    2227        <necessite nom="php" compatibilite="[5.5.0;[" />
    2328
Note: See TracChangeset for help on using the changeset viewer.