Changeset 58144 in spip-zone


Ignore:
Timestamp:
Feb 8, 2012, 1:03:22 PM (9 years ago)
Author:
kent1@…
Message:

Vérifier les autorisations nécessaires

Amélioration des messages d'erreur

Passage en 0.4.0

Location:
_plugins_/crud
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/crud/action/crud.php

    r54810 r58144  
    5454                $res = array('message'=>_T('crud:erreur_table_inconnue',array('table'=>$table)));
    5555
    56         elseif ($f=charger_fonction("{$table}_{$action}","crud",true))
     56        elseif ($f=charger_fonction("{$table}_{$action}","crud",true)){
     57                include_spip('inc/autoriser');
    5758                $res = $f($id,$args);
    58         elseif ($f=charger_fonction("{$action}","crud",true))
     59        }elseif ($f=charger_fonction("{$action}","crud",true)){
     60                include_spip('inc/autoriser');
    5961                $res = $f($table,$id,$args);
     62        }
    6063
    6164        else
     
    7982        if ($res['success'] AND isset($res['result']['id'])) {
    8083                $crud = charger_fonction('crud','action');
    81                 $res['result']['row'] = $crud('read',$table,$res['result']['id']);
    82                 $res['result']['row'] = reset($res['result']['row']);
     84                $read = $crud('read',$table,$res['result']['id']);
     85                $res['result']['row'] = $read['result'][0];
    8386        }
    84 
     87       
    8588        return $res;
    86 
    8789}
    8890
  • _plugins_/crud/crud/articles.php

    r57724 r58144  
    1919function crud_articles_create_dist($dummy,$set=null){
    2020        $id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques','id_rubrique='.intval($set['id_rubrique']));
    21         if (($id_rubrique > 0) && autoriser('creerarticledans','rubrique',$set['id_rubrique'],$GLOBALS['visiteur_session']) && ($id = insert_article($set['id_rubrique'])))
     21        if (($id_rubrique > 0) && autoriser('creerarticledans','rubrique',$set['id_rubrique']) && ($id = insert_article($set['id_rubrique'])))
    2222                list($e,$ok) = articles_set($id,$set);
    2323        else if(!$id_rubrique){
     
    4040}
    4141function crud_articles_delete_dist($id){
    42         list($e,$ok) = articles_set($id,array('statut'=>'poubelle'));
     42        if(autoriser('modifier','article',$id)){
     43                list($e,$ok) = articles_set($id,array('statut'=>'poubelle'));
     44        }else{
     45                $e = _T('crud:erreur_suppression',array('objet'=>'article','id_objet'=>$id));
     46        }
    4347        return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
    4448}
  • _plugins_/crud/crud/auteurs.php

    r57724 r58144  
    1818 */
    1919function crud_auteurs_create_dist($dummy,$set = null){
    20         if ($id = insert_auteur($set['source']))
     20        if (autoriser('voir','auteur') AND ($id = insert_auteur($set['source'])))
    2121                list($e,$ok) = auteurs_set($id,$set);
    2222        else
     
    2525}
    2626function crud_auteurs_update_dist($id,$set=null){
    27         list($e,$ok) = auteurs_set($id,$set);
     27        $id_auteur = sql_getfetsel('id_auteur','spip_auteurs','id_auteur='.intval($id));
     28        if($id_auteur && autoriser('modifier','auteur',$id)){
     29                list($e,$ok) = auteurs_set($id,$set);
     30        }else if(!$id_auteur){
     31                $e = _T('crud:erreur_objet_inexistant',array('objet'=>'auteur','id_objet'=>$id));
     32        }else{
     33                $e = _T('crud:erreur_update',array('objet'=>'auteur','id'=>$id));
     34        }
    2835        return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
    2936}
    3037function crud_auteurs_delete_dist($id){
    31         list($e,$ok) = auteurs_set($id,array('statut'=>'5poubelle'));
     38        if(autoriser('modifier','auteur',$id)){
     39                list($e,$ok) = auteurs_set($id,array('statut'=>'5poubelle'));
     40        }else{
     41                $e = _T('crud:erreur_suppression',array('objet'=>'auteur','id_objet'=>$id));
     42        }
    3243        return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
    3344}
  • _plugins_/crud/crud/forums.php

    r57724 r58144  
    2424}
    2525function crud_forums_update_dist($id,$set=null){
    26         if (sql_getfetsel('id_forum','spip_forum','id_forum='.$id)==$id){
     26        if ((sql_getfetsel('id_forum','spip_forum','id_forum='.$id)==$id) && autoriser('modifier','forum',$id)){
    2727                sql_updateq('spip_forum',$set,'id_forum='.$id);
    2828                return array('success'=>true,'message'=>$ok,'result'=>array('id'=>$id));
     
    3333}
    3434function crud_forums_delete_dist($id){
    35         if (sql_updateq('spip_forum',array('statut'=>'off'),'id_forum='.$id))
     35        if (sql_updateq('spip_forum',array('statut'=>'off'),'id_forum='.$id) && autoriser('modifier','forum',$id))
    3636                return array('success'=>true,'message'=>$ok,'result'=>array('id'=>$id));
    3737        else
  • _plugins_/crud/crud/mots.php

    r57724 r58144  
    2121        $crud = charger_fonction('crud','action');
    2222        if ($id_groupe=intval($set['id_groupe'])
     23         AND autoriser('modifier','groupemots',$id_groupe)
    2324         AND $id = sql_insertq("spip_mots", array('id_groupe' => $id_groupe))){
    2425                $result = $crud('update','mots',$id,$set);
    2526                $ok     = $result['message'];
    2627                $id             = $result['result']['id'];
    27                 $e              = $result['sucess'];
     28                $e              = $result['success'] ? false : true;
    2829         }
    2930        else{
     
    3435function crud_mots_update_dist($id,$set=null){
    3536        // modifier le contenu via l'API
    36         include_spip('inc/modifier');
    37         $c = array();
    38         foreach (array(
    39                 'titre', 'descriptif', 'texte', 'id_groupe'
    40         ) as $champ)
    41                 $c[$champ] = _request($champ,$set);
    42 
    43         revision_mot($id, $c);
     37        if(autoriser('modifier','mot',$id)){
     38                include_spip('inc/modifier');
     39                $c = array();
     40                foreach (array(
     41                        'titre', 'descriptif', 'texte', 'id_groupe'
     42                ) as $champ)
     43                        $c[$champ] = _request($champ,$set);
     44       
     45                revision_mot($id, $c);
     46        }else{
     47                $e = _T('crud:erreur_update',array('objet'=>'mot','id_objet'=>$id));
     48        }
    4449        return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
    4550}
    4651function crud_mots_delete_dist($id){
    47         $ok = sql_delete("spip_mots","id_mot=".intval($id));
     52        if(autoriser('modifier','mot',$id)){
     53                $ok = sql_delete("spip_mots","id_mot=".intval($id));
     54        }else{
     55                $e = _T('crud:erreur_suppression',array('objet'=>'mot','id_objet'=>$id));
     56        }
    4857        return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
    4958}
  • _plugins_/crud/crud/rubriques.php

    r57724 r58144  
    1818 */
    1919function crud_rubriques_create_dist($dummy,$set=null){
    20         if ($id = insert_rubrique($set['id_parent']))
     20        if (autoriser('creerrubriquedans','rubrique',$set['id_parent']?$set['id_parent']:0) && ($id = insert_rubrique($set['id_parent'])))
    2121                list($e,$ok) = revisions_rubriques($id,$set);
    2222        else
     
    2525}
    2626function crud_rubriques_update_dist($id,$set=null){
    27         revisions_rubriques($id,$set);
     27        if(autoriser('modifier','rubrique',$id)){
     28                list($e,$ok) = revisions_rubriques($id,$set);
     29        }else{
     30                $e = _T('crud:erreur_update',array('objet'=>'rubrique','id_objet'=>$id));
     31        }
    2832        return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
    2933}
  • _plugins_/crud/lang/crud_fr.php

    r57724 r58144  
    88        'erreur_action_inconnue_table' => 'CRUD : action @action@ inconnue pour table @table@',
    99        'erreur_article_inconnue' => 'CRUD : l\'article @id@ n\'existe pas',
    10         'erreur_creation' => 'CRUD : impossible de créer l\'objet de type "@objet@"',
     10        'erreur_creation' => 'CRUD : impossible de créer l\'objet de type "@objet@" (Vérifiez vos droits)',
     11        'erreur_info_obligatoire' => 'CRUD : Le champ @info@ est obligatoire',
     12        'erreur_objet_inexistant' => 'CRUD : l\'objet @objet@ #@id_objet@ n\'existe pas',
    1113        'erreur_rubrique_inconnue' => 'CRUD : la rubrique @id@ n\'existe pas',
    12         'erreur_update' => 'CRUD : erreur de mise à jour de l\'objet "@objet@" #@id@',
    13         'erreur_info_obligatoire' => 'CRUD : Le champ @info@ est obligatoire',
    1414        'erreur_table_erronee' => 'CRUD : table @table@ erronée',
    1515        'erreur_table_inconnue' => 'CRUD : table @table@ inconnue',
     16        'erreur_suppression' => 'CRUD : erreur de suppression de l\'objet "@objet@" #@id_objet@ (Vérifiez vos droits)',
     17        'erreur_update' => 'CRUD : erreur de mise à jour de l\'objet "@objet@" #@id@ (Vérifiez vos droits)',
    1618);
    1719?>
  • _plugins_/crud/plugin.xml

    r55015 r58144  
    44        <auteur>C&#233;dric Morin</auteur>
    55        <licence>GNU/GPL</licence>
    6         <version>0.3.5</version>
     6        <version>0.4.0</version>
    77        <etat>dev</etat>
    88        <description>Une interface C(r)UD pour SPIP qui peut s'utiliser par l'interm&#233;diaire d'une action d&#233;finie par son url ou par appel direct.</description>
Note: See TracChangeset for help on using the changeset viewer.