diff --git a/action/supprimer_sujet.php b/action/supprimer_sujet.php index e9c65a3..e684e88 100644 --- a/action/supprimer_sujet.php +++ b/action/supprimer_sujet.php @@ -19,8 +19,8 @@ function action_supprimer_sujet_dist(){ suivre_invalideur("id='id_article/$id_article'"); } - // redirection sur l'accueil - $retour = 'spip.php?page=forum_discussion'; + // redirection + $retour = _request('redirect'); include_spip('inc/headers'); redirige_par_entete($retour); } diff --git a/balint_autorisations.php b/balint_autorisations.php index 3cff955..0a16040 100644 --- a/balint_autorisations.php +++ b/balint_autorisations.php @@ -20,6 +20,82 @@ if (!defined('_ECRIRE_INC_VERSION')) { function balint_autoriser() { } +function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt) { + + // Ni admin ni redacteur => non + if (!in_array($qui['statut'], array('0minirezo', '1comite', '6forum'))) { + return false; + } + + // Un redacteur peut modifier ses propres donnees mais ni son login/email + // ni son statut (qui sont le cas echeant passes comme option) + if (in_array($qui['statut'], array('1comite','6forum'))) { + if (!empty($opt['webmestre'])) { + return false; + } elseif ( + !empty($opt['statut']) + or !empty($opt['restreintes']) + or !empty($opt['email']) + ) { + return false; + } elseif ($id == $qui['id_auteur']) { + return true; + } else { + return false; + } + } + + // Un admin restreint peut modifier/creer un auteur non-admin mais il + // n'a le droit ni de le promouvoir admin, ni de changer les rubriques + if ($qui['restreint']) { + if (isset($opt['webmestre']) and $opt['webmestre']) { + return false; + } elseif ((isset($opt['statut']) and ($opt['statut'] == '0minirezo')) + or (isset($opt['restreintes']) and $opt['restreintes']) + ) { + return false; + } else { + if ($id == $qui['id_auteur']) { + if (isset($opt['statut']) and $opt['statut']) { + return false; + } else { + return true; + } + } else { + if ($id_auteur = intval($id)) { + $t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur"); + if ($t and $t['statut'] != '0minirezo') { + return true; + } else { + return false; + } + } // id = 0 => creation + else { + return true; + } + } + } + } + + // Un admin complet fait ce qu'il veut + // sauf se degrader + if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) { + return false; + } elseif (isset($opt['webmestre']) + and $opt['webmestre'] + and (defined('_ID_WEBMESTRES') + or !autoriser('webmestre'))) { + // et toucher au statut webmestre si il ne l'est pas lui meme + // ou si les webmestres sont fixes par constante (securite) + return false; + } // et modifier un webmestre si il ne l'est pas lui meme + elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) { + return false; + } else { + return true; + } +} + function autoriser_article_modifier($faire, $type, $id, $qui, $opt) { if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){ @@ -30,3 +106,24 @@ function autoriser_article_modifier($faire, $type, $id, $qui, $opt) { } } +function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) { + return in_array($qui['statut'], array('0minirezo','1comite','6forum')); +} + +function autoriser_sujet_supprimer($faire, $type, $id, $qui, $opt) { + + // Si le sujet a eu au moins une réponse, on ne peut plus le supprimer + if (sql_fetsel('*','spip_forum',"id_objet=$id AND objet='article'")){ + return false; + } + // Sinon, seul les admins et l'auteur peuvent le supprimer + else{ + + if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){ + return true; + } + else{ + return in_array($qui['statut'], array('0minirezo')); + } + } +} diff --git a/content/editer_sujet.html b/content/editer_sujet.html index 1c2ba1f..07813ab 100644 --- a/content/editer_sujet.html +++ b/content/editer_sujet.html @@ -12,7 +12,7 @@ [(#ENV{id_article}|oui) [(#AUTORISER{modifier, article, #ENV{id_article}}|?{
- [(#FORMULAIRE_EDITER_SUJET{#ENV{id_article},#URL_PAGE{espace_membre}|parametre_url{forum,oui}})]
+ [(#FORMULAIRE_EDITER_SUJET{#ENV{id_article},#ENV{id_forum},#URL_PAGE{#ENV{url}}|parametre_url{id_forum,#ENV{id_forum}}})]
,
Votre compte ne fait pas partie des auteurs autorisés à modifier cet article.
@@ -20,7 +20,7 @@ ] [(#ENV{id_article}|non)
- [(#FORMULAIRE_EDITER_SUJET{0,#URL_PAGE{espace_membre}|parametre_url{forum,oui}})] + [(#FORMULAIRE_EDITER_SUJET{0,#ENV{id_forum},#URL_PAGE{#ENV{url}}|parametre_url{id_forum,#ENV{id_forum}}})]
] ] diff --git a/content/espace_membre.html b/content/espace_membre.html index 4dea69a..9f5dada 100644 --- a/content/espace_membre.html +++ b/content/espace_membre.html @@ -1,21 +1,22 @@ - - [(#REM) On affiche la première rubrique par défaut]
+ + + +

Espace membre

- +
-
- +
[(#FORMULAIRE_LOGIN{#SELF})] @@ -25,7 +26,10 @@ [(#FORMULAIRE_INSCRIPTION)]
- + \ No newline at end of file +?> + + + diff --git a/content/forum_discussion.html b/content/forum_discussion.html index 995cf52..6dd0737 100644 --- a/content/forum_discussion.html +++ b/content/forum_discussion.html @@ -1,24 +1,13 @@
-
- -

Forum

- +
- -
- [(#TEXTE|textebrut)] -
- + - - - +
-
-
diff --git a/content/gerer_auteurs.html b/content/gerer_auteurs.html index 2f992c7..473a5a9 100644 --- a/content/gerer_auteurs.html +++ b/content/gerer_auteurs.html @@ -26,7 +26,7 @@ [(#STATUT|=={0minirezo}|oui) Administrateur] [(#STATUT|=={1comite}|oui) Rédacteur] - [(#STATUT|=={6forum}|oui) Membre] + [(#STATUT|=={6forum}|oui) Inscrit] diff --git a/css/_sq_balint.scss b/css/_sq_balint.scss index 245f584..8b2e675 100644 --- a/css/_sq_balint.scss +++ b/css/_sq_balint.scss @@ -900,8 +900,8 @@ body{ .sujet-forum{ padding: 1rem 0; background: $fond-transparent; - &:not(:last-of-type){ - border-bottom: solid 3px $gris-clair; + &:not(:first-of-type){ + border-top: solid 3px $gris-clair; } .spip_logo{ border-radius: 100%; diff --git a/css/mon_site.css b/css/mon_site.css index 375798a..1e01717 100644 --- a/css/mon_site.css +++ b/css/mon_site.css @@ -12902,8 +12902,8 @@ body { background: rgba(255, 255, 255, 0.92); } -.sujet-forum:not(:last-of-type) { - border-bottom: solid 3px #f2f2f2; +.sujet-forum:not(:first-of-type) { + border-top: solid 3px #f2f2f2; } .sujet-forum .spip_logo { diff --git a/formulaires/configurer_balint.html b/formulaires/configurer_balint.html index bfc3889..7c8dc7a 100644 --- a/formulaires/configurer_balint.html +++ b/formulaires/configurer_balint.html @@ -43,6 +43,7 @@ #SET{name1,id_rub_articles} #SET{name2,id_rub_groupes} #SET{name3,id_rub_forum} + #SET{name3b,id_rub_forum_prive} #SET{name4,id_mots_medias} #SET{name5,id_mots_espace_membre} #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name1}}|table_valeur{#GET{name2}}} @@ -59,10 +60,15 @@
- + [(#GET{erreurs})]
+
+ + [(#GET{erreurs})] + +
[(#GET{erreurs})] diff --git a/formulaires/editer_sujet.html b/formulaires/editer_sujet.html index dd38f5d..6369c7b 100644 --- a/formulaires/editer_sujet.html +++ b/formulaires/editer_sujet.html @@ -14,12 +14,12 @@ Texte
- +
- +
@@ -36,7 +36,7 @@
-
diff --git a/formulaires/editer_sujet.php b/formulaires/editer_sujet.php index f4d2b51..ea01afa 100644 --- a/formulaires/editer_sujet.php +++ b/formulaires/editer_sujet.php @@ -1,11 +1,11 @@ $id)); + include_spip('action/editer_auteur'); if ($id_auteur = intval($desc['id_auteur'])){ // On modifie le mot de passe en utilisant les API de SPIP @@ -158,8 +160,6 @@ function formulaires_inscription_traiter_dist($mode = '', $id = 0) { auteur_modifier($id_auteur, $set); } - - // 2. On connecte l'auteur // appeler auth_identifier_login qui va : diff --git a/inclure/article-forum.html b/inclure/article-forum.html index b610303..4f08712 100644 --- a/inclure/article-forum.html +++ b/inclure/article-forum.html @@ -1,4 +1,4 @@ - Retour + Retour
diff --git a/inclure/bouton_supprimer_sujet.html b/inclure/bouton_supprimer_sujet.html index d13b389..54a5d3b 100644 --- a/inclure/bouton_supprimer_sujet.html +++ b/inclure/bouton_supprimer_sujet.html @@ -1,4 +1,6 @@ - - Supprimer - +[(#AUTORISER{supprimer, sujet, #ENV{id_article}}|oui) + + Supprimer + +] diff --git a/inclure/espace_membre_contenu.html b/inclure/espace_membre_contenu.html index 88004a3..3b31a79 100644 --- a/inclure/espace_membre_contenu.html +++ b/inclure/espace_membre_contenu.html @@ -11,11 +11,11 @@ - [(#ENV{forum}|=={oui}|non) + [(#ENV{id_forum}|non) ] - [(#ENV{forum}|=={oui}|oui) + [(#ENV{id_forum}|oui) [(#ENV{id_article}|oui) ] @@ -27,7 +27,7 @@
#ANCRE_PAGINATION - +
@@ -36,7 +36,7 @@ []
- [(#ENV{forum}|=={oui}|non) + [(#ENV{id_forum}|non) Il n'y a aucun article à afficher dans cette section pour l'instant. ]
diff --git a/inclure/forum_discussion.html b/inclure/forum_discussion.html index 1813fbc..af7246c 100644 --- a/inclure/forum_discussion.html +++ b/inclure/forum_discussion.html @@ -1,6 +1,6 @@ -

Forum

+ +

#TITRE

-
[(#TEXTE|textebrut)]
@@ -8,12 +8,12 @@ [(#ENV{id_article}|non) - + ] [(#ENV{id_article}|oui) - + ] \ No newline at end of file diff --git a/inclure/menu-espace_membre.html b/inclure/menu-espace_membre.html index 5cec9c1..16a8467 100644 --- a/inclure/menu-espace_membre.html +++ b/inclure/menu-espace_membre.html @@ -5,8 +5,11 @@