diff --git a/controllers/users.php b/controllers/users.php index 2a9e647..94f0971 100755 --- a/controllers/users.php +++ b/controllers/users.php @@ -44,6 +44,8 @@ * @param $csrf : Le jeton CSRF * @param string $_POST['email'] : L'email de l'utilisateur * @param string $_POST['email_confirm'] : Confirmation de l'email de l'utilisateur + * @param string $_POST['password'] : Le mot de passe de l'utilisateur (si vide, générer automatiquement) + * @param string $_POST['password_confirm'] : Confirmation du mot de passe de l'utilisateur * @param boolean $_POST['admin'] : Optionnel : Si l'utilisateur est admin. Par défaut non */ public function create($csrf) @@ -66,7 +68,21 @@ } $email = $_POST['email']; + $no_crypt_password = internalTools::generatePassword(rand(8,12)); + + if ($_POST['password']) + { + if ($_POST['password'] != $_POST['password_confirm']) + { + $_SESSION['errormessage'] = 'Les mots de passes fournis ne correspondent pas.'; + header('Location: ' . $this->generateUrl('users', 'add')); + return false; + } + + $no_crypt_password = $_POST['password']; + } + $password = sha1($no_crypt_password); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) diff --git a/templates/users/add.php b/templates/users/add.php index 5e5b44e..201dab3 100755 --- a/templates/users/add.php +++ b/templates/users/add.php @@ -52,6 +52,20 @@ <input name="email_confirm" class="form-control" type="email" placeholder="Confirmer l'adresse e-mail de l'utilisateur" required> </div> </div> + <div class="form-group"> + <label>Mot de passe (laissez vide pour générer le mot de passe automatiquement)</label> + <div class="form-group input-group"> + <span class="input-group-addon"><span class="fa fa-lock"></span></span> + <input name="password" class="form-control" type="password" placeholder="Mot de passe de l'utilisateur" > + </div> + </div> + <div class="form-group"> + <label>Confirmer le mot de passe</label> + <div class="form-group input-group"> + <span class="input-group-addon"><span class="fa fa-lock"></span></span> + <input name="password_confirm" class="form-control" type="password" placeholder="Confirmer le mot de passe de l'utilisateur" > + </div> + </div> <?php if (isset($_SESSION['admin']) && $_SESSION['admin']) { ?> <div class="form-group"> <label>Niveau administrateur : </label>