mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-05-05 15:56:27 +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
controllers
145
controllers/internalTools.php
Executable file
145
controllers/internalTools.php
Executable file
|
@ -0,0 +1,145 @@
|
|||
<?php
|
||||
class internalTools extends Controller
|
||||
{
|
||||
/**
|
||||
* Cette fonction parse un numéro pour le retourner sans espaces, etc.
|
||||
* @param string $number : Le numéro de téléphone à parser
|
||||
* @return mixed : Si le numéro est bien un numéro de téléphone, on retourne le numéro parsé. Sinon, on retourne faux
|
||||
*/
|
||||
public static function parsePhone($number)
|
||||
{
|
||||
$number = preg_replace('#[^0-9+]#', '', $number);
|
||||
if (preg_match('#^(0|\+33)[1-9][0-9]{8}$#', $number))
|
||||
{
|
||||
return $number;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction parse un numéro pour le retourner avec des espaces, etc.
|
||||
* @param string $number : Le numéro de téléphone à parser
|
||||
* @return mixed : Si le numéro est bien un numéro de téléphone, on retourne le numéro parsé. Sinon, on retourne faux
|
||||
*/
|
||||
public static function phoneAddSpace($number)
|
||||
{
|
||||
return preg_replace('#(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})#', '$1 $2 $3 $4 $5', $number);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction fait la correspondance entre un type d'evenement et une icone font awesome.
|
||||
* @param string $type : Le type de l'évenement à analyser
|
||||
* @return string : Le nom de l'icone à afficher (ex : fa-user)
|
||||
*/
|
||||
public static function eventTypeToIcon($type)
|
||||
{
|
||||
switch ($type)
|
||||
{
|
||||
case 'USER_ADD' :
|
||||
$logo = 'fa-user';
|
||||
break;
|
||||
case 'CONTACT_ADD' :
|
||||
$logo = 'fa-user';
|
||||
break;
|
||||
case 'GROUP_ADD' :
|
||||
$logo = 'fa-group';
|
||||
break;
|
||||
case 'SCHEDULED_ADD' :
|
||||
$logo = 'fa-calendar';
|
||||
break;
|
||||
case 'COMMAND_ADD' :
|
||||
$logo = 'fa-terminal';
|
||||
break;
|
||||
default :
|
||||
$logo = 'fa-question';
|
||||
}
|
||||
|
||||
return $logo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction vérifie une date
|
||||
* @param string $date : La date a valider
|
||||
* @param string $format : Le format de la date
|
||||
* @return boolean : Vrai si la date et valide, faux sinon
|
||||
*/
|
||||
public static function validateDate($date, $format)
|
||||
{
|
||||
$objectDate = DateTime::createFromFormat($format, $date);
|
||||
return ($objectDate && $objectDate->format($format) == $date);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction parse un texte, pour en extraire des données contenu dans des drapeaux au format [FLAG:contenu du drapeau]
|
||||
* @param string $texte : Le texte à parser
|
||||
* @return mixed : Tableau de la forme 'FLAG' => 'contenu du drapeau'. si on trouve une forme correcte (Le contenu de FLAG sera mis en majuscule automatiquement). Sinon le tableau vide.
|
||||
*/
|
||||
public static function parseForFlag($texte)
|
||||
{
|
||||
$returns = array();
|
||||
$results = array();
|
||||
while(preg_match('#\[(.*)(?<!\\\):(.*)(?<!\\\)\]#Uui', $texte, $results)) //Tant qu'on recuèpre un flag
|
||||
{
|
||||
$returns[mb_strtoupper($results[1])] = $results[2];
|
||||
$texte = str_replace($results[0], '', $texte);
|
||||
}
|
||||
|
||||
return $returns;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne un mot de passe généré aléatoirement
|
||||
* @param int $length : Taille du mot de passe à générer
|
||||
* @return string : Le mot de passe aléatoire
|
||||
*/
|
||||
public static function generatePassword($length)
|
||||
{
|
||||
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-@()?.:!%*$&/';
|
||||
$password = '';
|
||||
$chars_length = mb_strlen($chars) - 1;
|
||||
$i = 0;
|
||||
while ($i < $length)
|
||||
{
|
||||
$i ++;
|
||||
$password .= $chars[rand(0, $chars_length)];
|
||||
}
|
||||
return $password;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction vérifie si un utilisateur et connecté, et si il ne l'est pas, redirige sur la page de connexion
|
||||
* @return void
|
||||
*/
|
||||
public static function verifyConnect()
|
||||
{
|
||||
if (!isset($_SESSION['connect']) || !$_SESSION['connect'])
|
||||
{
|
||||
$controller = new Controller();
|
||||
header('Location: ' . $controller->generateUrl('connect'));
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction vérifie si un argument csrf a été fourni et est valide
|
||||
* @param string $csrf : argument optionel, qui est la chaine csrf à vérifier. Si non fournie, la fonction cherchera à utiliser $_GET['csrf'] ou $_POST['csrf'].
|
||||
* @return boolean : True si le csrf est valide. False sinon.
|
||||
*/
|
||||
public static function verifyCSRF($csrf = '')
|
||||
{
|
||||
if (!$csrf)
|
||||
{
|
||||
$csrf = isset($_GET['csrf']) ? $_GET['csrf'] : $csrf;
|
||||
$csrf = isset($_POST['csrf']) ? $_POST['csrf'] : $csrf;
|
||||
}
|
||||
|
||||
if ($csrf == $_SESSION['csrf'])
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue