Browse Source

Ajouter proprement une option qui donne accès à une Zone pour TOUTES les personnes connectées d'un coup = plus besoin d'ajouter des gens un par un.

v3.15
rastapopoulos@spip.org 5 years ago
parent
commit
d75914b292
  1. 6
      accesrestreint_administrations.php
  2. 3
      base/accesrestreint.php
  3. 6
      formulaires/editer_zone.html
  4. 3
      formulaires/editer_zone.php
  5. 14
      inc/accesrestreint.php
  6. 2
      lang/accesrestreint_fr.php
  7. 5
      paquet.xml
  8. 6
      prive/squelettes/inclure/acces_restreint.html

6
accesrestreint_administrations.php

@ -61,7 +61,11 @@ function accesrestreint_upgrade($nom_meta_base_version, $version_cible) {
$maj['0.4.2'] = array(
array('accesrestreint_upgrade_protection_documents'),
);
// autoriser_si_connexion
$maj['0.5.0'] = array(
array('maj_tables', array('spip_zones')),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}

3
base/accesrestreint.php

@ -38,13 +38,14 @@ function accesrestreint_declarer_tables_objets_sql($tables) {
'page' => false,
'principale' => 'oui',
'champs_editables' => array('titre', 'descriptif','publique', 'privee'),
'champs_editables' => array('titre', 'descriptif', 'publique', 'privee', 'autoriser_si_connexion'),
'field'=> array(
'id_zone' => 'bigint(21) NOT NULL',
'titre' => "varchar(255) DEFAULT '' NOT NULL",
'descriptif' => "text DEFAULT '' NOT NULL",
'publique' => "char(3) DEFAULT 'oui' NOT NULL",
'privee' => "char(3) DEFAULT 'non' NOT NULL",
'autoriser_si_connexion' => "char(3) DEFAULT 'non' NOT NULL",
'maj' => 'TIMESTAMP'
),
'key' => array(

6
formulaires/editer_zone.html

@ -14,7 +14,7 @@
]<input type="text" class="text" name="titre" id="titre" value="#ENV{titre}" />
</li>
[(#ENV{id_zone}|intval|non|et{#AUTORISER{modifier,zone}})
<li class="editer editer_droit_admin">
<li class="editer editer_droits_admin">
<div class="choix"><input type="checkbox" name="droits_admin" value="oui" id="droits_admin" checked="checked" />
<label for="droits_admin"><:accesrestreint:ajouter_droits_auteur:></label></div>
</li>]
@ -24,6 +24,10 @@
<div class="choix"><input type="checkbox" name="privee" value="oui" id="privee"[ (#PRIVEE|=={oui}|oui)checked="checked"] />
<label for="privee"><:accesrestreint:zone_restreinte_espace_prive:></label></div>
</li>
<li class="editer editer_autoriser_si_connexion">
<div class="choix"><input type="checkbox" name="autoriser_si_connexion" value="oui" id="autoriser_si_connexion"[ (#AUTORISER_SI_CONNEXION|=={oui}|oui)checked="checked"] />
<label for="autoriser_si_connexion"><:accesrestreint:zone_restreinte_autoriser_si_connexion_label:></label></div>
</li>
<li class="editer editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
<label for="descriptif"><:accesrestreint:descriptif:></label>[
<span class="erreur_message">(#ENV**{erreurs}|table_valeur{descriptif})</span>

3
formulaires/editer_zone.php

@ -49,6 +49,9 @@ function formulaires_editer_zone_traiter_dist($id_zone = 'new', $retour = '', $a
if (_request('privee') !== 'oui') {
set_request('privee', 'non');
}
if (_request('autoriser_si_connexion') !== 'oui') {
set_request('autoriser_si_connexion', 'non');
}
$res = formulaires_editer_objet_traiter('zone', $id_zone, 0, 0, $retour, $config_fonc, $row, $hidden);

14
inc/accesrestreint.php

@ -140,14 +140,22 @@ function accesrestreint_liste_parentee_zone_rub($id_zone_ou_where) {
*/
function accesrestreint_liste_zones_appartenance_auteur($id_auteur) {
static $liste_zones = array();
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] = array_map('reset', $liste_zones[$id_auteur]);
// On ajoute toutes les zones qui ont l'option "autoriser_si_connexion" si id_auteur ok
if ($id_auteur > 0) {
$zones_si_connexion = sql_allfetsel('id_zone', 'spip_zones', 'autoriser_si_connexion = "oui"');
$zones_si_connexion = array_map('reset', $zones_si_connexion);
$liste_zones[$id_auteur] = array_unique(array_merge($liste_zones[$id_auteur], $zones_si_connexion));
}
}
return $liste_zones[$id_auteur];
}

2
lang/accesrestreint_fr.php

@ -12,6 +12,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'aucune_zone' => 'Aucune zone',
'auteur' => '@nb@ auteur',
'auteurs' => '@nb@ auteurs',
'auteurs_tous' => 'Toutes les personnes connectées',
// B
'bouton_configurer_acces' => 'Configuration des accès .htaccess',
@ -94,6 +95,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// Z
'zone_numero' => 'ZONE NUMÉRO :',
'zone_restreinte_autoriser_si_connexion_label' => 'Autoriser l’accès à cette zone à toute personne connectée',
'zone_restreinte_espace_prive' => 'Restreindre l’accès à cette zone dans l’espace privé',
'zone_restreinte_publique' => 'Restreindre l’accès à cette zone dans la partie publique'
);

5
paquet.xml

@ -1,14 +1,13 @@
<paquet
prefix="accesrestreint"
categorie="auteur"
version="3.14.3"
version="3.15.0"
etat="dev"
compatibilite="[3.0.0;3.1.*]"
logo="prive/themes/spip/images/zone-32.png"
schema="0.4.2"
schema="0.5.0"
documentation="http://contrib.spip.net/Acces-Restreint-3-0"
>
<nom>Acces Restreint</nom>
<!-- Gestion de zones d'acces restreint -->

6
prive/squelettes/inclure/acces_restreint.html

@ -18,9 +18,9 @@
<BOUCLE_zones(ZONES){par #ENV{tri,id_zone}}{publique==#ENV{publique,.*}}{privee==#ENV{privee,.*}}{pagination 10}{recherche ?}>
<li class='item zone[ (#ID_ZONE|accesrestreint_acces_zone|?{ok,interdit})][ (#EXPOSE)]'><h3>#TITRE</h3>
<span class='contenu'>
[(#ID_ZONE|accesrestreint_liste_contenu_zone_rub|count|singulier_ou_pluriel{accesrestreint:rubrique,accesrestreint:rubriques})
, ]
[(#ID_ZONE|accesrestreint_liste_contenu_zone_auteur|count|singulier_ou_pluriel{accesrestreint:auteur,accesrestreint:auteurs})]
[(#ID_ZONE|accesrestreint_liste_contenu_zone_rub|count|singulier_ou_pluriel{accesrestreint:rubrique,accesrestreint:rubriques})][,
(#ID_ZONE|accesrestreint_liste_contenu_zone_auteur|count|singulier_ou_pluriel{accesrestreint:auteur,accesrestreint:auteurs})][,
(#AUTORISER_SI_CONNEXION|=={oui}|oui)<:accesrestreint:auteurs_tous:>]
</span>
<span class='descriptif'>#DESCRIPTIF</span>

Loading…
Cancel
Save