Changeset 113694 in spip-zone
- Timestamp:
- Jan 30, 2019, 10:48:29 PM (2 years ago)
- 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 65 65 /************* RESTRICTION DANS LES RUBRIQUES *************/ 66 66 /** 67 * gérer création et modification (en fait publierdans)67 * gérer création et modification (en fait creerobjetrdans) 68 68 * @pipeline autoriser 69 69 */ … … 127 127 } 128 128 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) { 131 131 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ée142 else $lim_rub = true;143 }144 // ici gestion hors CVT145 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; 146 146 147 return148 $lim_rub149 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 60 60 **/ 61 61 function 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'))) { 67 64 return $flux; 68 65 } 69 66 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); 72 69 $tableau_tables_lim = explode(',', lire_config('lim_objets')); 73 70 74 71 if (in_array($nom_table, $tableau_tables_lim)) { 75 $tab_rubriques_choisies = lim_publierdansrubriques($ type);72 $tab_rubriques_choisies = lim_publierdansrubriques($objet); 76 73 if (count($tab_rubriques_choisies) == 1) { 77 74 $id_parent = $flux['data']['id_parent']; … … 86 83 87 84 /** 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. 90 88 * 91 89 * @param array $flux … … 94 92 **/ 95 93 function 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 } 102 98 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); 105 101 $tableau_tables_lim = explode(',', lire_config('lim_objets')); 106 102 107 103 if (in_array($nom_table, $tableau_tables_lim)) { 108 104 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 112 107 $id_objet = $flux['args']['args'][0]; 113 108 if (is_numeric($id_objet)) { // c'est donc une modification, 114 109 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 } 124 131 } 125 132 else { //c'est une création 126 133 // 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'); 130 136 } 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édacteurs134 // voir à ce propos : https://www.spip.net/fr_article3517.html et https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/autoriser.php#L555135 /*136 if (!autoriser($faire, 'rubrique', _request('id_parent'),'', $opt)) {137 $flux['data']['id_parent'] = $msg_error;138 }139 */140 137 } 138 141 139 return $flux; 142 140 } 143 141 144 142 /** 143 * Gestion de la desactivation de l'affichage de certain champs dans le formulaire Editer Auteur 145 144 * 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 147 146 * 148 147 * @param array $flux -
_plugins_/lim/branches/V2/paquet.xml
r113106 r113694 2 2 prefix="lim" 3 3 categorie="maintenance" 4 version="2.0. 0"4 version="2.0.1" 5 5 etat="stable" 6 6 compatibilite="[3.2.0;3.2.*]" … … 18 18 <licence>GNU/GPL</licence> 19 19 20 <<<<<<< .working 20 21 <necessite nom="saisies" compatibilite="[1.42.11;[" /> 21 22 <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 22 27 <necessite nom="php" compatibilite="[5.5.0;[" /> 23 28
Note: See TracChangeset
for help on using the changeset viewer.