Changeset 60827 in spip-zone


Ignore:
Timestamp:
Apr 30, 2012, 6:45:44 PM (9 years ago)
Author:
eric@…
Message:

Correction et sécurité dans les autorisations.
Surcharge de la page relecture_edit finalement... hélas.
Correction d'un item de langue.

Location:
_plugins_/relecture
Files:
1 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/relecture/prive/squelettes/contenu/relecture.html

    r60824 r60827  
    7979
    8080        [(#REM) <!-- Textes de l'article a relire et a commenter --> ]
    81         <div>
    82                 <INCLURE{fond=prive/objets/contenu/relecture,
    83                         id=#ID_RELECTURE,
    84                         id_article=#ID_ARTICLE,
    85                         ajax=wysiwyg,
    86                         wysiwyg=1} />
    87         </div>
    8881        <h5><:relecture:titre_boite_textes_article{revision=#REVISION_OUVERTURE}:></h5>
    8982        <div class="accordion" id="article">
  • _plugins_/relecture/prive/squelettes/infos/article-voir_relectures.html

    r60400 r60827  
    44        [(#URL_ECRIRE{relecture}
    55                |parametre_url{id_relecture, #ID_RELECTURE}
    6                 |icone_horizontale{<:relecture:bouton_historique_relectures:>,relecture-ok-24.png})]
     6                |icone_horizontale{<:relecture:bouton_voir_relectures:>,relecture-ok-24.png})]
    77]
    88</BOUCLE_relectures_fermees>
  • _plugins_/relecture/relecture_autorisations.php

    r60400 r60827  
    2020function autoriser_article_ouvrirrelecture_dist($faire, $type, $id, $qui, $opt) {
    2121
     22        $autoriser = false;
     23
    2224        // Conditions :
    2325        // - l'auteur connecte est un des auteurs de l'article
    2426        // - l'article est dans l'état "en cours de rédaction"
    2527        // - l'article n'a pas deja une relecture d'ouverte
     28        if ($id_article = intval($id)) {
     29                $les_auteurs = lister_objets_lies('auteur', 'article', $id, 'auteurs_liens');
    2630
    27         $les_auteurs = lister_objets_lies('auteur', 'article', $id, 'auteurs_liens');
     31                $from = 'spip_articles';
     32                $where = array("id_article=$id_article");
     33                $statut = sql_getfetsel('statut', $from, $where);
    2834
    29         $from = 'spip_articles';
    30         $where = array("id_article=$id");
    31         $statut = sql_getfetsel('statut', $from, $where);
     35                $from = 'spip_relectures';
     36                $where = array("id_article=$id_article", "statut=" . sql_quote('ouverte'));
     37                $nb_relecture_ouverte = intval(sql_countsel($from, $where));
    3238
    33         $from = 'spip_relectures';
    34         $where = array("id_article=$id", "statut=" . sql_quote('ouverte'));
    35         $nb_relecture_ouverte = sql_countsel($from, $where);
     39                $autoriser =
     40                        (in_array($qui['id_auteur'], $les_auteurs)
     41                        AND ($statut=='prepa')
     42                        AND ($nb_relecture_ouverte==0));
     43        }
    3644
    37         return
    38                 (in_array($qui['id_auteur'], $les_auteurs)
    39                 AND ($statut=='prepa')
    40                 AND ($nb_relecture_ouverte==0));
     45        return $autoriser;
    4146}
    4247
     
    5560function autoriser_article_voirrelectures_dist($faire, $type, $id, $qui, $opt) {
    5661
     62        $autoriser = false;
     63
    5764        // Conditions :
    5865        // - pour l'instant tout le monde peut afficher les fiches de relecture clôturées
     66        if ($id_article = intval($id)) {
     67                $autoriser = true;
     68        }
    5969
    60         return true;
     70        return $autoriser;
    6171}
    6272
     
    7484function autoriser_relecture_modifier_dist($faire, $type, $id, $qui, $opt) {
    7585
     86        $autoriser = false;
     87
    7688        // Conditions :
    7789        // - la relecture n'est pas fermee
     
    7991        // - ou un admin complet ou restreint à la rubrique d'appartenance de l'article (besoin de maintenance)
    8092
    81         $from = 'spip_relectures';
    82         $where = array("id_relecture=$id");
    83         $infos = sql_fetsel('id_article, statut', $from, $where);
     93        if ($id_relecture = intval($id)) {
     94                $from = 'spip_relectures';
     95                $where = array("id_relecture=$id_relecture");
     96                $infos = sql_fetsel('id_article, statut', $from, $where);
    8497
    85         $relecture_ouverte = $infos['statut'] == 'ouverte';
     98                $relecture_ouverte = ($infos['statut'] == 'ouverte');
    8699
    87         $id_article = $infos['id_article'];
    88         $les_auteurs = lister_objets_lies('auteur', 'article', $id_article, 'auteurs_liens');
     100                $id_article = $infos['id_article'];
     101                $les_auteurs = lister_objets_lies('auteur', 'article', $id_article, 'auteurs_liens');
    89102
    90         $from = 'spip_articles';
    91         $where = array("id_article=$id_article");
    92         $id_rubrique = sql_getfetsel('id_rubrique', $from, $where);
     103                $from = 'spip_articles';
     104                $where = array("id_article=$id_article");
     105                $id_rubrique = sql_getfetsel('id_rubrique', $from, $where);
    93106
    94         return
    95                 $relecture_ouverte
    96                 AND
    97                 ((in_array($qui['id_auteur'], $les_auteurs)
    98                         OR (($qui['statut'] == '0minirezo')
    99                                 AND (!$qui['restreint'] OR !$id_rubrique OR in_array($id_rubrique, $qui['restreint'])))));
     107                $autoriser =
     108                        ($relecture_ouverte
     109                        AND
     110                        ((in_array($qui['id_auteur'], $les_auteurs)
     111                                OR (($qui['statut'] == '0minirezo')
     112                                        AND (!$qui['restreint'] OR !$id_rubrique OR in_array($id_rubrique, $qui['restreint']))))));
     113        }
     114
     115        return $autoriser;
    100116}
    101117
     
    113129function autoriser_relecture_commenter_dist($faire, $type, $id, $qui, $opt) {
    114130
     131        $autoriser = false;
     132
    115133        // Conditions :
    116134        // - l'auteur connecte est un des auteurs ou des relecteurs de l'article
    117135        // - la periode de relecture ne doit pas etre echue
    118136
    119         $from = 'spip_relectures';
    120         $where = array("id_relecture=$id");
    121         $infos = sql_fetsel('id_article, date_fin_commentaire', $from, $where);
     137        if ($id_relecture = intval($id)) {
     138                $from = 'spip_relectures';
     139                $where = array("id_relecture=$id");
     140                $infos = sql_fetsel('id_article, date_fin_commentaire', $from, $where);
    122141
    123         $les_relecteurs = lister_objets_lies('auteur', 'relecture', $id, 'auteurs_liens');
    124         $les_auteurs = lister_objets_lies('auteur', 'article', $infos['id_article'], 'auteurs_liens');
     142                $les_relecteurs = lister_objets_lies('auteur', 'relecture', $id, 'auteurs_liens');
     143                $les_auteurs = lister_objets_lies('auteur', 'article', $infos['id_article'], 'auteurs_liens');
    125144
    126         return
    127                 (strtotime($infos['date_fin_commentaire'])>time()
    128                 AND (in_array($qui['id_auteur'], $les_auteurs)
    129                         OR in_array($qui['id_auteur'], $les_relecteurs)));
     145                $autoriser =
     146                        (strtotime($infos['date_fin_commentaire'])>time()
     147                        AND (in_array($qui['id_auteur'], $les_auteurs)
     148                                OR in_array($qui['id_auteur'], $les_relecteurs)));
    130149
     150        }
     151
     152        return $autoriser;
    131153}
    132154
Note: See TracChangeset for help on using the changeset viewer.