mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-04-20 16:37:48 +02:00
Mise en place du code, jusqu'ici développé en local
This commit is contained in:
parent
d8e121057e
commit
538d242f18
160 changed files with 28859 additions and 0 deletions
160
controllers/users.php
Executable file
160
controllers/users.php
Executable file
|
@ -0,0 +1,160 @@
|
|||
<?php
|
||||
/**
|
||||
* Page des utilisateurs
|
||||
*/
|
||||
class users extends Controller
|
||||
{
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function before()
|
||||
{
|
||||
internalTools::verifyConnect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction est alias de showAll()
|
||||
*/
|
||||
public function byDefault()
|
||||
{
|
||||
$this->showAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne tous les utilisateurs, sous forme d'un tableau permettant l'administration de ces utilisateurs
|
||||
* @return void;
|
||||
*/
|
||||
public function showAll()
|
||||
{
|
||||
//Creation de l'object de base de données
|
||||
global $db;
|
||||
|
||||
|
||||
//Récupération des utilisateurs
|
||||
$users = $db->getAll('users');
|
||||
|
||||
$this->render('users', array(
|
||||
'users' => $users,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'ajout d'un utilisateur
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->render('addUser');
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction insert un nouvel utilisateur
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//On vérifie que le jeton csrf est bon
|
||||
if (!internalTools::verifyCSRF())
|
||||
{
|
||||
header('Location: ' . $this->generateUrl('users', 'showAll', array(
|
||||
'errormessage' => 'Jeton CSRF invalide !'
|
||||
)));
|
||||
return true;
|
||||
}
|
||||
|
||||
global $db;
|
||||
|
||||
|
||||
if (!isset($_POST['email']) || !isset($_POST['email_confirm']) || $_POST['email'] != $_POST['email_confirm'])
|
||||
{
|
||||
header('Location: ' . $this->generateUrl('users', 'add', array(
|
||||
'errormessage' => 'Les e-mails fournis ne correspondent pas.'
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
|
||||
$email = $_POST['email'];
|
||||
$no_crypt_password = internalTools::generatePassword(rand(8,12));
|
||||
$password = sha1($no_crypt_password);
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
|
||||
{
|
||||
header('Location: ' . $this->generateUrl('users', 'add', array(
|
||||
'errormessage' => 'L\'e-mail fourni présente un format incorrect.'
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
|
||||
$admin = false;
|
||||
|
||||
if (isset($_SESSION['admin']) && $_SESSION['admin'])
|
||||
{
|
||||
if (isset($_POST['admin']) && $_POST['admin'])
|
||||
{
|
||||
$admin = true;
|
||||
}
|
||||
}
|
||||
|
||||
$message = "Votre compte a été créé sur le site " . HTTP_PWD . " avec les identifiants suivants : \n";
|
||||
$message .= "Adresse e-mail : " . $email . "\n";
|
||||
$message .= "Mot de passe : " . $no_crypt_password . "\n\n";
|
||||
$message .= "-------------------------------------\n";
|
||||
$message .= "Pour plus d'informations sur le système RaspiSMS, rendez-vous sur le site http://raspbian-france.fr\n";
|
||||
|
||||
if (mail($email, 'Identifiants RaspiSMS', $message))
|
||||
{
|
||||
if ($db->createUser($email, $password, $admin))
|
||||
{
|
||||
$db->createEvent('USER_ADD', 'Ajout de l\'utilisateur : ' . $email);
|
||||
header('Location: ' . $this->generateUrl('users', 'showAll', array(
|
||||
'successmessage' => 'L\'utilisateur a bien été créé.'
|
||||
)));
|
||||
return true;
|
||||
}
|
||||
|
||||
header('Location: ' . $this->generateUrl('users', 'add', array(
|
||||
'errormessage' => 'Impossible de créer cet utilisateur.'
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
header('Location: ' . $this->generateUrl('users', 'showAll', array(
|
||||
'errormessage' => 'Impossible d\'envoyer le SMS d\'inscription à l\'utilisateur. Le compte n\'a donc pas été créé.'
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction supprimer une liste d'utilisateur
|
||||
* @return void;
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
//On vérifie que le jeton csrf est bon
|
||||
if (!internalTools::verifyCSRF())
|
||||
{
|
||||
header('Location: ' . $this->generateUrl('users', 'showAll', array(
|
||||
'errormessage' => 'Jeton CSRF invalide !'
|
||||
)));
|
||||
return true;
|
||||
}
|
||||
|
||||
//Create de l'object de base de données
|
||||
global $db;
|
||||
|
||||
//Si on est pas admin
|
||||
if (!$_SESSION['admin'])
|
||||
{
|
||||
header('Location: ' . $this->generateUrl('users', 'showAll', array(
|
||||
'errormessage' => 'Vous devez être administrateur pour effectuer cette action.'
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
|
||||
$users_ids = $_GET;
|
||||
$db->deleteUsersIn($users_ids);
|
||||
header('Location: ' . $this->generateUrl('users'));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue