4 require_once __DIR__
. '/../_inc.php';
6 if ($user['droits']['membres'] < Membres
::DROIT_ECRITURE
)
8 throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
11 if (empty($_GET['id']) ||
!is_numeric($_GET['id']))
13 throw new UserException("Argument du numéro de membre manquant.");
16 $id = (int) $_GET['id'];
18 $membre = $membres->get($id);
22 throw new UserException("Ce membre n'existe pas.");
25 $cats = new Membres_Categories
;
26 $champs = $config->get('champs_membres');
28 // Protection contre la modification des admins par des membres moins puissants
29 $membre_cat = $cats->get($membre['id_categorie']);
30 if (($membre_cat['droit_membres'] == Membres
::DROIT_ADMIN
)
31 && ($user['droits']['membres'] < Membres
::DROIT_ADMIN
))
33 throw new UserException("Seul un membre admin peut modifier un autre membre admin.");
38 if (!empty($_POST['save']))
40 if (!utils
::CSRF_check('edit_member_'.$id))
42 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
44 elseif (utils
::post('passe') != utils
::post('repasse'))
46 $error = 'La vérification ne correspond pas au mot de passe.';
53 foreach ($champs->getAll() as $key=>$config)
55 $data[$key] = utils
::post($key);
58 if ($user['droits']['membres'] == Membres
::DROIT_ADMIN
)
60 $data['id_categorie'] = utils
::post('id_categorie');
61 $data['id'] = utils
::post('id');
64 $membres->edit($id, $data);
66 utils
::redirect('/admin/membres/fiche.php?id='.(int)$id);
68 catch (UserException
$e)
70 $error = $e->getMessage();
75 $tpl->assign('error', $error);
76 $tpl->assign('passphrase', utils
::suggestPassword());
77 $tpl->assign('champs', $champs->getAll());
79 $tpl->assign('membres_cats', $cats->listSimple());
80 $tpl->assign('current_cat', utils
::post('id_categorie') ?
: $membre['id_categorie']);
82 $tpl->assign('can_change_id', $user['droits']['membres'] == Membres
::DROIT_ADMIN
);
84 $tpl->assign('membre', $membre);
86 $tpl->display('admin/membres/modifier.tpl');