|
|
|
@ -2,53 +2,67 @@
|
|
|
|
|
|
|
|
|
|
// Ceci est une surcharge de inc/autoriser.php
|
|
|
|
|
//
|
|
|
|
|
// Voir le fichier fonds/cfg_autorite.html pour la definition des reglages
|
|
|
|
|
// et bien sur "ecrire/?exec=cfg&cfg=autorite"
|
|
|
|
|
// Voir le fichier formulaires/configurer_autorite.html pour la definition des reglages
|
|
|
|
|
|
|
|
|
|
if (!defined("_ECRIRE_INC_VERSION")) return;
|
|
|
|
|
if (!defined("_ECRIRE_INC_VERSION")){
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!defined('_DEBUG_AUTORISER')){
|
|
|
|
|
define('_DEBUG_AUTORISER', false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!defined('_DEBUG_AUTORISER')) define('_DEBUG_AUTORISER', false);
|
|
|
|
|
$GLOBALS['autorite'] = @unserialize($GLOBALS['meta']['autorite']);
|
|
|
|
|
$autorite_erreurs = array();
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Les DEFINE
|
|
|
|
|
//
|
|
|
|
|
if (isset($GLOBALS['autorite']['statut_auteur_creation'])) {
|
|
|
|
|
if (defined('_STATUT_AUTEUR_CREATION')) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['statut_auteur_creation'])){
|
|
|
|
|
if (defined('_STATUT_AUTEUR_CREATION')){
|
|
|
|
|
$autorite_erreurs[] = 'statut_auteur_creation';
|
|
|
|
|
} else {
|
|
|
|
|
switch($GLOBALS['autorite']['statut_auteur_creation']) {
|
|
|
|
|
switch ($GLOBALS['autorite']['statut_auteur_creation']) {
|
|
|
|
|
case 'visiteur':
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_CREATION')) define('_STATUT_AUTEUR_CREATION', '6forum');
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_CREATION')){
|
|
|
|
|
define('_STATUT_AUTEUR_CREATION', '6forum');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'redacteur':
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_CREATION')) define('_STATUT_AUTEUR_CREATION', '1comite');
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_CREATION')){
|
|
|
|
|
define('_STATUT_AUTEUR_CREATION', '1comite');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'admin':
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_CREATION')) define('_STATUT_AUTEUR_CREATION', '0minirezo');
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_CREATION')){
|
|
|
|
|
define('_STATUT_AUTEUR_CREATION', '0minirezo');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['statut_auteur_rubrique'])) {
|
|
|
|
|
if (defined('_STATUT_AUTEUR_RUBRIQUE')) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['statut_auteur_rubrique'])){
|
|
|
|
|
if (defined('_STATUT_AUTEUR_RUBRIQUE')){
|
|
|
|
|
$autorite_erreurs[] = 'statut_auteur_rubrique';
|
|
|
|
|
} else {
|
|
|
|
|
switch($GLOBALS['autorite']['statut_auteur_rubrique']) {
|
|
|
|
|
switch ($GLOBALS['autorite']['statut_auteur_rubrique']) {
|
|
|
|
|
case '1':
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_RUBRIQUE')) define('_STATUT_AUTEUR_RUBRIQUE', '0minirezo,1comite');
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_RUBRIQUE')){
|
|
|
|
|
define('_STATUT_AUTEUR_RUBRIQUE', '0minirezo,1comite');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '2':
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_RUBRIQUE')) define('_STATUT_AUTEUR_RUBRIQUE', '0minirezo,1comite,6forum');
|
|
|
|
|
if (!defined('_STATUT_AUTEUR_RUBRIQUE')){
|
|
|
|
|
define('_STATUT_AUTEUR_RUBRIQUE', '0minirezo,1comite,6forum');
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['statut_ignorer_admins_restreints']) and $GLOBALS['autorite']['statut_ignorer_admins_restreints'] == 'oui') {
|
|
|
|
|
if (defined('_ADMINS_RESTREINTS')) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['statut_ignorer_admins_restreints']) and $GLOBALS['autorite']['statut_ignorer_admins_restreints']=='oui'){
|
|
|
|
|
if (defined('_ADMINS_RESTREINTS')){
|
|
|
|
|
$autorite_erreurs[] = 'ignorer_admins_restreints';
|
|
|
|
|
} else {
|
|
|
|
|
define('_ADMINS_RESTREINTS', false);
|
|
|
|
@ -57,13 +71,12 @@ if (isset($GLOBALS['autorite']['statut_ignorer_admins_restreints']) and $GLOBALS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Charger les versions *_dist des fonctions
|
|
|
|
|
include_once _DIR_RESTREINT.'inc/autoriser.php';
|
|
|
|
|
include_once _DIR_RESTREINT . 'inc/autoriser.php';
|
|
|
|
|
// si ca n'a pas ete fait et que l'on est dans une version ancienne de spip
|
|
|
|
|
// definir _ID_WEBMESTRES
|
|
|
|
|
// ceci semble inutile a partir de spip 3.2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Les FONCTIONS
|
|
|
|
|
//
|
|
|
|
@ -72,28 +85,31 @@ include_once _DIR_RESTREINT.'inc/autoriser.php';
|
|
|
|
|
## une fonction qui gere les droits publieurs
|
|
|
|
|
##
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur'])) {
|
|
|
|
|
if (!function_exists('autorisation_publie_visiteur')) {
|
|
|
|
|
function autorisation_publie_visiteur($qui, $id_secteur) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur'])){
|
|
|
|
|
if (!function_exists('autorisation_publie_visiteur')){
|
|
|
|
|
function autorisation_publie_visiteur($qui, $id_secteur){
|
|
|
|
|
// espace publieur est un array(secteur1, secteur2), ou un id_secteur
|
|
|
|
|
if (
|
|
|
|
|
(is_array($GLOBALS['autorite']['espace_publieur'])
|
|
|
|
|
and !in_array($id_secteur,$GLOBALS['autorite']['espace_publieur']))
|
|
|
|
|
and
|
|
|
|
|
$id_secteur != $GLOBALS['autorite']['espace_publieur']
|
|
|
|
|
)
|
|
|
|
|
and !in_array($id_secteur, $GLOBALS['autorite']['espace_publieur']))
|
|
|
|
|
and
|
|
|
|
|
$id_secteur!=$GLOBALS['autorite']['espace_publieur']
|
|
|
|
|
){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch($qui['statut']) {
|
|
|
|
|
switch ($qui['statut']) {
|
|
|
|
|
case '0minirezo':
|
|
|
|
|
break;
|
|
|
|
|
case '1comite':
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur_redacteurs']))
|
|
|
|
|
return true;
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur_redacteurs'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '6forum':
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur_visiteurs']))
|
|
|
|
|
return true;
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur_visiteurs'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
@ -106,31 +122,35 @@ if (isset($GLOBALS['autorite']['espace_publieur'])) {
|
|
|
|
|
##
|
|
|
|
|
## une fonction qui gere les droits wiki
|
|
|
|
|
##
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki'])) {
|
|
|
|
|
if (!function_exists('autorisation_wiki_visiteur')) {
|
|
|
|
|
function autorisation_wiki_visiteur($qui, $id_secteur) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki'])){
|
|
|
|
|
if (!function_exists('autorisation_wiki_visiteur')){
|
|
|
|
|
function autorisation_wiki_visiteur($qui, $id_secteur){
|
|
|
|
|
// espace_wiki est un array(secteur1, secteur2), ou un id_secteur
|
|
|
|
|
if (
|
|
|
|
|
(is_array($GLOBALS['autorite']['espace_wiki'])
|
|
|
|
|
and !in_array($id_secteur,$GLOBALS['autorite']['espace_wiki']))
|
|
|
|
|
and
|
|
|
|
|
$id_secteur != $GLOBALS['autorite']['espace_wiki']
|
|
|
|
|
)
|
|
|
|
|
and !in_array($id_secteur, $GLOBALS['autorite']['espace_wiki']))
|
|
|
|
|
and
|
|
|
|
|
$id_secteur!=$GLOBALS['autorite']['espace_wiki']
|
|
|
|
|
){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch($qui['statut']) {
|
|
|
|
|
switch ($qui['statut']) {
|
|
|
|
|
case '0minirezo':
|
|
|
|
|
case '1comite':
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_redacteurs']))
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_redacteurs'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '6forum':
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_visiteurs']))
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_visiteurs'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_anonyme']))
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_anonyme'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
@ -144,34 +164,38 @@ if (isset($GLOBALS['autorite']['espace_wiki'])) {
|
|
|
|
|
##
|
|
|
|
|
## une fonction qui gere les droits wiki par mot clef
|
|
|
|
|
##
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_motsclef'])) {
|
|
|
|
|
if (!function_exists('autorisation_wiki_motsclef_visiteur')) {
|
|
|
|
|
function autorisation_wiki_motsclef_visiteur($qui, $id_article) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki_motsclef'])){
|
|
|
|
|
if (!function_exists('autorisation_wiki_motsclef_visiteur')){
|
|
|
|
|
function autorisation_wiki_motsclef_visiteur($qui, $id_article){
|
|
|
|
|
|
|
|
|
|
$array_mot = array();
|
|
|
|
|
|
|
|
|
|
//determine les mots clef affectés à l'article
|
|
|
|
|
$array_mot = sql_allfetsel('id_mot', 'spip_mots_liens', "objet='article' AND id_objet=".intval($id_article));
|
|
|
|
|
$array_mot = sql_allfetsel('id_mot', 'spip_mots_liens', "objet='article' AND id_objet=" . intval($id_article));
|
|
|
|
|
$array_mot = array_column($array_mot, 'id_mot');
|
|
|
|
|
|
|
|
|
|
//aucun mot clef d'affecter à l'article, rien à faire
|
|
|
|
|
if (!$array_mot)
|
|
|
|
|
//aucun mot clef d'affecté à l'article, rien à faire
|
|
|
|
|
if (!$array_mot){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//vérification que l'article possède un mot clef correspondant au staut du visiteur
|
|
|
|
|
switch($qui['statut']) {
|
|
|
|
|
switch ($qui['statut']) {
|
|
|
|
|
case '0minirezo':
|
|
|
|
|
case '1comite':
|
|
|
|
|
if (in_array($GLOBALS['autorite']['espace_wiki_motsclef_redacteurs'],$array_mot))
|
|
|
|
|
if (in_array($GLOBALS['autorite']['espace_wiki_motsclef_redacteurs'], $array_mot)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '6forum':
|
|
|
|
|
if (in_array($GLOBALS['autorite']['espace_wiki_motsclef_visiteurs'],$array_mot))
|
|
|
|
|
if (in_array($GLOBALS['autorite']['espace_wiki_motsclef_visiteurs'], $array_mot)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
if (in_array($GLOBALS['autorite']['espace_wiki_motsclef_anonyme'],$array_mot))
|
|
|
|
|
if (in_array($GLOBALS['autorite']['espace_wiki_motsclef_anonyme'], $array_mot)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
@ -191,17 +215,18 @@ if (
|
|
|
|
|
or isset($GLOBALS['autorite']['espace_wiki_motsclef'])
|
|
|
|
|
or isset($GLOBALS['autorite']['redacteur_mod_article'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_article_modifier')) {
|
|
|
|
|
function autoriser_article_modifier($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_article_modifier')){
|
|
|
|
|
function autoriser_article_modifier($faire, $type, $id, $qui, $opt){
|
|
|
|
|
|
|
|
|
|
$r = sql_fetsel("id_rubrique,id_secteur,statut", "spip_articles", "id_article=".intval($id));
|
|
|
|
|
$r = sql_fetsel("id_rubrique,id_secteur,statut", "spip_articles", "id_article=" . intval($id));
|
|
|
|
|
include_spip('inc/auth');
|
|
|
|
|
if (!isset($GLOBALS['autorite']['espace_publieur']))
|
|
|
|
|
$a = autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt);
|
|
|
|
|
else {
|
|
|
|
|
if (!in_array($qui['statut'],array('1comite', '6forum')))
|
|
|
|
|
$a = autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt);
|
|
|
|
|
if (!isset($GLOBALS['autorite']['espace_publieur'])){
|
|
|
|
|
$a = autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt);
|
|
|
|
|
} else {
|
|
|
|
|
if (!in_array($qui['statut'], array('1comite', '6forum'))){
|
|
|
|
|
$a = autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
$a
|
|
|
|
@ -223,7 +248,7 @@ if (
|
|
|
|
|
array('0minirezo', '1comite', '6forum'))
|
|
|
|
|
and in_array($r['statut'],
|
|
|
|
|
array('publie', 'prop', 'prepa', 'poubelle'))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=".intval($id)." AND id_auteur=".intval($qui['id_auteur']))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=" . intval($id) . " AND id_auteur=" . intval($qui['id_auteur']))
|
|
|
|
|
)
|
|
|
|
|
or (
|
|
|
|
|
// un redacteur peut-il modifier un article propose ?
|
|
|
|
@ -234,12 +259,13 @@ if (
|
|
|
|
|
or (
|
|
|
|
|
// un auteur peut modifier son propre article lorsqu'il est proposé ou en cours de rédaction
|
|
|
|
|
in_array($qui['statut'], array('0minirezo', '1comite'))
|
|
|
|
|
and in_array($r['statut'], array('prop','prepa'))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=".intval($id)." AND id_auteur=".intval($qui['id_auteur']))
|
|
|
|
|
and in_array($r['statut'], array('prop', 'prepa'))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=" . intval($id) . " AND id_auteur=" . intval($qui['id_auteur']))
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
if (!function_exists('autoriser_rubrique_creerarticledans')) {
|
|
|
|
|
function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
|
|
|
|
|
if (!function_exists('autoriser_rubrique_creerarticledans')){
|
|
|
|
|
function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return autoriser_voir_dist($faire, $type, $id, $qui, $opt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -256,15 +282,15 @@ if (
|
|
|
|
|
isset($GLOBALS['autorite']['espace_wiki'])
|
|
|
|
|
or isset($GLOBALS['autorite']['publierdans'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_rubrique_publierdans')) {
|
|
|
|
|
function autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_rubrique_publierdans')){
|
|
|
|
|
function autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt){
|
|
|
|
|
|
|
|
|
|
// Si on est deja autorise en standard, dire 'OK'
|
|
|
|
|
if (
|
|
|
|
|
!isset($GLOBALS['autorite']['publierdans'])
|
|
|
|
|
&& autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt)
|
|
|
|
|
) {
|
|
|
|
|
){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -277,54 +303,58 @@ if (
|
|
|
|
|
// aussi qu'il est l'auteur de l'objet publie...
|
|
|
|
|
|
|
|
|
|
if (($GLOBALS['autorite']['publierdans'] & 1)
|
|
|
|
|
&& autoriser('webmestre', $type, $id, $qui, $opt))
|
|
|
|
|
return true;
|
|
|
|
|
&& autoriser('webmestre', $type, $id, $qui, $opt)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (($GLOBALS['autorite']['publierdans'] & 2)
|
|
|
|
|
&& ($qui['statut'] == '0minirezo')
|
|
|
|
|
&& (!$qui['restreint']))
|
|
|
|
|
return true;
|
|
|
|
|
&& ($qui['statut']=='0minirezo')
|
|
|
|
|
&& (!$qui['restreint'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (($GLOBALS['autorite']['publierdans'] & 4)
|
|
|
|
|
&& ($qui['statut'] == '0minirezo')
|
|
|
|
|
&& ($qui['restreint'] AND $id AND in_array($id, $qui['restreint'])))
|
|
|
|
|
return true;
|
|
|
|
|
&& ($qui['statut']=='0minirezo')
|
|
|
|
|
&& ($qui['restreint'] and $id and in_array($id, $qui['restreint']))){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
// Vérifier que le rédacteur·trice est bien l'auteur·e de l'objet
|
|
|
|
|
if (($GLOBALS['autorite']['publierdans'] & 8)
|
|
|
|
|
&& ($qui['statut'] == '1comite')) {
|
|
|
|
|
&& ($qui['statut']=='1comite')){
|
|
|
|
|
|
|
|
|
|
// qui demande le changement de statut ?
|
|
|
|
|
$id_auteur = $qui['id_auteur'];
|
|
|
|
|
$id_auteur = $qui['id_auteur'];
|
|
|
|
|
|
|
|
|
|
// changement pour quel type d'objet?
|
|
|
|
|
$objet = _request('exec');
|
|
|
|
|
$cle_primaire = id_table_objet($objet);
|
|
|
|
|
$id_objet = _request($cle_primaire);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// qui est l'auteur de l'objet ?
|
|
|
|
|
$id_auteur_objet = sql_getfetsel('id_auteur', 'spip_auteurs_liens', "objet =".sql_quote($objet)." AND id_objet =".intval($id_objet));
|
|
|
|
|
$id_auteur_objet = sql_getfetsel('id_auteur', 'spip_auteurs_liens', "objet =" . sql_quote($objet) . " AND id_objet =" . intval($id_objet));
|
|
|
|
|
|
|
|
|
|
// on peut vérifier maintenant…
|
|
|
|
|
if ($id_auteur == $id_auteur_objet) {
|
|
|
|
|
if ($id_auteur==$id_auteur_objet){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// Sinon, verifier si la rubrique est ouverte aux publieurs
|
|
|
|
|
// et si on est bien enregistre
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur'])) {
|
|
|
|
|
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval($id));
|
|
|
|
|
if (autorisation_publie_visiteur($qui, $id_secteur) and ($qui['statut'])) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_publieur'])){
|
|
|
|
|
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id));
|
|
|
|
|
if (autorisation_publie_visiteur($qui, $id_secteur) and ($qui['statut'])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// Sinon, verifier si la rubrique est wiki
|
|
|
|
|
// et si on est bien enregistre (sauf cas de creation anonyme explicitement autorisee)
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki'])) {
|
|
|
|
|
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval($id));
|
|
|
|
|
if (isset($GLOBALS['autorite']['espace_wiki'])){
|
|
|
|
|
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id));
|
|
|
|
|
if (autorisation_wiki_visiteur($qui, $id_secteur)
|
|
|
|
|
and (
|
|
|
|
|
isset($GLOBALS['autorite']['espace_wiki_rubrique_anonyme'])
|
|
|
|
|
or $qui['statut']
|
|
|
|
|
))
|
|
|
|
|
and (
|
|
|
|
|
isset($GLOBALS['autorite']['espace_wiki_rubrique_anonyme'])
|
|
|
|
|
or $qui['statut']
|
|
|
|
|
)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// par defaut, NIET
|
|
|
|
@ -343,20 +373,22 @@ if (
|
|
|
|
|
isset($GLOBALS['autorite']['interdire_creer_secteur'])
|
|
|
|
|
or isset($GLOBALS['autorite']['interdire_creer_sousrub'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_rubrique_creerrubriquedans')) {
|
|
|
|
|
function autoriser_rubrique_creerrubriquedans($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
if ($id == 0
|
|
|
|
|
and isset($GLOBALS['autorite']['interdire_creer_secteur']))
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_rubrique_creerrubriquedans')){
|
|
|
|
|
function autoriser_rubrique_creerrubriquedans($faire, $type, $id, $qui, $opt){
|
|
|
|
|
if ($id==0
|
|
|
|
|
and isset($GLOBALS['autorite']['interdire_creer_secteur'])){
|
|
|
|
|
return
|
|
|
|
|
$GLOBALS['autorite']['interdire_creer_rub_sauf_webmestre']
|
|
|
|
|
and autoriser('webmestre');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($id != 0
|
|
|
|
|
and isset($GLOBALS['autorite']['interdire_creer_sousrub']))
|
|
|
|
|
if ($id!=0
|
|
|
|
|
and isset($GLOBALS['autorite']['interdire_creer_sousrub'])){
|
|
|
|
|
return
|
|
|
|
|
$GLOBALS['autorite']['interdire_creer_rub_sauf_webmestre']
|
|
|
|
|
and autoriser('webmestre');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
autoriser_rubrique_creerrubriquedans_dist($faire, $type, $id, $qui, $opt);
|
|
|
|
@ -367,17 +399,16 @@ if (
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
## autoriser_auteur_modifier
|
|
|
|
|
## TODO : le comportement de SPIP 4 a change par defaut
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['auteur_mod_email'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_auteur_modifier')) {
|
|
|
|
|
function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['auteur_mod_email'])) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_auteur_modifier')){
|
|
|
|
|
function autoriser_auteur_modifier($faire, $type, $id, $qui, $opt){
|
|
|
|
|
if (isset($GLOBALS['autorite']['auteur_mod_email'])){
|
|
|
|
|
unset($opt['email']);
|
|
|
|
|
}
|
|
|
|
|
return autoriser_auteur_modifier_dist($faire, $type, $id, $qui, $opt);
|
|
|
|
@ -391,15 +422,15 @@ if (
|
|
|
|
|
##
|
|
|
|
|
## autoriser_modererforum
|
|
|
|
|
##
|
|
|
|
|
if (!function_exists('autoriser_modererforum')) {
|
|
|
|
|
function autoriser_modererforum($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
if (!function_exists('autoriser_modererforum')){
|
|
|
|
|
function autoriser_modererforum($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return
|
|
|
|
|
($qui['statut']=='0minirezo')
|
|
|
|
|
or (
|
|
|
|
|
or (
|
|
|
|
|
$GLOBALS['autorite']['auteur_modere_forum']
|
|
|
|
|
and $type == 'article'
|
|
|
|
|
and $type=='article'
|
|
|
|
|
and in_array($qui['statut'], array('0minirezo', '1comite'))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=".intval($id)." AND id_auteur=".intval($qui['id_auteur']))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=" . intval($id) . " AND id_auteur=" . intval($qui['id_auteur']))
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -407,15 +438,15 @@ if (!function_exists('autoriser_modererforum')) {
|
|
|
|
|
##
|
|
|
|
|
## autoriser_modererpetition
|
|
|
|
|
##
|
|
|
|
|
if (!function_exists('autoriser_modererpetition')) {
|
|
|
|
|
function autoriser_modererpetition($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
if (!function_exists('autoriser_modererpetition')){
|
|
|
|
|
function autoriser_modererpetition($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return
|
|
|
|
|
($qui['statut']=='0minirezo')
|
|
|
|
|
or (
|
|
|
|
|
or (
|
|
|
|
|
$GLOBALS['autorite']['auteur_modere_petition']
|
|
|
|
|
and $type == 'article'
|
|
|
|
|
and $type=='article'
|
|
|
|
|
and in_array($qui['statut'], array('0minirezo', '1comite'))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=".intval($id)." AND id_auteur=".intval($qui['id_auteur']))
|
|
|
|
|
and sql_countsel("spip_auteurs_liens", "objet='article' AND id_objet=" . intval($id) . " AND id_auteur=" . intval($qui['id_auteur']))
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -426,45 +457,46 @@ if (!function_exists('autoriser_modererpetition')) {
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['redacteurs_lire_stats'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_voirstats')) {
|
|
|
|
|
function autoriser_voirstats($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_voirstats')){
|
|
|
|
|
function autoriser_voirstats($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return
|
|
|
|
|
$GLOBALS['autorite']['redacteurs_lire_stats']
|
|
|
|
|
? in_array($qui['statut'], array('0minirezo', '1comite'))
|
|
|
|
|
: $qui['statut'] == '0minirezo';
|
|
|
|
|
: $qui['statut']=='0minirezo';
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$autorite_erreurs[] = 'autoriser_voirstats';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists ('autoriser_auteurs_voir')) {
|
|
|
|
|
if (!function_exists('autoriser_auteurs_voir')){
|
|
|
|
|
// semble pas testée par spip mais on s'en sert pour les autres
|
|
|
|
|
function autoriser_auteurs_voir ($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
function autoriser_auteurs_voir($faire, $type, $id, $qui, $opt){
|
|
|
|
|
if (isset($GLOBALS['autorite']['redacteurs_voir_auteurs'])
|
|
|
|
|
and $GLOBALS['autorite']['redacteurs_voir_auteurs']) {
|
|
|
|
|
return in_array ($qui['statut'], array('0minirezo', '1comite'));
|
|
|
|
|
} else
|
|
|
|
|
return ($qui['statut'] == '0minirezo');
|
|
|
|
|
and $GLOBALS['autorite']['redacteurs_voir_auteurs']){
|
|
|
|
|
return in_array($qui['statut'], array('0minirezo', '1comite'));
|
|
|
|
|
} else {
|
|
|
|
|
return ($qui['statut']=='0minirezo');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$autorite_erreurs[] = 'autoriser_auteurs_voir';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!function_exists ('autoriser_auteurs_menu')) {
|
|
|
|
|
if (!function_exists('autoriser_auteurs_menu')){
|
|
|
|
|
// présenter ou non l'entrée "auteurs" dans le menu
|
|
|
|
|
function autoriser_auteurs_menu ($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
return autoriser_auteurs_voir ($faire, $type, $id, $qui, $opt);
|
|
|
|
|
function autoriser_auteurs_menu($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return autoriser_auteurs_voir($faire, $type, $id, $qui, $opt);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$autorite_erreurs[] = 'autoriser_auteurs_voir';
|
|
|
|
|
}
|
|
|
|
|
if (!function_exists ('autoriser_auteur_voir')) {
|
|
|
|
|
if (!function_exists('autoriser_auteur_voir')){
|
|
|
|
|
// Accès aux fiches d'infos persos des auteurs
|
|
|
|
|
function autoriser_auteur_voir($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
return ($qui['id_auteur'] == $id)
|
|
|
|
|
or autoriser_auteurs_voir ($faire, $type, $id, $qui, $opt);
|
|
|
|
|
function autoriser_auteur_voir($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return ($qui['id_auteur']==$id)
|
|
|
|
|
or autoriser_auteurs_voir($faire, $type, $id, $qui, $opt);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$autorite_erreurs[] = 'autoriser_auteurs_voir';
|
|
|
|
@ -479,31 +511,33 @@ if (!function_exists ('autoriser_auteur_voir')) {
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_mots'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_groupemots_modifier')) {
|
|
|
|
|
function autoriser_groupemots_modifier($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_groupemots_modifier')){
|
|
|
|
|
function autoriser_groupemots_modifier($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return (
|
|
|
|
|
$qui['statut'] == '0minirezo'
|
|
|
|
|
and (
|
|
|
|
|
!$qui['restreint']
|
|
|
|
|
or
|
|
|
|
|
$GLOBALS['autorite']['editer_mots'] >= 1
|
|
|
|
|
)
|
|
|
|
|
) or (
|
|
|
|
|
$qui['statut'] == '1comite'
|
|
|
|
|
and $GLOBALS['autorite']['editer_mots'] >= 2
|
|
|
|
|
);
|
|
|
|
|
$qui['statut']=='0minirezo'
|
|
|
|
|
and (
|
|
|
|
|
!$qui['restreint']
|
|
|
|
|
or
|
|
|
|
|
$GLOBALS['autorite']['editer_mots']>=1
|
|
|
|
|
)
|
|
|
|
|
) or (
|
|
|
|
|
$qui['statut']=='1comite'
|
|
|
|
|
and $GLOBALS['autorite']['editer_mots']>=2
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# signaler un risque de bug avec un autoriser_mot_modifier personnalise
|
|
|
|
|
if (function_exists('autoriser_mot_modifier')) {
|
|
|
|
|
if (function_exists('autoriser_mot_modifier')){
|
|
|
|
|
$autorite_erreurs[] = 'autoriser_mot_modifier';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// la config d'autorite sur le groupe de mot doit être idem sur les mots
|
|
|
|
|
function autoriser_mot_modifier($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
function autoriser_mot_modifier($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return autoriser_groupemots_modifier($faire, $type, $id, $qui, $opt);
|
|
|
|
|
}
|
|
|
|
|
function autoriser_mot_creer($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
|
|
|
|
|
function autoriser_mot_creer($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return autoriser_groupemots_modifier($faire, $type, $id, $qui, $opt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -520,45 +554,53 @@ if (
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_forums'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_forum_modifier')) {
|
|
|
|
|
function autoriser_forum_modifier($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_forum_modifier')){
|
|
|
|
|
function autoriser_forum_modifier($faire, $type, $id, $qui, $opt){
|
|
|
|
|
|
|
|
|
|
// Le webmestre
|
|
|
|
|
if (isset($GLOBALS['autorite']['editer_forums']) and $GLOBALS['autorite']['editer_forums'] >= 1
|
|
|
|
|
and autoriser('webmestre', $type, $id, $qui, $opt))
|
|
|
|
|
if (isset($GLOBALS['autorite']['editer_forums']) and $GLOBALS['autorite']['editer_forums']>=1
|
|
|
|
|
and autoriser('webmestre', $type, $id, $qui, $opt)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Les admins
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_forums'])
|
|
|
|
|
and $GLOBALS['autorite']['editer_forums'] >= 2
|
|
|
|
|
and $qui['statut'] == '0minirezo'
|
|
|
|
|
and $GLOBALS['autorite']['editer_forums']>=2
|
|
|
|
|
and $qui['statut']=='0minirezo'
|
|
|
|
|
and !$qui['restreint']
|
|
|
|
|
) {
|
|
|
|
|
){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Les admins restreint pour les articles attachés à une rubrique dont ils sont admins
|
|
|
|
|
if (isset($GLOBALS['autorite']['editer_forums']) and $GLOBALS['autorite']['editer_forums'] >= 2 and $qui['statut'] == '0minirezo') {
|
|
|
|
|
$id=intval($id); // ?
|
|
|
|
|
if (isset($GLOBALS['spip_version_branche']) and intval($GLOBALS['spip_version_branche']) < 3 ){
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_forum", "id_forum=$id");
|
|
|
|
|
if (!$id_rubrique and ($id_article = sql_getfetsel("id_article", "spip_forum", "id_forum=$id") ))
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=$id_article");
|
|
|
|
|
if (!$id_rubrique and ($id_breve = sql_getfetsel("id_breve", "spip_forum", "id_forum=$id")))
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_breves", "id_breve=$id_breve");
|
|
|
|
|
} else {
|
|
|
|
|
$objet = sql_getfetsel("objet", "spip_forum", "id_forum=$id");
|
|
|
|
|
$id_objet = sql_getfetsel("id_objet", "spip_forum", "id_forum=$id AND objet='$objet'");
|
|
|
|
|
if ($objet == "rubrique")
|
|
|
|
|
$id_rubrique=$id_objet;
|
|
|
|
|
else if ($objet == "article")
|
|
|
|
|
$id_rubrique=sql_getfetsel("id_rubrique", "spip_articles", "id_article=$id_objet");
|
|
|
|
|
else if ($objet == "breve")
|
|
|
|
|
$id_rubrique=sql_getfetsel("id_rubrique", "spip_breves", "id_breve=$id_objet");
|
|
|
|
|
}
|
|
|
|
|
return ($id_rubrique and in_array ($id_rubrique, $qui['restreint']));
|
|
|
|
|
if (isset($GLOBALS['autorite']['editer_forums']) and $GLOBALS['autorite']['editer_forums']>=2 and $qui['statut']=='0minirezo'){
|
|
|
|
|
$id = intval($id); // ?
|
|
|
|
|
if (isset($GLOBALS['spip_version_branche']) and intval($GLOBALS['spip_version_branche'])<3){
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_forum", "id_forum=$id");
|
|
|
|
|
if (!$id_rubrique and ($id_article = sql_getfetsel("id_article", "spip_forum", "id_forum=$id"))){
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=$id_article");
|
|
|
|
|
}
|
|
|
|
|
if (!$id_rubrique and ($id_breve = sql_getfetsel("id_breve", "spip_forum", "id_forum=$id"))){
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_breves", "id_breve=$id_breve");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$objet = sql_getfetsel("objet", "spip_forum", "id_forum=$id");
|
|
|
|
|
$id_objet = sql_getfetsel("id_objet", "spip_forum", "id_forum=$id AND objet='$objet'");
|
|
|
|
|
if ($objet=="rubrique"){
|
|
|
|
|
$id_rubrique = $id_objet;
|
|
|
|
|
} else {
|
|
|
|
|
if ($objet=="article"){
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=$id_objet");
|
|
|
|
|
} else {
|
|
|
|
|
if ($objet=="breve"){
|
|
|
|
|
$id_rubrique = sql_getfetsel("id_rubrique", "spip_breves", "id_breve=$id_objet");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ($id_rubrique and in_array($id_rubrique, $qui['restreint']));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// L'auteur du message (enregistre')
|
|
|
|
@ -566,17 +608,17 @@ if (
|
|
|
|
|
// 4 = ad vitam
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_forums'])
|
|
|
|
|
and $GLOBALS['autorite']['editer_forums'] >= 3
|
|
|
|
|
and $GLOBALS['autorite']['editer_forums']>=3
|
|
|
|
|
and isset($qui['id_auteur'])
|
|
|
|
|
) {
|
|
|
|
|
){
|
|
|
|
|
$where = [
|
|
|
|
|
"id_forum=".intval($id),
|
|
|
|
|
"id_auteur=".intval($qui['id_auteur'])
|
|
|
|
|
"id_forum=" . intval($id),
|
|
|
|
|
"id_auteur=" . intval($qui['id_auteur'])
|
|
|
|
|
];
|
|
|
|
|
if ($GLOBALS['autorite']['editer_forums'] == 3) {
|
|
|
|
|
if ($GLOBALS['autorite']['editer_forums']==3){
|
|
|
|
|
$where[] = "date_heure > " . sql_quote(date('Y-m-d H:i:s', strtotime('-1hour')));
|
|
|
|
|
}
|
|
|
|
|
if (sql_countsel('spip_forum', $where)) {
|
|
|
|
|
if (sql_countsel('spip_forum', $where)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -598,26 +640,26 @@ if (
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_signatures'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_signature_modifier')) {
|
|
|
|
|
function autoriser_signature_modifier($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_signature_modifier')){
|
|
|
|
|
function autoriser_signature_modifier($faire, $type, $id, $qui, $opt){
|
|
|
|
|
|
|
|
|
|
// Le webmestre
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_signatures'])
|
|
|
|
|
and $GLOBALS['autorite']['editer_signatures'] >= 1
|
|
|
|
|
and $GLOBALS['autorite']['editer_signatures']>=1
|
|
|
|
|
and autoriser('webmestre', $type, $id, $qui, $opt)
|
|
|
|
|
) {
|
|
|
|
|
){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Les admins
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['editer_signatures'])
|
|
|
|
|
and $GLOBALS['autorite']['editer_signatures'] >= 2
|
|
|
|
|
and $qui['statut'] == '0minirezo'
|
|
|
|
|
and $GLOBALS['autorite']['editer_signatures']>=2
|
|
|
|
|
and $qui['statut']=='0minirezo'
|
|
|
|
|
and !$qui['restreint']
|
|
|
|
|
) {
|
|
|
|
|
){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -636,21 +678,21 @@ if (
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['configurer'])
|
|
|
|
|
or isset($GLOBALS['autorite']['configurer_plugin'])
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_configurer')) {
|
|
|
|
|
function autoriser_configurer($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_configurer')){
|
|
|
|
|
function autoriser_configurer($faire, $type, $id, $qui, $opt){
|
|
|
|
|
// TODO:
|
|
|
|
|
// cas particulier : configurer les plugins doit etre bloque
|
|
|
|
|
// en mode 'webmestre', sinon on pourrait desactiver autorite.
|
|
|
|
|
// mais comment faire pour ne pas bloquer quelqu'un qui installe
|
|
|
|
|
// ce plugin alors qu'il est id_auteur > 1 ?
|
|
|
|
|
if (in_array($type, array('plugins', 'admin_plugin'))) {
|
|
|
|
|
if (isset($GLOBALS['autorite']['configurer_plugin']) and $GLOBALS['autorite']['configurer_plugin'] == 'webmestre') {
|
|
|
|
|
if (in_array($type, array('plugins', 'admin_plugin'))){
|
|
|
|
|
if (isset($GLOBALS['autorite']['configurer_plugin']) and $GLOBALS['autorite']['configurer_plugin']=='webmestre'){
|
|
|
|
|
return autoriser('webmestre');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['configurer']) and $GLOBALS['autorite']['configurer'] == 'webmestre') {
|
|
|
|
|
if (isset($GLOBALS['autorite']['configurer']) and $GLOBALS['autorite']['configurer']=='webmestre'){
|
|
|
|
|
return autoriser('webmestre');
|
|
|
|
|
} else {
|
|
|
|
|
return autoriser('x'); // autorisation par defaut
|
|
|
|
@ -667,26 +709,26 @@ if (
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['sauvegarder'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_sauvegarder')) {
|
|
|
|
|
function autoriser_sauvegarder($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_sauvegarder')){
|
|
|
|
|
function autoriser_sauvegarder($faire, $type, $id, $qui, $opt){
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['sauvegarder']) and $GLOBALS['autorite']['sauvegarder'] == 'webmestre') {
|
|
|
|
|
if (isset($GLOBALS['autorite']['sauvegarder']) and $GLOBALS['autorite']['sauvegarder']=='webmestre'){
|
|
|
|
|
return autoriser('webmestre');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// admins y compris restreints
|
|
|
|
|
if (isset($GLOBALS['autorite']['sauvegarder']) and $GLOBALS['autorite']['sauvegarder'] == 'minirezo') {
|
|
|
|
|
return $qui['statut'] == '0minirezo';
|
|
|
|
|
if (isset($GLOBALS['autorite']['sauvegarder']) and $GLOBALS['autorite']['sauvegarder']=='minirezo'){
|
|
|
|
|
return $qui['statut']=='0minirezo';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// version normale
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['sauvegarder'])
|
|
|
|
|
and ($GLOBALS['autorite']['sauvegarder'] == ''
|
|
|
|
|
or $GLOBALS['autorite']['sauvegarder'] == 'admin') # jusque v0.7 de ce plugin
|
|
|
|
|
) {
|
|
|
|
|
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
|
|
|
|
and ($GLOBALS['autorite']['sauvegarder']==''
|
|
|
|
|
or $GLOBALS['autorite']['sauvegarder']=='admin') # jusque v0.7 de ce plugin
|
|
|
|
|
){
|
|
|
|
|
return $qui['statut']=='0minirezo' and !$qui['restreint'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
@ -700,15 +742,15 @@ if (
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['detruire'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_detruire')) {
|
|
|
|
|
function autoriser_detruire($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_detruire')){
|
|
|
|
|
function autoriser_detruire($faire, $type, $id, $qui, $opt){
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['detruire']) and $GLOBALS['autorite']['detruire'] == 'webmestre') {
|
|
|
|
|
if (isset($GLOBALS['autorite']['detruire']) and $GLOBALS['autorite']['detruire']=='webmestre'){
|
|
|
|
|
return autoriser('webmestre');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($GLOBALS['autorite']['detruire']) and $GLOBALS['autorite']['detruire'] == 'non') {
|
|
|
|
|
if (isset($GLOBALS['autorite']['detruire']) and $GLOBALS['autorite']['detruire']=='non'){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -726,12 +768,12 @@ if (
|
|
|
|
|
if (
|
|
|
|
|
isset($GLOBALS['autorite']['redacteurs_ecrire'])
|
|
|
|
|
or false // autre possibilite de surcharge ?
|
|
|
|
|
) {
|
|
|
|
|
if (!function_exists('autoriser_ecrire')) {
|
|
|
|
|
function autoriser_ecrire($faire, $type, $id, $qui, $opt) {
|
|
|
|
|
){
|
|
|
|
|
if (!function_exists('autoriser_ecrire')){
|
|
|
|
|
function autoriser_ecrire($faire, $type, $id, $qui, $opt){
|
|
|
|
|
return
|
|
|
|
|
isset($GLOBALS['autorite']['redacteurs_ecrire'])
|
|
|
|
|
? $qui['statut'] == '0minirezo'
|
|
|
|
|
? $qui['statut']=='0minirezo'
|
|
|
|
|
: in_array($qui['statut'], array('0minirezo', '1comite'));
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
@ -740,6 +782,6 @@ if (
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($autorite_erreurs) {
|
|
|
|
|
if ($autorite_erreurs){
|
|
|
|
|
$GLOBALS['autorite_erreurs'] = $autorite_erreurs;
|
|
|
|
|
}
|
|
|
|
|