Indentation, PSR

pull/1/head
Cerdic 2 years ago
parent 6652c4f255
commit d2d2d66f02

@ -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;
}

Loading…
Cancel
Save