Browse Source

Gestion des autorisations : tout le monde peut lire, mais seul le webmestre peut modifier et déclarer des auteurs autorisés à modifier

master
nicod_ 1 year ago
parent
commit
f940943425
  1. 2
      README.md
  2. 6
      formulaires/configurer_opquast.html
  3. 6
      lang/opquast_fr.php
  4. 20
      opquast_autorisations.php
  5. 6
      opquast_fonctions.php
  6. 7
      prive/objets/liste/opquast_criteres.html
  7. 7
      prive/objets/liste/opquast_criteres_fonctions.php
  8. 2
      prive/squelettes/contenu/configurer_opquast.html
  9. 5
      prive/style_prive_plugin_opquast.html

2
README.md

@ -6,8 +6,6 @@ A terme, ce plugin évoluera pour permettre de gérer plusieurs check-lists, pro
## Todo
[ ] Tout le monde peut lire, seuls le webmestre peut modifier et déclarer des auteurs autorisés à modifier
[ ] Pouvoir ajouter une note (textarea) sur chaque critère
- notes liées aux auteurs ? ou globale ?

6
formulaires/configurer_opquast.html

@ -11,6 +11,12 @@
<div>
#ACTION_FORMULAIRE{#ENV{action}}
[(#SET{admins, <:opquast:auteurs_autorises_explication:/>})]
<BOUCLE_aut(AUTEURS){id_auteur IN #VAL|opquast_get_admins_ids}{tout}>
[(#SET{admins, #GET{admins}|concat{'<br>&bull; ',#NOM}})]
</BOUCLE_aut>
[(#SAISIE{input, admins, label=<:opquast:auteurs_autorises:/>, explication=#GET{admins}})]
<input type="hidden" name="_meta_casier" value="opquast"/>
<p class="boutons"><span class="image_loading">&nbsp;</span>
<input type="submit" class="submit" value="<:bouton_enregistrer:/>"/>

6
lang/opquast_fr.php

@ -7,6 +7,10 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[ $GLOBALS['idx_lang'] ] = array(
// A
'auteurs_autorises' => 'Auteurs autorisés',
'auteurs_autorises_explication' => '(numéros séparés par un espace ou une virgule)',
// O
'opquast_titre' => 'Check-list Opquast',
@ -15,7 +19,7 @@ $GLOBALS[ $GLOBALS['idx_lang'] ] = array(
// S
'statut' => 'Statut',
// T
'opquast_tag' => 'Thématique',
'titre_page_configurer_opquast' => 'Configuration',

20
opquast_autorisations.php

@ -36,7 +36,7 @@ function opquast_autoriser() {
* @return bool true s'il a le droit, false sinon
**/
function autoriser_opquastcriteres_menu_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
return true;
}
/**
@ -51,23 +51,9 @@ function autoriser_opquastcriteres_menu_dist($faire, $type, $id, $qui, $opt) {
* @return bool true s'il a le droit, false sinon
**/
function autoriser_opquastcritere_voir_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
return true;
}
/**
* Autorisation de modifier (opquastcritere)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
function autoriser_opquastcritere_modifier_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
}
/**
* Autorisation de changer le statut (opquastcritere)
*
@ -80,7 +66,7 @@ function autoriser_opquastcritere_modifier_dist($faire, $type, $id, $qui, $opt)
* @return bool true s'il a le droit, false sinon
**/
function autoriser_opquastcritere_instituer_dist($faire, $type, $id, $qui, $opt) {
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
return $qui['webmestre']=='oui' || in_array($qui['id_auteur'],opquast_get_admins_ids());
}
/**

6
opquast_fonctions.php

@ -13,6 +13,12 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function opquast_get_admins_ids() {
$id_admins = preg_replace('#[^\d]+#', ',', trim(lire_config('opquast/admins')));
return explode(',', $id_admins);
}
function lien_opquast_critere($lien) {
return 'https://checklists.opquast.com'.$lien;
}

7
prive/objets/liste/opquast_criteres.html

@ -18,9 +18,10 @@
<a class="opquast_critere_item__lien" href="[(#ID_OPQUAST_CRITERE|generer_url_entite{opquast_critere})]">#TITRE</a>
</div>
<div class="opquast_critere_item__statut">
<div class="ajax">
#FORMULAIRE_OPQUAST_CRITERE_STATUT{#ID_OPQUAST_CRITERE,#STATUT}
</div>
[(#AUTORISER{instituer, opquastcritere}|?{
[<div class="ajax">(#FORMULAIRE_OPQUAST_CRITERE_STATUT{#ID_OPQUAST_CRITERE,#STATUT})</div>],
[<div class="opquast_critere_item__statut_libelle bg_statut--#STATUT">(#VAL{opquast_critere}|statut_texte_instituer{#STATUT})</div>]
})]
</div>
</div>
<div class="opquast_critere_item__contenu">

7
prive/objets/liste/opquast_criteres_fonctions.php

@ -0,0 +1,7 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/puce_statut');

2
prive/squelettes/contenu/configurer_opquast.html

@ -5,5 +5,5 @@
</h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_opquast
#FORMULAIRE_CONFIGURER_OPQUAST
</div>

5
prive/style_prive_plugin_opquast.html

@ -93,6 +93,11 @@
}
.opquast_critere_item__statut {
min-width:140px;
font-weight: normal;
}
.opquast_critere_item__statut_libelle {
display: block;
padding: 2px 4px;
}
.opquast_critere_item__contenu {
display: none;

Loading…
Cancel
Save