Changeset 22644 in spip-zone


Ignore:
Timestamp:
Sep 18, 2008, 2:02:17 PM (13 years ago)
Author:
cedric@…
Message:

nettoyage

Location:
_plugins_/_stable_/acces_restreint
Files:
4 edited
3 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/acces_restreint/acces_restreint_options.php

    r22633 r22644  
    3232// Autorisations
    3333//
     34/**
     35 * Autorisation a affecter les zones a un auteur
     36 * si un id_zone passe dans opts, cela concerne plus particulierement le droit d'affecter cette zone
     37 *
     38 * @param unknown_type $faire
     39 * @param unknown_type $qui
     40 * @param unknown_type $id
     41 * @param unknown_type $qui
     42 * @param unknown_type $opts
     43 * @return unknown
     44 */
     45function autoriser_auteur_affecterzones_dist($faire,$quoi,$id,$qui,$opts){
     46        if (!autoriser('modifier','auteur',$id)) return false;
     47        if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
     48                return true;
     49        # les non admin ne peuvent pas s'administrer eux meme pour eviter les erreurs
     50        if ($id == $qui['id_auteur']) return false;
     51        # les non admin ne peuvent affecter que les zones dont ils font partie
     52        if ($opts['id_zone']
     53          AND !AccesRestreint_test_appartenance_zone_auteur($opts['id_zone'], $qui['id_auteur']))
     54          return false;
     55 return true;
     56}
    3457
    3558if(!function_exists('autoriser_rubrique_voir')) {
  • _plugins_/_stable_/acces_restreint/fond/liste_zone_auteurs.html

    r22642 r22644  
    77        <BOUCLE_zones(ZONES){id_auteur ?}{id_rubrique ?}{pagination 15}>
    88        <li class='item'>[(#ENV{editable})
     9        [(#AUTORISER{affecterzones,auteur,#ID_AUTEUR}|oui)
    910        <span class='actions'><a class='ajax' href='#URL_ACTION_AUTEUR{retirerzone,#ID_ZONE|concat{'-auteur-',#ID_AUTEUR},#SELF}'><img src='#EVAL{_DIR_IMG_PACK}croix-rouge.gif' alt='X' /> <:accesrestreint:info_retirer_zone:></a></span>
     11        ]
    1012        ]
    1113        <a href="[(#URL_ECRIRE{zones_edit,id_zone=#ID_ZONE}|parametre_url{retour,#SELF})]"><img
  • _plugins_/_stable_/acces_restreint/formulaires/affectater_zones.html

    r22642 r22644  
    44        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    55        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    6         [(#ENV{editable})
     6        [(#ENV{editable}) [
    77        <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
    88                [(#REM) declarer les hidden qui declencheront le service du formulaire
     
    1414                <label for="zone"><:accesrestreint:titre_ajouter_zone:></label>[
    1515                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{zone})</span>
    16                 ][(#INCLURE{fond=formulaires/inc-select_zones}{name=zone}{id=zone}{id_auteur})]
     16                ](#INCLURE{fond=formulaires/inc-select_zones}{name=zone}{id=zone}{id_auteur})
    1717                <a href=''><:accesrestreint:info_ajouter_zones:></a>
    1818            </li>
     
    2121          <!--extra-->
    2222          <p class='boutons'><input type='submit' class='submit' value='<:bouton_ajouter:>' /></p>
    23         </div></form>
     23        </div></form>]
    2424        ]
    2525</div>
  • _plugins_/_stable_/acces_restreint/formulaires/affectater_zones.php

    r22642 r22644  
    77 */
    88
    9 function formulaires_affectation_zones_charger_dist($id_auteur){
     9function formulaires_affecter_zones_charger_dist($id_auteur){
    1010        $valeurs = array('zone'=>'','id_auteur'=>$id_auteur,'id'=>$id_auteur);
     11        include_spip('inc/autoriser');
    1112        if (!autoriser('affecterzones','auteur',$id_auteur)){
    1213                $valeurs['editable'] = false;
     
    1516}
    1617
    17 function formulaires_affectation_zones_traiter_dist($id_auteur){
     18function formulaires_affecter_zones_traiter_dist($id_auteur){
    1819        /* ajout d'une zone */
    19         if ($id_zone = sql_getfetsel('id_zone','spip_zones','id_zone='.intval(_request('zone')))) {
    20                 sql_insertq('spip_zones_auteurs',array('id_zone'=>$id_zone,'id_auteur'=>intval($id_auteur)));
    21         }
     20        include_spip('action/affecter_zone');
     21        AccesRestreint_affecter_auteur_zones($id_auteur,array(intval(_request('zone'))));
    2222        return array('editable'=>true,'message'=>'');
    2323}
  • _plugins_/_stable_/acces_restreint/formulaires/inc-select_zones.html

    r22642 r22644  
     1<B_zones>
    12<select[ name='(#ENV{name})'][ id='(#ENV{id})'] size='1'>
    23<option value='x'><:accesrestreint:selectionner_une_zone:></option>
    3 <BOUCLE_zones(ZONES){!id_auteur=#ID_AUTEUR}>
    4 <option value='#ID_ZONE'>#TITRE</option>
    5 </BOUCLE_zones>
     4<BOUCLE_zones(ZONES){!id_auteur=#ID_AUTEUR}>[
     5(#AUTORISER{affecterzones,auteur,#ID_AUTEUR,'',#ARRAY{id_zone,#ID_ZONE}}|oui)<option value='#ID_ZONE'>#TITRE</option>
     6]</BOUCLE_zones>
    67</select>
     8</B_zones>
  • _plugins_/_stable_/acces_restreint/inc/acces_restreint_gestion.php

    r22632 r22644  
    200200        }
    201201
    202         /*
    203          * Affiche la liste des zones d'acces associee a l'objet
    204          * specifie, plus le formulaire d'ajout de mot-cle
    205          */
    206        
    207         function AccesRestreint_formulaire_zones($table, $id_objet, $nouv_zone, $supp_zone, $flag_editable, $retour) {
    208           global $connect_statut, $connect_toutes_rubriques, $options, $connect_id_auteur, $id_auteur;
    209                 global $spip_lang_rtl, $spip_lang_right;
    210                 $out = "";
    211        
    212                 $retour = urlencode($retour);
    213                 $select_groupe = $GLOBALS['select_groupe'];
    214        
    215                 if ($table == 'rubriques') {
    216                         $id_table = 'id_rubrique';
    217                         $objet = 'rubrique';
    218                         $url_base = "naviguer";
    219                 }
    220                 else if ($table == 'auteurs') {
    221                         $id_table = 'id_auteur';
    222                         $objet = 'auteur';
    223                         $url_base = ($GLOBALS['spip_version_code']>1.92)?"auteur_infos":"auteurs_edit";
    224                 }
    225        
    226                 list($nombre_zones) = spip_fetch_array(spip_query("SELECT COUNT(*) FROM spip_zones AS zones, spip_zones_$table AS lien WHERE lien.$id_table=$id_objet AND zones.id_zone=lien.id_zone"),SPIP_NUM);
    227        
    228                 $out .= "<a name='zones'></a>";
    229                 if ($flag_editable){
    230                         if ($nouv_zone||$supp_zone)
    231                                 $bouton = bouton_block_visible("leszones");
    232                         else
    233                                 $bouton =  bouton_block_invisible("leszones");
    234                 }
    235                 $out .= debut_cadre_enfonce("../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", true, "", $bouton._T('accesrestreint:titre_zones_acces'));
    236        
    237                 //////////////////////////////////////////////////////
    238                 // Recherche de zones d'acces
    239                 //
    240        
    241                 if ($nouv_zone)
    242                         $nouveaux_zones = array($nouv_zone);
    243        
    244                 //////////////////////////////////////////////////////
    245                 // Appliquer les modifications sur les zones d'acces
    246                 //
    247                 if ($nouveaux_zones && $flag_editable) {
    248                         while ((list(,$nouv_zone) = each($nouveaux_zones)) AND $nouv_zone!='x') {
    249                                 $query = "SELECT * FROM spip_zones_$table WHERE id_zone=$nouv_zone AND $id_table=$id_objet";
    250                                 $result = spip_query($query);
    251                                 if (!spip_num_rows($result)) {
    252                                         $query = "INSERT INTO spip_zones_$table (id_zone,$id_table) VALUES ($nouv_zone, $id_objet)";
    253                                         $result = spip_query($query);
    254                                 }
    255                         }
    256                         $reindexer = true;
    257                 }
    258 
    259                 if ($supp_zone && $flag_editable) {
    260                         if ($supp_zone == -1)
    261                                 $zones_supp = "";
    262                         else
    263                                 $zones_supp = " AND id_zone=$supp_zone";
    264                                 $query = "DELETE FROM spip_zones_$table WHERE $id_table=$id_objet $zones_supp";
    265 
    266                         $result = spip_query($query);
    267                         $reindexer = true;
    268                 }
    269 
    270                 $add_zone = _request('add_zone');
    271                
    272                 if (($add_zone == -1) && $flag_editable) {
    273                         $query = "DELETE FROM spip_zones_$table WHERE $id_table=$id_objet";
    274                         $result = spip_query($query);
    275                                
    276                         $allzones = "SELECT * FROM spip_zones";
    277                         $result_allzones = spip_query($allzones);
    278                         while($row = spip_fetch_array($result_allzones)) {
    279                                         $id_zone = $row['id_zone'];
    280                                         $query = "INSERT INTO spip_zones_$table (id_zone,$id_table) VALUES ($id_zone, $id_objet)";
    281                                         $result = spip_query($query);
    282                                 }
    283                         $reindexer = true;
    284                 }
    285                
    286                 //
    287                 // Afficher les zones d'acces
    288                 //
    289        
    290                 unset($les_zones);
    291        
    292                 $query = "SELECT zones.* FROM spip_zones AS zones, spip_zones_$table AS lien WHERE lien.$id_table=$id_objet AND zones.id_zone=lien.id_zone ORDER BY zones.titre";
    293                 $result = spip_query($query);
    294        
    295                 if (spip_num_rows($result) > 0) {
    296 
    297                         $tableau= '';
    298                         while ($row = spip_fetch_array($result)) {             
    299                                 // Un admin restreint ne peut agir que sur les zones auxquelles il appartient (excepte sur les admins) et excepte lui-meme pour eviter de se retirer d'une zone par erreur
    300                                 if($flag_editable && ($connect_toutes_rubriques || (AccesRestreint_test_appartenance_zone_auteur($id_zone, $connect_id_auteur) && autoriser('modifier', 'auteur', $id_auteur ) && $connect_id_auteur!=$id_auteur))){
    301                                         $editable = true;
    302                                 }
    303                                 $les_zones[] = $row['id_zone'];
    304                         }
    305                         include_spip('public/assembler');
    306                         $contexte = array($id_table => $id_objet,'lang'=>$lang, 'editable'=>$editable);
    307                         $out .= recuperer_fond('fond/liste_zone_auteurs', $contexte);
    308                 }
    309        
    310                 if ($les_zones) {
    311                         $nombre_zones_associes = count($les_zones);
    312                         $les_zones = implode(',',$les_zones);
    313                 } else {
    314                         $les_zones = "0";
    315                 }
    316                 //
    317                 // Afficher le formulaire d'ajout de zones d'acces
    318                 //
    319                 if ($flag_editable) {
    320                         if ($nouveaux_zones | $supp_zone)
    321                                 $out .= debut_block_visible("leszones");
    322                         /*else if ($nb_groupes > 0) {
    323                                 $out .= debut_block_visible("leszones");
    324                                 // vilain hack pour redresser un triangle
    325                                 $couche_a_redresser = $GLOBALS['numero_block']['leszones'];
    326                                 if ($GLOBALS['browser_layer']) $out .= http_script("
    327                                         triangle = findObj('triangle' + $couche_a_redresser);
    328                                         if (triangle) triangle.src = '" . _DIR_IMG_PACK . "deplierbas$spip_lang_rtl.gif';");
    329                         }*/
    330                         else
    331                                 $out .= debut_block_invisible("leszones");
    332                                
    333                                 $out .= "<div align='right' class='arial1'>";
    334                                 $out .= "<a href='". generer_url_ecrire($url_base, "$id_table=$id_objet&add_zone=-1#zones"). "'>"._T('accesrestreint:info_ajouter_zones')."</a>";
    335 
    336                         if ($nombre_zones_associes > 3) {
    337                                 $out .= " - <a href='". generer_url_ecrire($url_base, "$id_table=$id_objet&supp_zone=-1#zones"). "'>"._T('accesrestreint:info_retirer_zones'). http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'") ."</a>";
    338                         }
    339                        
    340                                 $out .= "</div><br />\n";
    341        
    342                         // il faudrait rajouter STYLE='margin:1px;' qq part
    343        
    344                         $form_zone = generer_url_post_ecrire($url_base,"$id_table=$id_objet", '', "#zones");
    345        
    346                         if ($table == 'rubriques') $form_zone .= "<input type='hidden' name='id_rubrique' value='$id_objet' />";
    347        
    348                         $message_ajouter_zone = "<span class='verdana1'><B>"._T('accesrestreint:titre_ajouter_zone')."</B></span> &nbsp;\n";
    349        
    350                         $out .= "<table border='0' width='100%' style='text-align: $spip_lang_right'>";
    351        
    352                         // Un admin restreint ne peut ajouter a un auteur que les zones auxquelles il appartient
    353                         if($connect_toutes_rubriques ){
    354                                 $query = "SELECT * FROM spip_zones AS z WHERE z.id_zone NOT IN ($les_zones) ORDER BY z.titre";
    355                         } else {
    356                                 $query = "SELECT * FROM spip_zones AS z JOIN spip_zones_auteurs AS za ON z.id_zone=za.id_zone WHERE za.id_auteur=$connect_id_auteur AND z.id_zone NOT IN ($les_zones) ORDER BY titre";
    357                         }
    358 
    359                         $result = spip_query($query);
    360 
    361                         if (spip_num_rows($result) > 0) {
    362                                 $out .= "\n<tr>";
    363                                 $out .= $form_zone;
    364                                 $out .= "\n<td>";
    365                                 $out .= $message_ajouter_zone;
    366                                 $message_ajouter_zone = "";
    367                                 $out .= "</td>\n<td>";
    368 
    369                                 $out .= "<select name='nouv_zone' size='1' onchange=\"\$('#valider_groupe_$id_groupe').css('visibility','visible');\" style='width: 180px; ' class='fondl'>";
    370 
    371                                 $out .= "\n<option value='x' style='font-variant: small-caps;'>"._T("accesrestreint:selectionner_une_zone")."</option>";
    372                                 while($row = spip_fetch_array($result)) {
    373                                         $id_zone = $row['id_zone'];
    374                                         $titre_zone = $row['titre'];
    375                                         $texte_option = entites_html(textebrut(typo($titre_zone)));
    376                                         $out .= "\n<option value=\"$id_zone\">";
    377                                         $out .= "&nbsp;&nbsp;&nbsp;";
    378                                         $out .= "$texte_option</option>";
    379                                 }
    380                                 $out .= "</select>";
    381                                 $out .= "</td>\n<td>";
    382                                 $out .= "<span class='visible_au_chargement' id='valider_groupe_$id_groupe'>";
    383                                 $out .= " &nbsp; <input type='submit' name='Choisir' value='"._T('bouton_choisir')."' class='fondo'>";
    384                                 $out .= "</span>";
    385                                 $out .= "</td></form>";
    386                                 $out .= "</tr>";
    387                         }
    388                        
    389                         /*if (autoriser('modifier','zone') AND $flag_editable) {
    390                                 $out .= "<tr><td></td><td colspan='2'>";
    391                                 $out .= "<div style='width: 200px;'>";
    392                                 icone_horizontale(_T('accesrestreint:icone_creer_zone'), generer_url_ecrire("mots_edit","new=oui&ajouter_id_article=$id_objet&table=$table&id_table=$id_table&redirect=$retour"), "img_pack/zones-acces-24.gif", "creer.gif");
    393                                 $out .= "</div> ";
    394                                 $out .= "</td></tr>";
    395                         }*/
    396                        
    397                         $out .= "</table>";
    398                         $out .= fin_block();
    399                 }
    400        
    401                 $out .= fin_cadre_enfonce(true);
    402                 return $out;
    403         }
    404        
    405202
    406203        //Affichage de la liste des auteurs
  • _plugins_/_stable_/acces_restreint/prive/editer/affecter_zones.html

    r22642 r22644  
    11<h2 class='titrem'><:accesrestreint:titre_zones_acces:></h2>
    22<div class='ajax'>
    3 #FORMULAIRE_AFFECTATION_ZONES{#ID_AUTEUR}
     3#FORMULAIRE_AFFECTER_ZONES{#ID_AUTEUR}
    44</div>
Note: See TracChangeset for help on using the changeset viewer.