On spécifie une autorisation de rédiger un article uniquement pour les animateurs de groupe et les admins
This commit is contained in:
parent
2ed31b4084
commit
4b988fc6a2
4 changed files with 45 additions and 15 deletions
|
@ -20,6 +20,18 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
function balint_autoriser() {
|
function balint_autoriser() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pour ne permettre l'accès à l'espace privé qu'aux admins
|
||||||
|
// (pour les autres, on redirige vers l'accueil)
|
||||||
|
function autoriser_ecrire($faire, $type, $id, $qui, $opt){
|
||||||
|
if ($qui['statut']!='0minirezo'){
|
||||||
|
include_spip('inc/headers');
|
||||||
|
redirige_par_entete( url_de_base());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return in_array($qui['statut'], array('0minirezo'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt) {
|
function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt) {
|
||||||
|
|
||||||
// Ni admin ni redacteur => non
|
// Ni admin ni redacteur => non
|
||||||
|
@ -106,6 +118,23 @@ function autoriser_article_modifier($faire, $type, $id, $qui, $opt) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function autoriser_article_rediger($faire, $type, $id, $qui, $opt) {
|
||||||
|
// Si le membre est rédacteur, il doit être animateur d'au moins un groupe
|
||||||
|
if ($qui['statut']=="1comite"){
|
||||||
|
$id_rub = lire_config('balint/id_rub_groupes');
|
||||||
|
$T_id_groupes = sql_allfetsel('id_article','spip_articles','id_secteur=' . $id_rub);
|
||||||
|
foreach($T_id_groupes as $id_groupe){
|
||||||
|
if (in_array($qui['id_auteur'],auteurs_objet('article',$id_groupe['id_article']))){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Sinon il faut être admin
|
||||||
|
else{
|
||||||
|
return in_array($qui['statut'], array('0minirezo'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) {
|
function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) {
|
||||||
return in_array($qui['statut'], array('0minirezo','1comite','6forum'));
|
return in_array($qui['statut'], array('0minirezo','1comite','6forum'));
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,18 +47,5 @@ if (!isset($GLOBALS['z_blocs']))
|
||||||
'breadcrumb');
|
'breadcrumb');
|
||||||
|
|
||||||
|
|
||||||
function autoriser_ecrire($faire, $type, $id, $qui, $opt){
|
|
||||||
// Pour ne permettre l'accès à l'espace privé qu'aux admins
|
|
||||||
// (pour les autres, on redirige vers l'accueil)
|
|
||||||
if ($qui['statut']!='0minirezo'){
|
|
||||||
include_spip('inc/headers');
|
|
||||||
redirige_par_entete( url_de_base());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return in_array($qui['statut'], array('0minirezo'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// On retire les boutons "Espace privé" et "Recalculer" pour les admins
|
// On retire les boutons "Espace privé" et "Recalculer" pour les admins
|
||||||
$GLOBALS['flag_preserver'] = true;
|
$GLOBALS['flag_preserver'] = true;
|
||||||
|
|
|
@ -32,17 +32,23 @@
|
||||||
<i class="fas fa-user" aria-hidden="true"></i> Mon compte
|
<i class="fas fa-user" aria-hidden="true"></i> Mon compte
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<?php
|
||||||
|
include_spip('inc/autoriser');
|
||||||
|
if (autoriser("rediger",'article')) { ?>
|
||||||
<li class="separ">
|
<li class="separ">
|
||||||
<a class="btn bouton-footer" href="[(#URL_PAGE{editer_article})]" title="Rédiger un article">
|
<a class="btn bouton-footer" href="[(#URL_PAGE{editer_article})]" title="Rédiger un article">
|
||||||
<i class="fas fa-pencil"></i> Rédiger un article
|
<i class="fas fa-pencil"></i> Rédiger un article
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="separ">
|
<li class="separ">
|
||||||
<a class="btn bouton-footer" href="[(#URL_PAGE{brouillons})]" title="Voir les brouillons">
|
<a class="btn bouton-footer" href="[(#URL_PAGE{brouillons})]" title="Voir les brouillons">
|
||||||
<i class="fas fa-file"></i> Brouillons
|
<i class="fas fa-file"></i> Brouillons
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<?php if (isset($GLOBALS['visiteur_session']['statut']) AND $GLOBALS['visiteur_session']['statut'] == '0minirezo') { ?>
|
<?php
|
||||||
|
}
|
||||||
|
if (isset($GLOBALS['visiteur_session']['statut']) AND $GLOBALS['visiteur_session']['statut'] == '0minirezo') { ?>
|
||||||
<li class="separ">
|
<li class="separ">
|
||||||
<a class="btn bouton-footer" href="[(#URL_PAGE{editer_groupe})]" title="Créer un groupe">
|
<a class="btn bouton-footer" href="[(#URL_PAGE{editer_groupe})]" title="Créer un groupe">
|
||||||
<i class="fas fa-globe"></i> Créer un groupe
|
<i class="fas fa-globe"></i> Créer un groupe
|
||||||
|
|
|
@ -89,9 +89,17 @@ function formulaires_editer_post_verifier_dist($id_article=0, $redirect=''){
|
||||||
|
|
||||||
// il faut au minimum titre et un texte pour créer un article
|
// il faut au minimum titre et un texte pour créer un article
|
||||||
if (_request('titre') == '' OR _request('texte') == ''){
|
if (_request('titre') == '' OR _request('texte') == ''){
|
||||||
$erreurs['message_erreur'] = "Il faut obligatoirement un titre et un texte pour créer un article.";
|
$erreurs['message_erreur'] = "Il faut obligatoirement un titre et un contenu pour créer un article.";
|
||||||
return $erreurs;
|
return $erreurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Il faut sélectionner au moins un emplacement pour publier un article, sinon on le retrouve plus
|
||||||
|
if (_request('statut')=='publie'){
|
||||||
|
if (_request('id_emplacements') == '' AND _request('id_groupe') == ''){
|
||||||
|
$erreurs['message_erreur'] = "Il faut sélectionner un groupe ou un emplacement pour publier un article.";
|
||||||
|
return $erreurs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$bigform = charger_fonction('bigform_verifier','inc');
|
$bigform = charger_fonction('bigform_verifier','inc');
|
||||||
$options = ['mime' => 'tout_mime','taille_max'=>'5000','largeur_max'=>'2048','hauteur_max'=>'2048'];
|
$options = ['mime' => 'tout_mime','taille_max'=>'5000','largeur_max'=>'2048','hauteur_max'=>'2048'];
|
||||||
|
|
Loading…
Add table
Reference in a new issue