ajout autorisations + debut unification form modification / creation

This commit is contained in:
Christophe 2020-08-13 12:02:16 +02:00
parent a57c825c4c
commit 6ea2fd9cb6
2 changed files with 41 additions and 5 deletions

View file

@ -32,3 +32,16 @@ function autoriser_inscrireauteur($faire, $quoi, $id, $qui, $opt) {
return false; return false;
} }
function autoriser_comptespip_administrer_dist($faire, $type, $id, $qui, $opt) {
return in_array($qui['statut'], array('0minirezo'));
}
function autoriser_comptespip_modifier_dist($faire, $type, $id, $qui, $opt) {
if (autoriser('administrer','comptespip')) {
return true;
}
if ($id === $qui['id_auteur']) {
return true;
}
return false;
}

View file

@ -6,9 +6,28 @@ function formulaires_editer_compte_spip_saisies_dist($id_auteur = 'new', $redir
return $saisies; return $saisies;
} }
function comptespip_recupIdauteur($id_auteur){
include_spip('inc/autoriser');
static $id;
if ($id === null) {
if (autoriser("administrer","comptespip") and intval($id_auteur)) {
$id = intval($id_auteur);
}
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
$id = $GLOBALS['visiteur_session']['id_auteur'];
}
$id = 'new';
}
return $id;
}
function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redirect = ''){ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redirect = ''){
$id_auteur = session_get('id_auteur'); $id_auteur = comptespip_recupIdauteur($id_auteur);
$valeurs = [];
if (intval($id_auteur)) {
$valeurs = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur)); $valeurs = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
}
$valeurs['password'] = ''; $valeurs['password'] = '';
$valeurs['password_confirmation'] = ''; $valeurs['password_confirmation'] = '';
@ -21,7 +40,7 @@ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redir
} }
function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){
$id_auteur = session_get('id_auteur'); $id_auteur = comptespip_recupIdauteur($id_auteur);
$erreurs = array(); $erreurs = array();
$mode = lire_config('comptespip/statut'); $mode = lire_config('comptespip/statut');
@ -103,8 +122,13 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redirect = ''){ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redirect = ''){
$saisies = $GLOBALS['comptespip_editer']; $saisies = $GLOBALS['comptespip_editer'];
$id_auteur = session_get('id_auteur'); $id_auteur = comptespip_recupIdauteur($id_auteur);
$retour = []; $retour = [];
include_spip('action/editer_auteur');
if (!intval($id_auteur)) {
$id_auteur = auteur_inserer();
}
if (!empty($saisies)) { if (!empty($saisies)) {
$set = []; $set = [];
@ -117,7 +141,6 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
} }
} }
if (count($set) > 0) { if (count($set) > 0) {
include_spip('action/editer_auteur');
$r = auteur_modifier($id_auteur, $set); $r = auteur_modifier($id_auteur, $set);
} }
} }