Browse Source

PSR phpcbf + mise a jour du cartouche

master
Cerdic 7 months ago
parent
commit
d54d8d128a
  1. 93
      accesrestreint_administrations.php
  2. 54
      accesrestreint_fonctions.php
  3. 11
      accesrestreint_options.php
  4. 47
      accesrestreint_pipelines.php
  5. 15
      action/acceder_document.php
  6. 16
      action/affecter_zone.php
  7. 88
      action/api_docrestreint.php
  8. 28
      action/autoriser.php
  9. 80
      action/editer_zone.php
  10. 14
      action/retirer_zone.php
  11. 12
      action/supprimer_zone.php
  12. 36
      base/accesrestreint.php
  13. 13
      formulaires/configurer_accesrestreint.php
  14. 22
      formulaires/editer_zone.php
  15. 75
      inc/accesrestreint.php
  16. 31
      inc/accesrestreint_autoriser.php
  17. 15
      inc/accesrestreint_documents.php
  18. 14
      phpcs.xml.dist
  19. 148
      public/accesrestreint.php
  20. 22
      urls/generer_url_document.php

93
accesrestreint_administrations.php

@ -1,7 +1,8 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
@ -19,61 +20,65 @@ include_spip('inc/meta');
function accesrestreint_upgrade($nom_meta_base_version, $version_cible) {
// le prefixe est passe des majuscules aux minuscules :
if (isset($GLOBALS['meta']['AccesRestreint_base_version'])
and !isset($GLOBALS['meta'][$nom_meta_base_version])) {
if (
isset($GLOBALS['meta']['AccesRestreint_base_version'])
and !isset($GLOBALS['meta'][$nom_meta_base_version])
) {
$GLOBALS['meta'][$nom_meta_base_version] = $GLOBALS['meta']['AccesRestreint_base_version'];
}
$maj = array();
$maj['create'] = array(
array('maj_tables',array('spip_zones','spip_zones_liens')),
);
$maj = [];
$maj['create'] = [
['maj_tables',['spip_zones','spip_zones_liens']],
];
$maj['0.1.0'] = array(
array('maj_tables',array('spip_zones')), // publique, privee
);
$maj['0.2.0'] = array(
array('maj_tables',array('spip_zones')), // publique, privee
);
$maj['0.3.0'] = array(
array('sql_alter', 'TABLE spip_zones_auteurs DROP INDEX id_zone'),
array('sql_alter', 'TABLE spip_zones_auteurs ADD PRIMARY KEY ( id_zone , id_auteur )'),
array('sql_alter', 'TABLE spip_zones_rubriques DROP INDEX id_zone'),
array('sql_alter', 'TABLE spip_zones_rubriques ADD PRIMARY KEY ( id_zone , id_rubrique )'),
);
$maj['0.3.1'] = array(
array('sql_alter',"TABLE spip_zones ALTER titre SET DEFAULT ''"),
array('sql_alter',"TABLE spip_zones ALTER descriptif SET DEFAULT ''"),
);
$maj['0.1.0'] = [
['maj_tables',['spip_zones']], // publique, privee
];
$maj['0.2.0'] = [
['maj_tables',['spip_zones']], // publique, privee
];
$maj['0.3.0'] = [
['sql_alter', 'TABLE spip_zones_auteurs DROP INDEX id_zone'],
['sql_alter', 'TABLE spip_zones_auteurs ADD PRIMARY KEY ( id_zone , id_auteur )'],
['sql_alter', 'TABLE spip_zones_rubriques DROP INDEX id_zone'],
['sql_alter', 'TABLE spip_zones_rubriques ADD PRIMARY KEY ( id_zone , id_rubrique )'],
];
$maj['0.3.1'] = [
['sql_alter',"TABLE spip_zones ALTER titre SET DEFAULT ''"],
['sql_alter',"TABLE spip_zones ALTER descriptif SET DEFAULT ''"],
];
include_spip('maj/svn10000');
$maj['0.4.0'] = array(
array('maj_liens', 'zone'), // creer la table zones_liens
array('maj_liens','zone', 'auteur'),
array('sql_drop_table', 'spip_zones_auteurs'),
array('maj_liens','zone', 'rubrique'),
array('sql_drop_table', 'spip_zones_rubriques'),
);
$maj['0.4.1'] = array(
array('sql_alter',"TABLE spip_zones CHANGE publique publique char(3) DEFAULT 'oui' NOT NULL"),
array('sql_alter',"TABLE spip_zones CHANGE privee privee char(3) DEFAULT 'oui' NOT NULL"),
);
$maj['0.4.2'] = array(
array('accesrestreint_upgrade_protection_documents'),
);
$maj['0.4.0'] = [
['maj_liens', 'zone'], // creer la table zones_liens
['maj_liens','zone', 'auteur'],
['sql_drop_table', 'spip_zones_auteurs'],
['maj_liens','zone', 'rubrique'],
['sql_drop_table', 'spip_zones_rubriques'],
];
$maj['0.4.1'] = [
['sql_alter',"TABLE spip_zones CHANGE publique publique char(3) DEFAULT 'oui' NOT NULL"],
['sql_alter',"TABLE spip_zones CHANGE privee privee char(3) DEFAULT 'oui' NOT NULL"],
];
$maj['0.4.2'] = [
['accesrestreint_upgrade_protection_documents'],
];
// autoriser_si_connexion
$maj['0.5.0'] = array(
array('maj_tables', array('spip_zones')),
);
$maj['0.5.0'] = [
['maj_tables', ['spip_zones']],
];
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
function accesrestreint_upgrade_protection_documents() {
if (isset($GLOBALS['meta']['creer_htaccess'])
if (
isset($GLOBALS['meta']['creer_htaccess'])
and $GLOBALS['meta']['creer_htaccess'] == 'oui'
and !isset($GLOBALS['meta']['accesrestreint_proteger_documents'])) {
and !isset($GLOBALS['meta']['accesrestreint_proteger_documents'])
) {
ecrire_meta('accesrestreint_proteger_documents', 'oui');
include_spip('inc/accesrestreint_documents');
accesrestreint_gerer_htaccess(true);

54
accesrestreint_fonctions.php

@ -1,7 +1,8 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
@ -30,7 +31,7 @@ function accesrestreint_securise_squelette($letexte) {
*
* @uses accesrestreint_article_restreint
* @uses accesrestreint_rubrique_restreinte
*
*
* @param string $objet
* @param int $id_objet
* @param int $id_auteur
@ -39,14 +40,14 @@ function accesrestreint_securise_squelette($letexte) {
function accesrestreint_objet_restreint($id_objet, $objet, $id_auteur = null) {
// S'il existe une fonction spécifique pour le type d'objet, on l'utilise
if ($fonction = "accesrestreint_${objet}_restreint"
if (
$fonction = "accesrestreint_${objet}_restreint"
and function_exists($fonction)
) {
$restreint = $fonction($id_objet, $id_auteur);
// Sinon du générique
} else {
include_spip('inc/accesrestreint');
include_spip('base/objets');
$table_objet_sql = table_objet_sql($objet);
@ -72,14 +73,14 @@ function accesrestreint_objet_restreint($id_objet, $objet, $id_auteur = null) {
// Permettre aux plugins de modifier le résultat
$restreint = pipeline(
'accesrestreint_objet_restreint',
array(
'args' => array(
[
'args' => [
'objet' => $objet,
'id_objet' => $id_objet,
'id_auteur' => $id_auteur,
),
],
'data' => $restreint,
)
]
);
return $restreint;
@ -131,7 +132,7 @@ function accesrestreint_rubrique_restreinte($id_rubrique, $id_auteur = null) {
*/
function accesrestreint_acces_zone($id_zone, $id_auteur = null) {
include_spip('inc/session');
static $liste_zones = array();
static $liste_zones = [];
$id_visiteur = session_get('id_auteur');
if (is_null($id_auteur)) {
@ -139,7 +140,8 @@ function accesrestreint_acces_zone($id_zone, $id_auteur = null) {
}
if (!isset($liste_zones[$id_auteur])) {
if ($GLOBALS['accesrestreint_zones_autorisees']
if (
$GLOBALS['accesrestreint_zones_autorisees']
and ($id_auteur == $id_visiteur)
) {
$liste_zones[$id_auteur] = explode(',', $GLOBALS['accesrestreint_zones_autorisees']);
@ -147,7 +149,7 @@ function accesrestreint_acces_zone($id_zone, $id_auteur = null) {
include_spip('inc/accesrestreint');
$liste_zones[$id_auteur] = explode(',', accesrestreint_liste_zones_autorisees('', $id_auteur));
} else {
$liste_zones[$id_auteur] = array();
$liste_zones[$id_auteur] = [];
}
}
@ -161,10 +163,10 @@ function accesrestreint_acces_zone($id_zone, $id_auteur = null) {
* @return string
*/
function icone_auteur_12($statut) {
if ($statut=='0minirezo') {
if ($statut == '0minirezo') {
return _DIR_IMG_PACK . 'admin-12.gif';
}
if ($statut=='1comite') {
if ($statut == '1comite') {
return _DIR_IMG_PACK . 'redac-12.gif';
}
return _DIR_IMG_PACK . 'visit-12.gif';
@ -180,10 +182,10 @@ function icone_auteur_12($statut) {
* @return array identifiants des zones
*/
function accesrestreint_zones_rubrique_et_hierarchie($id_rubrique) {
static $zones = array();
static $zones = [];
if (!$id_rubrique) {
return array();
return [];
}
if (isset($zones[$id_rubrique])) {
@ -195,7 +197,7 @@ function accesrestreint_zones_rubrique_et_hierarchie($id_rubrique) {
// on parcours toute l'arborescence jusqu'a la racine en testant les zones
// pour completer les zones deja trouvees
if ($id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique))) {
if ($id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique))) {
// on teste notre parent
$idz_parent = accesrestreint_zones_rubrique_et_hierarchie($id_parent);
$idz = array_merge($idz, $idz_parent);
@ -215,12 +217,12 @@ function accesrestreint_zones_rubrique_et_hierarchie($id_rubrique) {
*/
function accesrestreint_zones_rubrique($id_rubrique) {
// on teste notre rubrique deja
$idz = sql_allfetsel('id_zone', 'spip_zones_liens', "objet='rubrique' AND id_objet=". intval($id_rubrique));
$idz = sql_allfetsel('id_zone', 'spip_zones_liens', "objet='rubrique' AND id_objet=" . intval($id_rubrique));
if (is_array($idz)) {
$idz = array_column($idz, 'id_zone');
return $idz;
}
return array();
return [];
}
/**
@ -258,7 +260,7 @@ function accesrestreint_rubrique_zone_restreinte($id_rubrique, $_publique = null
* @return Array liste d'identifiants de rubriques
*/
function accesrestreint_liste_rubriques_restreintes($_publique = null) {
static $rubs = array();
static $rubs = [];
// $_publique : null, true, false, 'tout'
$tout = false;
@ -272,7 +274,7 @@ function accesrestreint_liste_rubriques_restreintes($_publique = null) {
return $rubs[$_publique];
}
$where = array("zr.objet='rubrique'");
$where = ["zr.objet='rubrique'"];
if (!$tout) {
if ($_publique) {
$where[] = 'z.publique=' . sql_quote('oui');
@ -288,7 +290,7 @@ function accesrestreint_liste_rubriques_restreintes($_publique = null) {
return $rubs[$_publique] = $idz;
}
return $rubs[$_publique] = array();
return $rubs[$_publique] = [];
}
@ -317,7 +319,7 @@ function accesrestreint_liste_rubriques_restreintes($_publique = null) {
* @return Array liste d'identifiants de rubriques
*/
function accesrestreint_liste_rubriques_restreintes_et_enfants($_publique = null) {
static $rubs = array();
static $rubs = [];
if (is_null($_publique)) {
$_publique = !test_espace_prive();
@ -335,7 +337,7 @@ function accesrestreint_liste_rubriques_restreintes_et_enfants($_publique = null
return $rubs[$_publique] = $branches;
}
return $rubs[$_publique] = array();
return $rubs[$_publique] = [];
}
/**
@ -355,9 +357,9 @@ function accesrestreint_auteur_lie_a_rubrique($id_auteur, $id_rubrique) {
return false;
}
// $auteur[3][8] : l'auteur 3 ne peut pas voir la rubrique 8
static $auteurs = array();
static $auteurs = [];
if (!isset($auteurs[$id_auteur])) {
$auteurs[$id_auteur] = array();
$auteurs[$id_auteur] = [];
include_spip('inc/accesrestreint');
$auteurs[$id_auteur] = array_flip(accesrestreint_liste_rubriques_exclues(true, $id_auteur, true));

11
accesrestreint_options.php

@ -1,7 +1,8 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
@ -27,7 +28,7 @@ if (isset($GLOBALS['meta']['accesrestreint_base_version'])) {
$GLOBALS['marqueur'] = '';
}
$GLOBALS['marqueur'] .= ':accesrestreint_zones_autorisees='
.$GLOBALS['accesrestreint_zones_autorisees'];
. $GLOBALS['accesrestreint_zones_autorisees'];
}
/**
@ -41,7 +42,7 @@ function accesrestreint_calculer_cle_document($id_document, $fichier) {
include_spip('inc/securiser_action');
}
$sign = array($id_document, $fichier);
$sign = [$id_document, $fichier];
// si _ACCESRESTREINT_SECRET_SIGNATURE_DOCUMENTS est definie, on l'ajoute : cela permet d'invalider les cles dans la nature est d'en regenerer de nouvelles
// ie on peut avoir des urls temporaires en liant ce secret a la date (mais cache a gerer, car il n'y a pas de recouvrement, le changement est brutal)
@ -53,4 +54,4 @@ function accesrestreint_calculer_cle_document($id_document, $fichier) {
$cle = calculer_cle_action(implode(',', $sign));
return $cle;
}
}

47
accesrestreint_pipelines.php

@ -1,7 +1,8 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
@ -17,15 +18,17 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @return string
*/
function accesrestreint_affiche_milieu($flux) {
if (($e = trouver_objet_exec($flux['args']['exec'])
if (
($e = trouver_objet_exec($flux['args']['exec'])
and $e['type'] == 'auteur'
and $e['edition'] == false
and $id_auteur = $flux['args']['id_auteur'])
or (
$flux['args']['exec'] == 'infos_perso'
and $id_auteur = $GLOBALS['visiteur_session']['id_auteur']
)) {
$ins = recuperer_fond('prive/squelettes/inclure/acces_auteur', array('id_auteur' => $id_auteur));
)
) {
$ins = recuperer_fond('prive/squelettes/inclure/acces_auteur', ['id_auteur' => $id_auteur]);
if (($p = strpos($flux['data'], '<!--affiche_milieu-->')) !== false) {
$flux['data'] = substr_replace($flux['data'], $ins, $p, 0);
} else {
@ -42,12 +45,14 @@ function accesrestreint_affiche_milieu($flux) {
* @return string
*/
function accesrestreint_affiche_gauche($flux) {
if ($e = trouver_objet_exec($flux['args']['exec'])
if (
$e = trouver_objet_exec($flux['args']['exec'])
and $e['type'] == 'rubrique'
and $e['edition'] == false
and $id_rubrique = $flux['args']['id_rubrique']) {
and $id_rubrique = $flux['args']['id_rubrique']
) {
if (autoriser('administrer', 'zone', 0)) {
$flux['data'] .= recuperer_fond('prive/squelettes/inclure/acces_rubrique', array('id_rubrique' => $id_rubrique));
$flux['data'] .= recuperer_fond('prive/squelettes/inclure/acces_rubrique', ['id_rubrique' => $id_rubrique]);
}
}
return $flux;
@ -83,15 +88,17 @@ function accesrestreint_page_indisponible($contexte) {
$id_table_objet = id_table_objet($objet);
if ($id = intval($contexte[$id_table_objet])) {
$publie = true;
if (include_spip('base/objets')
and function_exists('objet_test_si_publie')) {
if (
include_spip('base/objets')
and function_exists('objet_test_si_publie')
) {
$publie = objet_test_si_publie($objet, $id);
} else {
$trouver_table = charger_fonction('trouver_table', 'base');
$desc = $trouver_table($table_sql);
if (isset($desc['field']['statut'])) {
$statut = sql_getfetsel('statut', $table_sql, "$id_table_objet=".intval($id));
if ($statut!='publie') {
$statut = sql_getfetsel('statut', $table_sql, "$id_table_objet=" . intval($id));
if ($statut != 'publie') {
$publie = false;
}
}
@ -118,7 +125,7 @@ function accesrestreint_page_indisponible($contexte) {
/**
* Garder en mémoire dans une meta la liste des zones qui sont accessibles à toutes les personnes connectées
*
*
* @pipeline post_edition
* @param array $flux
* Contenu fourni par le pipeline
@ -131,32 +138,32 @@ function accesrestreint_post_edition($flux) {
isset($flux['args']['type'])
and $flux['args']['type'] == 'zone'
and $id_zone = $flux['args']['id_objet']
and isset($flux['data']['autoriser_si_connexion'])
and isset($flux['data']['autoriser_si_connexion'])
) {
include_spip('inc/config');
// On cherche les zones déjà gardées en mémoire
$zones_si_connexion = lire_config('accesrestreint_zones_si_connexion');
if ($zones_si_connexion) {
$zones_si_connexion = explode(',', $zones_si_connexion);
}
else {
$zones_si_connexion = array();
$zones_si_connexion = [];
}
// Si on a coché la case, on ajoute cette zone là
if ($flux['data']['autoriser_si_connexion'] == 'oui') {
array_push($zones_si_connexion, $id_zone);
}
// Sinon décoché, on la retire
else {
$zones_si_connexion = array_diff($zones_si_connexion, array($id_zone));
$zones_si_connexion = array_diff($zones_si_connexion, [$id_zone]);
}
// On remet tout dans les métas
$zones_si_connexion = implode(',', array_unique($zones_si_connexion));
ecrire_config('accesrestreint_zones_si_connexion', $zones_si_connexion);
}
return $flux;
}

15
action/acceder_document.php

@ -1,14 +1,10 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2009 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
@ -31,5 +27,4 @@ function action_acceder_document_dist() {
$api_docrestreint = charger_fonction('api_docrestreint', 'action');
return $api_docrestreint("$arg/$cle/$f");
}

16
action/affecter_zone.php

@ -1,9 +1,11 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -13,15 +15,17 @@ function action_affecter_zone_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if (preg_match(',^([0-9]+|-1)-([a-z]+)-([0-9]+|-1)$,', $arg, $regs)
and $regs[2]=='auteur') {
if (
preg_match(',^([0-9]+|-1)-([a-z]+)-([0-9]+|-1)$,', $arg, $regs)
and $regs[2] == 'auteur'
) {
$id_zone = intval($regs[1]);
$id_auteur = intval($regs[3]);
include_spip('action/editer_zone');
if ($id_auteur==-1) {
if ($id_auteur == -1) {
$id_auteur = sql_allfetsel('id_auteur', 'spip_auteurs', "statut!='poub'");
$id_auteur = array_column($id_auteur, 'id_auteur');
}
zone_lier($id_zone=='-1'?'':$id_zone, 'auteur', $id_auteur);
zone_lier($id_zone == '-1' ? '' : $id_zone, 'auteur', $id_auteur);
}
}

88
action/api_docrestreint.php

@ -1,14 +1,10 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2009 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
@ -82,7 +78,7 @@ function action_api_docrestreint_dist($arg = null) {
* Liste les sous répertoires de IMG qui donnent accès aux fichiers
* systématiquement (sans autorisations particulières).
**/
$repertoires_autorises = pipeline('accesrestreint_repertoires_toujours_autorises', array('nl'));
$repertoires_autorises = pipeline('accesrestreint_repertoires_toujours_autorises', ['nl']);
if ($Document->est_dans_repertoire($repertoires_autorises)) {
$Document->status = 200;
@ -123,8 +119,10 @@ function action_api_docrestreint_dist($arg = null) {
// ETag pour gerer le status 304
$ETag = $Document->get_Etag();
if (isset($_SERVER['HTTP_IF_NONE_MATCH'])
and $_SERVER['HTTP_IF_NONE_MATCH'] == $ETag) {
if (
isset($_SERVER['HTTP_IF_NONE_MATCH'])
and $_SERVER['HTTP_IF_NONE_MATCH'] == $ETag
) {
$Document->status = 304; // Not modified
accesrestreint_afficher_document_selon_status($Document);
exit;
@ -231,16 +229,15 @@ function accesrestreint_afficher_document(Accesrestreint_document $Document) {
$doc['inclus'] = 'oui';
}
// On passe les infos précises du document à afficher dans un pipeline
$doc = pipeline('accesrestreint_afficher_document', array(
'args' => array('document' => $Document),
$doc = pipeline('accesrestreint_afficher_document', [
'args' => ['document' => $Document],
'data' => $doc,
));
]);
accesrestreint_envoyer_fichier($chemin_fichier, $Document->get_mime_type(), $doc['inclus'] == 'non');
} else {
accesrestreint_envoyer_fichier($chemin_fichier, $Document->get_mime_type());
}
}
/**
@ -256,7 +253,7 @@ function accesrestreint_afficher_document(Accesrestreint_document $Document) {
* @param int $expire
* @throws Exception
*/
function accesrestreint_envoyer_fichier($fileName, $contentType = 'application/octet-stream', $attachment = false, $expire=3600){
function accesrestreint_envoyer_fichier($fileName, $contentType = 'application/octet-stream', $attachment = false, $expire = 3600) {
accesrestreint_envoyer_fichier_entetes($fileName, $contentType, $attachment, $expire);
if (isset($_SERVER['HTTP_RANGE'])) {
@ -275,7 +272,7 @@ function accesrestreint_envoyer_fichier($fileName, $contentType = 'application/o
* @param false $attachment
* @param int $expire
*/
function accesrestreint_envoyer_fichier_entetes($fileName, $contentType = 'application/octet-stream', $attachment = false, $expire=3600){
function accesrestreint_envoyer_fichier_entetes($fileName, $contentType = 'application/octet-stream', $attachment = false, $expire = 3600) {
// toujours envoyer un content type, meme vide !
header('Accept-Ranges: bytes');
header('Content-Type: ' . $contentType);
@ -305,10 +302,10 @@ function accesrestreint_envoyer_fichier_entetes($fileName, $contentType = 'appli
* @param string $fileName
* @param string $contentType
*/
function accesrestreint_envoyer_fichier_entier($fileName, $contentType = 'application/octet-stream'){
function accesrestreint_envoyer_fichier_entier($fileName, $contentType = 'application/octet-stream') {
if ($size = filesize($fileName)) {
header('Content-Length: '. $size);
header('Content-Length: ' . $size);
}
readfile($fileName);
@ -323,12 +320,12 @@ function accesrestreint_envoyer_fichier_entier($fileName, $contentType = 'applic
* @param string $contentType
* @throws Exception
*/
function accesrestreint_envoyer_fichier_partie($fileName, $contentType = 'application/octet-stream'){
if (!file_exists($fileName)){
function accesrestreint_envoyer_fichier_partie($fileName, $contentType = 'application/octet-stream') {
if (!file_exists($fileName)) {
throw new \Exception(sprintf('File not found: %s', $fileName));
}
if (!is_readable($fileName)){
if (!is_readable($fileName)) {
throw new \Exception(sprintf('File not readable: %s', $fileName));
}
@ -346,46 +343,46 @@ function accesrestreint_envoyer_fichier_partie($fileName, $contentType = 'applic
//header(sprintf('Content-Type: %s', $contentType), true);
### Parse Content-Range header for byte offsets, looks like "bytes=11525-" OR "bytes=11525-12451"
if (isset($_SERVER['HTTP_RANGE']) && preg_match('%bytes=(\d+)-(\d+)?%i', $_SERVER['HTTP_RANGE'], $match)){
if (isset($_SERVER['HTTP_RANGE']) && preg_match('%bytes=(\d+)-(\d+)?%i', $_SERVER['HTTP_RANGE'], $match)) {
### Offset signifies where we should begin to read the file
$byteOffset = (int)$match[1];
### Length is for how long we should read the file according to the browser, and can never go beyond the file size
if (isset($match[2])){
if (isset($match[2])) {
$finishBytes = (int)$match[2];
$byteLength = $finishBytes+1;
$byteLength = $finishBytes + 1;
} else {
$finishBytes = $fileSize-1;
$finishBytes = $fileSize - 1;
}
$cr_header = sprintf('Content-Range: bytes %d-%d/%d', $byteOffset, $finishBytes, $fileSize);
header("HTTP/1.1 206 Partial content");
header('HTTP/1.1 206 Partial content');
header($cr_header); ### Decrease by 1 on byte-length since this definition is zero-based index of bytes being sent
}
$byteRange = $byteLength-$byteOffset;
$byteRange = $byteLength - $byteOffset;
header(sprintf('Content-Length: %d', $byteRange));
header(sprintf('Expires: %s', date('D, d M Y H:i:s', time()+60*60*24*90) . ' GMT'));
header(sprintf('Expires: %s', date('D, d M Y H:i:s', time() + 60 * 60 * 24 * 90) . ' GMT'));
$buffer = ''; ### Variable containing the buffer
$bufferSize = 512*16; ### Just a reasonable buffer size
$bufferSize = 512 * 16; ### Just a reasonable buffer size
$bytePool = $byteRange; ### Contains how much is left to read of the byteRange
if (!$handle = fopen($fileName, 'r')){
throw new \Exception(sprintf("Could not get handle for file %s", $fileName));
if (!$handle = fopen($fileName, 'r')) {
throw new \Exception(sprintf('Could not get handle for file %s', $fileName));
}
if (fseek($handle, $byteOffset, SEEK_SET)==-1){
throw new \Exception(sprintf("Could not seek to byte offset %d", $byteOffset));
if (fseek($handle, $byteOffset, SEEK_SET) == -1) {
throw new \Exception(sprintf('Could not seek to byte offset %d', $byteOffset));
}
while ($bytePool>0){
while ($bytePool > 0) {
$chunkSizeRequested = min($bufferSize, $bytePool); ### How many bytes we request on this iteration
### Try readin $chunkSizeRequested bytes from $handle and put data in $buffer
@ -395,7 +392,7 @@ function accesrestreint_envoyer_fichier_partie($fileName, $contentType = 'applic
$chunkSizeActual = strlen($buffer);
### If we didn't get any bytes that means something unexpected has happened since $bytePool should be zero already
if ($chunkSizeActual==0){
if ($chunkSizeActual == 0) {
### For production servers this should go in your php error log, since it will break the output
trigger_error('Chunksize became 0', E_USER_WARNING);
break;
@ -423,7 +420,6 @@ function accesrestreint_envoyer_fichier_partie($fileName, $contentType = 'applic
* quel type de status http transmettre.
**/
class Accesrestreint_document {
/**
* Identifiant du document demandé, si connu
*
@ -567,7 +563,7 @@ class Accesrestreint_document {
return false;
}
if (is_string($repertoires)) {
$repertoires = array($repertoires);
$repertoires = [$repertoires];
}
$repertoires = array_filter($repertoires);
@ -583,7 +579,7 @@ class Accesrestreint_document {
public function est_autorise() {
$doc = $this->get_spip_document();
if (!$doc) {
spip_log('acces interdit, document hors de spip_documents','accesrestreint');
spip_log('acces interdit, document hors de spip_documents', 'accesrestreint');
return false;
}
@ -591,7 +587,7 @@ class Accesrestreint_document {
// (perf issue : toutes les urls ont en principe cette cle fournie dans la page au moment du calcul de la page)
if ($this->cle_action && !defined('ACCES_RESTREINT_FORCE_AUTORISE')) {
if ($this->cle_action !== accesrestreint_calculer_cle_document($doc['id_document'], $this->_fichier)) {
spip_log("acces interdit $this->cle_action erronee pour #".$doc['id_document'].' : '.$this->_fichier,'accesrestreint');
spip_log("acces interdit $this->cle_action erronee pour #" . $doc['id_document'] . ' : ' . $this->_fichier, 'accesrestreint');
return false;
}
return true;
@ -603,7 +599,7 @@ class Accesrestreint_document {
}
if (!autoriser('voir', 'document', $doc['id_document'])) {
spip_log('acces interdit, pas autorise a voir le document #'.$doc['id_document'].' : '.$this->_fichier,'accesrestreint');
spip_log('acces interdit, pas autorise a voir le document #' . $doc['id_document'] . ' : ' . $this->_fichier, 'accesrestreint');
return false;
}
@ -622,8 +618,8 @@ class Accesrestreint_document {
static $doc = null;
if (is_null($doc)) {
include_spip('inc/documents');
$where = 'documents.fichier = '.sql_quote(set_spip_doc($this->get_chemin_complet_fichier()))
. ($this->id_document ? ' AND documents.id_document='.intval($this->id_document): '');
$where = 'documents.fichier = ' . sql_quote(set_spip_doc($this->get_chemin_complet_fichier()))
. ($this->id_document ? ' AND documents.id_document=' . intval($this->id_document) : '');
spip_log($where, 'accesrestreint' . _LOG_DEBUG);
$doc = sql_fetsel(
@ -634,7 +630,7 @@ class Accesrestreint_document {
spip_log($doc, 'accesrestreint' . _LOG_DEBUG);
if (!$doc) {
$doc = array();
$doc = [];
}
}
return $doc;
@ -663,7 +659,7 @@ class Accesrestreint_document {
public function get_ETag() {
static $ETag = null;
if (is_null($ETag)) {
$ETag = md5($this->get_chemin_complet_fichier() . ': '. filemtime($this->get_chemin_complet_fichier()));
$ETag = md5($this->get_chemin_complet_fichier() . ': ' . filemtime($this->get_chemin_complet_fichier()));
}
return $ETag;
}

28
action/autoriser.php

@ -1,14 +1,10 @@
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2008 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
@ -27,10 +23,12 @@ include_spip('base/abstract_sql');
function action_autoriser_dist() {
$arg = intval(_request('arg'));
if (!autoriser('voir', 'document', $arg)
or !($row = sql_fetsel('fichier', 'spip_documents', 'id_document='.intval($arg)))
if (
!autoriser('voir', 'document', $arg)
or !($row = sql_fetsel('fichier', 'spip_documents', 'id_document=' . intval($arg)))
or !($file = $row['fichier'])
or !(file_exists($file))) {
or !(file_exists($file))
) {
spip_log('Acces refuse (restreint) au document ' . $arg . ': ' . $file, 'accesrestreint');
redirige_par_entete('./?page=404');
} else {
@ -44,13 +42,13 @@ function action_autoriser_dist() {
$ct = mime_content_type($file);
$cl = filesize($file);
$filename = basename($file);
header('Content-Type: '. $ct);
header('Content-Disposition: attachment; filename="'. $filename .';');
header('Content-Type: ' . $ct);
header('Content-Disposition: attachment; filename="' . $filename . ';');
if ($dcc) {
header('Content-Description: ' . $dcc);
}
if ($cl) {
header('Content-Length: '. $cl);
header('Content-Length: ' . $cl);
}
header('Content-Transfer-Encoding: binary');

80
action/editer_zone.php

@ -1,9 +1,11 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -27,7 +29,7 @@ function action_editer_zone_dist($arg = null) {
}
if (!$id_zone) {
return array(0, ''); // erreur
return [0, '']; // erreur
}
if (_request('droits_admin')) {
@ -36,7 +38,7 @@ function action_editer_zone_dist($arg = null) {
$err = zone_modifier($id_zone);
return array($id_zone,$err);
return [$id_zone,$err];
}
@ -52,31 +54,31 @@ function zone_inserer() {
return false;
}
$champs = array(
'publique'=>'non',
'privee'=>'non',
);
$champs = [
'publique' => 'non',
'privee' => 'non',
];
// Envoyer aux plugins
$champs = pipeline(
'pre_insertion',
array(
'args' => array(
[
'args' => [
'table' => 'spip_zones',
),
],
'data' => $champs
)
]
);
$id_zone = sql_insertq('spip_zones', $champs);
pipeline(
'post_insertion',
array(
'args' => array(
[
'args' => [
'table' => 'spip_zones',
'id_objet' => $id_zone
),
],
'data' => $champs
)
]
);
return $id_zone;
}
@ -99,14 +101,14 @@ function zone_modifier($id_zone, $set = null) {
if (isset($desc['champs_editables']) and is_array($desc['champs_editables'])) {
$white = $desc['champs_editables'];
} else {
$white = array('titre', 'descriptif','publique', 'privee');
$white = ['titre', 'descriptif','publique', 'privee'];
}
$c = collecter_requests(
// white list
$white,
// black list
array(),
[],
// donnees eventuellement fournies
$set
);
@ -119,17 +121,19 @@ function zone_modifier($id_zone, $set = null) {
$indexation = true;
}
if ($err = objet_modifier_champs(
'zone',
$id_zone,
array(
if (
$err = objet_modifier_champs(
'zone',
$id_zone,
[
'data' => $set,
'nonvide' => array('titre' => _T('info_sans_titre')),
'nonvide' => ['titre' => _T('info_sans_titre')],
'invalideur' => $invalideur,
'indexation' => $indexation
),
$c
)) {
],
$c
)
) {
return $err;
}
@ -159,31 +163,31 @@ function zone_lier($zones, $type, $ids, $operation = 'add') {
$zones = '*';
}
if (!$ids) {
$ids = array();
$ids = [];
} elseif (!is_array($ids)) {
$ids = array($ids);
$ids = [$ids];
}
if ($operation=='del') {
if ($operation == 'del') {
// on supprime les ids listes
objet_dissocier(array('zone' => $zones), array($type => $ids));
objet_dissocier(['zone' => $zones], [$type => $ids]);
} else {
// si c'est une affectation exhaustive, supprimer les existants qui ne sont pas dans ids
// si c'est un ajout, ne rien effacer
if ($operation=='set') {
objet_dissocier(array('zone' => $zones), array($type => array('NOT', $ids)));
if ($operation == 'set') {
objet_dissocier(['zone' => $zones], [$type => ['NOT', $ids]]);
// bugfix temporaire : objet_associer ne gere pas id=0
if (!in_array(0, $ids) and $type == 'rubrique') {
sql_delete('spip_zones_liens', 'id_zone='.intval($zones).' AND id_objet=0 AND objet='.sql_quote($type));
sql_delete('spip_zones_liens', 'id_zone=' . intval($zones) . ' AND id_objet=0 AND objet=' . sql_quote($type));
}
}
foreach ($ids as $id) {
if (autoriser('affecterzones', $type, $id, null, array('id_zone' => $zones))) {
if (autoriser('affecterzones', $type, $id, null, ['id_zone' => $zones])) {
// bugfix temporaire : objet_associer ne gere pas id=0
if ($id == 0 and $type == 'rubrique') {
sql_insertq('spip_zones_liens', array('id_zone' => $zones, 'id_objet' => $id, 'objet' => $type));
sql_insertq('spip_zones_liens', ['id_zone' => $zones, 'id_objet' => $id, 'objet' => $type]);
} else {
objet_associer(array('zone' => $zones), array($type => $id));
objet_associer(['zone' => $zones], [$type => $id]);
}
}
}
@ -200,10 +204,10 @@ function zone_lier($zones, $type, $ids, $operation = 'add') {
*/
function zone_supprimer($id_zone) {
include_spip('action/editer_liens');
objet_dissocier(array('zone' => $id_zone), array('*' => '*'));
objet_dissocier(['zone' => $id_zone], ['*' => '*']);
// puis la zone
sql_delete('spip_zones', 'id_zone='.intval($id_zone));
sql_delete('spip_zones', 'id_zone=' . intval($id_zone));
$id_zone = 0;
return $id_zone;

14
action/retirer_zone.php

@ -1,9 +1,11 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -17,10 +19,10 @@ function action_retirer_zone_dist() {
$type = $regs[2];
$id_objet = intval($regs[3]);
include_spip('action/editer_zone');
if ($id_objet=='-1') {
zone_lier($id_zone, $type, array(), 'set');
} elseif ($id_zone=='-1') {
zone_lier(array(), $type, $id_objet, 'set');
if ($id_objet == '-1') {
zone_lier($id_zone, $type, [], 'set');
} elseif ($id_zone == '-1') {
zone_lier([], $type, $id_objet, 'set');
} else {
zone_lier($id_zone, $type, $id_objet, 'del');
}

12
action/supprimer_zone.php

@ -1,9 +1,11 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -12,8 +14,10 @@ function action_supprimer_zone_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if ($id_zone = intval($arg)
and autoriser('supprimer', 'zone', $id_zone)) {
if (
$id_zone = intval($arg)
and autoriser('supprimer', 'zone', $id_zone)
) {
include_spip('action/editer_zone');
zone_supprimer($id_zone);
}

36
base/accesrestreint.php

@ -1,11 +1,11 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -17,20 +17,20 @@ function accesrestreint_declarer_tables_interfaces($interface) {
//-- Table des tables ----------------------------------------------------
$interface['table_des_tables']['zones']='zones';
$interface['table_des_tables']['zones'] = 'zones';
return $interface;
}
function accesrestreint_declarer_tables_objets_sql($tables) {
$tables['spip_zones'] = array(
$tables['spip_zones'] = [
'texte_modifier' => 'accesrestreint:modifier_zone',
'texte_creer' => 'accesrestreint:creer_zone',
'texte_objets' => 'accesrestreint:titre_zones_acces',
'texte_objet' => 'accesrestreint:titre_zone_acces',
'texte_ajouter' => 'accesrestreint:texte_ajouter_zone',
'texte_creer_associer' => 'accesrestreint:texte_creer_associer_zone',
'info_aucun_objet'=> 'accesrestreint:info_aucune_zone',
'info_aucun_objet' => 'accesrestreint:info_aucune_zone',
'info_1_objet' => 'accesrestreint:info_1_zone',
'info_nb_objets' => 'accesrestreint:info_nb_zones',
'url_voir' => 'zone_edit',
@ -38,8 +38,8 @@ function accesrestreint_declarer_tables_objets_sql($tables) {
'page' => false,
'principale' => 'oui',
'champs_editables' => array('titre', 'descriptif', 'publique', 'privee', 'autoriser_si_connexion'),
'field'=> array(
'champs_editables' => ['titre', 'descriptif', 'publique', 'privee', 'autoriser_si_connexion'],
'field' => [
'id_zone' => 'bigint(21) NOT NULL',
'titre' => "varchar(255) DEFAULT '' NOT NULL",
'descriptif' => "text DEFAULT '' NOT NULL",
@ -47,33 +47,33 @@ function accesrestreint_declarer_tables_objets_sql($tables) {
'privee' => "char(3) DEFAULT 'non' NOT NULL",
'autoriser_si_connexion' => "char(3) DEFAULT 'non' NOT NULL",
'maj' => 'TIMESTAMP'
),
'key' => array(
],
'key' => [
'PRIMARY KEY' => 'id_zone',
),
],
'titre' => "titre AS titre, '' AS lang",
);
];
return $tables;
}
function accesrestreint_declarer_tables_auxiliaires($tables_auxiliaires) {
$spip_zones_liens = array(
$spip_zones_liens = [
'id_zone' => "bigint(21) DEFAULT '0' NOT NULL",
'id_objet' => "bigint(21) DEFAULT '0' NOT NULL",
'objet' => "VARCHAR (25) DEFAULT '' NOT NULL"
);
];
$spip_zones_liens_key = array(
$spip_zones_liens_key = [
'PRIMARY KEY' => 'id_zone,id_objet,objet',
'KEY id_zone' => 'id_zone'
);
];
$tables_auxiliaires['spip_zones_liens'] = array(
$tables_auxiliaires['spip_zones_liens'] = [
'field' => &$spip_zones_liens,
'key' => &$spip_zones_liens_key
);
];
return $tables_auxiliaires;
}

13
formulaires/configurer_accesrestreint.php

@ -1,7 +1,8 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 3.0
* Licence GPL (c) 2006-2014 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
@ -11,16 +12,16 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_configurer_accesrestreint_charger_dist() {
include_spip('inc/config');
$valeurs = array(
$valeurs = [
'accesrestreint_proteger_documents' => lire_config('accesrestreint_proteger_documents', 'non'),
'creer_htpasswd' => lire_config('creer_htpasswd', 'non'),
);
];
return $valeurs;
}
function formulaires_configurer_accesrestreint_traiter_dist() {
$champs = array('accesrestreint_proteger_documents','creer_htpasswd');
$champs = ['accesrestreint_proteger_documents','creer_htpasswd'];
include_spip('inc/config');
$old_config = lire_config('accesrestreint_proteger_documents');
@ -40,5 +41,5 @@ function formulaires_configurer_accesrestreint_traiter_dist() {
$purger('cache');
}
return array('message_ok'=>_T('config_info_enregistree'), 'editable'=>true);
return ['message_ok' => _T('config_info_enregistree'), 'editable' => true];
}

22
formulaires/editer_zone.php

@ -1,9 +1,11 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -29,8 +31,8 @@ include_spip('inc/editer');
* @return string
* Hash du formulaire
*/
function formulaires_editer_zone_identifier_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = array(), $hidden = '') {
return serialize(array(intval($id_zone)));
function formulaires_editer_zone_identifier_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = [], $hidden = '') {
return serialize([intval($id_zone)]);
}
/**
@ -53,7 +55,7 @@ function formulaires_editer_zone_identifier_dist($id_zone = 'new', $retour = '',
* @return string
* Hash du formulaire
*/
function formulaires_editer_zone_charger_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = array(), $hidden = '') {
function formulaires_editer_zone_charger_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = [], $hidden = '') {
$valeurs = formulaires_editer_objet_charger('zone', $id_zone, 0, 0, $retour, $config_fonc, $row, $hidden);
include_spip('inc/accesrestreint');
// charger les rubriques associees a la zone
@ -63,7 +65,7 @@ function formulaires_editer_zone_charger_dist($id_zone = 'new', $retour = '', $a
// cas d'une creation, regardons si l'url propose deja des rubriques
if ($r = _request('rubriques')) {
if (is_numeric($r)) {
$r = array($r);
$r = [$r];
}
if (is_array($r)) {
$valeurs['rubriques'] = $r;
@ -80,7 +82,7 @@ function formulaires_editer_zone_charger_dist($id_zone = 'new', $retour = '', $a
* @return array
*/
function zones_edit_config() {
return array();
return [];
}
/**
@ -101,8 +103,8 @@ function zones_edit_config() {
* @return string
* Hash du formulaire
*/
function formulaires_editer_zone_verifier_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = array(), $hidden = '') {
$erreurs = formulaires_editer_objet_verifier('zone', $id_zone, array('titre'));
function formulaires_editer_zone_verifier_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = [], $hidden = '') {
$erreurs = formulaires_editer_objet_verifier('zone', $id_zone, ['titre']);
return $erreurs;
}
@ -124,7 +126,7 @@ function formulaires_editer_zone_verifier_dist($id_zone = 'new', $retour = '', $
* @return string
* Hash du formulaire
*/
function formulaires_editer_zone_traiter_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = array(), $hidden = '') {
function formulaires_editer_zone_traiter_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = [], $hidden = '') {
if (_request('publique') !== 'oui') {
set_request('publique', 'non');
}

75
inc/accesrestreint.php

@ -1,7 +1,8 @@
<?php
/**
* Plugin Acces Restreint 3.0 pour Spip 2.0
* Licence GPL (c) 2006-2008 Cedric Morin
* Plugin Acces Restreint 5.0 pour Spip 4.x
* Licence GPL (c) depuis 2006 Cedric Morin
*
*/
@ -34,7 +35,7 @@ function accesrestreint_liste_zones_autorisees($zones = '', $id_auteur = null) {
$zones = array_unique(array_merge(explode(',', $zones), $new));
sort($zones);
$zones = join(',', $zones);
} else if ($new) {
} elseif ($new) {
$zones = join(',', $new);
}
}
@ -53,12 +54,12 @@ function accesrestreint_liste_zones_autorisees($zones = '', $id_auteur = null) {
*/
function accesrestreint_liste_contenu_zone_rub_direct($id_zone_ou_where) {
include_spip('base/abstract_sql');
$liste_rubriques=array();
$liste_rubriques = [];
// Liste des rubriques directement liees a la zone
$where = array();
$where = [];
if (is_numeric($id_zone_ou_where)) {
$where[] = 'z.id_zone='.intval($id_zone_ou_where);
$where[] = 'z.id_zone=' . intval($id_zone_ou_where);
} elseif ($id_zone_ou_where) {
$where = $id_zone_ou_where;
}
@ -96,7 +97,7 @@ function accesrestreint_liste_contenu_zone_rub($id_zone_ou_where) {
$liste_rubriques = calcul_branche_in(join(',', $liste_rubriques));
if (!strlen($liste_rubriques)) {
return array();
return [];
}
// On remet sous forme de tableau
@ -124,7 +125,7 @@ function accesrestreint_liste_parentee_zone_rub($id_zone_ou_where) {
$id = $liste_rubriques;
while ($parents = sql_allfetsel('id_parent', 'spip_rubriques', sql_in('id_rubrique', $id))) {
$parents = array_column($parents, 'id_parent');
$parents = array_diff($parents, array(0));
$parents = array_diff($parents, [0]);
$id = $parents;
$liste_rubriques = array_merge($liste_rubriques, $parents);
}
@ -139,15 +140,15 @@ function accesrestreint_liste_parentee_zone_rub($id_zone_ou_where) {
* @return array
*/
function accesrestreint_liste_zones_appartenance_auteur($id_auteur) {
static $liste_zones = array();
static $liste_zones = [];
if (!isset($liste_zones[$id_auteur])) {
include_spip('base/abstract_sql');
// On ajoute les zones liées directement à l'utilisateurice
$liste_zones[$id_auteur] = sql_allfetsel('id_zone', 'spip_zones_liens', "objet='auteur' AND id_objet=".intval($id_auteur));
$liste_zones[$id_auteur] = sql_allfetsel('id_zone', 'spip_zones_liens', "objet='auteur' AND id_objet=" . intval($id_auteur));
$liste_zones[$id_auteur] = array_column($liste_zones[$id_auteur], 'id_zone');
// On ajoute toutes les zones qui ont l'option "autoriser_si_connexion" si id_auteur ok
// On va les chercher dans la meta stockée
if (
@ -159,7 +160,7 @@ function accesrestreint_liste_zones_appartenance_auteur($id_auteur) {
$liste_zones[$id_auteur] = array_unique(array_merge($liste_zones[$id_auteur], $zones_si_connexion));
}
}
return $liste_zones[$id_auteur];
}
@ -184,9 +185,9 @@ function accesrestreint_test_appartenance_zone_auteur($id_zone, $id_auteur) {
*/
function accesrestreint_liste_contenu_zone_auteur($id_zone) {
include_spip('base/abstract_sql');
$liste_auteurs=array();
$liste_auteurs = [];
$liste_auteurs = sql_allfetsel('id_objet', 'spip_zones_liens', "objet='auteur' AND id_zone=".intval($id_zone));
$liste_auteurs = sql_allfetsel('id_objet', 'spip_zones_liens', "objet='auteur' AND id_zone=" . intval($id_zone));
$liste_auteurs = array_column($liste_auteurs, 'id_objet');
return $liste_auteurs;
@ -208,8 +209,8 @@ function accesrestreint_liste_rubriques_exclues($publique = true, $id_auteur = n
include_spip('inc/session');
$id_visiteur = session_get('id_auteur');
// cache static
static $liste_rub_exclues = array();
static $liste_rub_inclues = array();
static $liste_rub_exclues = [];
static $liste_rub_inclues = [];
if ($quelquesoit_visibilite) {
$publique = 'tout';
}
@ -220,7 +221,7 @@ function accesrestreint_liste_rubriques_exclues($publique = true, $id_auteur = n
}
if (!isset($liste_rub_exclues[$id_auteur][$publique]) or !is_array($liste_rub_exclues[$id_auteur][$publique])) {
$where = array();
$where = [];
// Ne selectionner que les zones pertinentes
if (!$quelquesoit_visibilite) {
@ -269,7 +270,7 @@ function accesrestreint_liste_rubriques_exclues($publique = true, $id_auteur = n
if (defined('AR_TYPE_RESTRICTION') and AR_TYPE_RESTRICTION == 'faible') {
// Ne faire la recherche que si la variable statique n'est pas déjà définie
if (!isset($liste_rub_inclues[$id_auteur][$publique]) or !is_array($liste_rub_inclues[$id_auteur][$publique])) {
$where = array();
$where = [];
// Ne selectionner que les zones pertinentes
if (!$quelquesoit_visibilite) {
if ($publique) {
@ -326,12 +327,12 @@ function accesrestreint_liste_contenu_zone_objets($objet, $id_zone_ou_where) {
// Normalisation du nom
$objet = objet_type($objet);
$liste_objets = array();
$liste_objets = [];
// Liste des objets directement liés à la zone
$where = array();
$where = [];