Remove useless functions.php, common.php and vendor/evolibs

This commit is contained in:
Victor LABORIE 2017-12-17 22:11:09 +01:00
parent 791d0169ac
commit b4555a166b
14 changed files with 3 additions and 844 deletions

View file

@ -14,7 +14,6 @@ Evolix trademark and logo are not freely reusable and are protected by copyright
Vendor files in htdocs/vendor have their own license :
* [Evolibs](http://evolix.com/) : GPLv2+
* [Bootstrap](https://getbootstrap.com/) : MIT
* [Jquery](https://jquery.org/) : MIT
* [DataTables](https://www.datatables.net/) : MIT

View file

@ -6,8 +6,6 @@ require_once("lib/config.php");
// Force authentication on this page
require_once("lib/auth.php");
require_once("lib/common.php");
if (empty($_GET['domain'])) {
header("location: superadmin.php\n\n");
exit(1);

View file

@ -6,8 +6,6 @@ require_once("lib/config.php");
// Force authentication on this page
require_once("lib/auth.php");
require_once('lib/common.php');
include('inc/haut.php');
include('inc/debut.php');

View file

@ -6,8 +6,6 @@ require_once("lib/config.php");
// Force authentication on this page
require_once("lib/auth.php");
require_once('lib/common.php');
include('inc/haut.php');
include('inc/debut.php');

View file

@ -6,8 +6,6 @@ require_once("lib/config.php");
// Force authentication on this page
require_once("lib/auth.php");
require_once("lib/common.php");
include("inc/haut.php");
include("inc/debut.php");

View file

@ -71,7 +71,7 @@ class LdapDomain extends LdapServer {
public function addAccount($uid,$name,$password,$active=false,$admin=false,$accountactive=false,$courieractive=false,$webmailactive=false,$authsmtpactive=false,$amavisBypassSpamChecks=false) {
global $conf;
if (badname($uid)) {
if (!preg_match('/^([a-z0-9][a-z0-9\-\.\_]{0,28}[a-z0-9])$/', $uid)) {
throw new Exception("Erreur, <u>$name</u> est un nom invalide.");
}
$mail = $uid.'@'.$this->getName();

View file

@ -1,65 +0,0 @@
<?php
/**
* Copyright (c) 2004-2008 Evolix - Tous droits reserves
* $Id: common.php,v 1.13 2009-02-21 03:55:15 gcolpart Exp $
*/
/**
* common.php
* file included in every PHP file
*/
/**
* Functions
*/
function test_exist($file) {
if(!file_exists($file)) {
die("Erreur, vous devez mettre en place le fichier $file !\n");
}
}
/**
* Includes
*/
// PEAR libs
// change include_path for PEAR
// http://pear.php.net/manual/en/installation.shared.php
//if (!(ini_set('include_path', CONF_PWD . 'pear/' . PATH_SEPARATOR . ini_get('include_path'))))
if (!(ini_set('include_path', ini_get('include_path')))) {
die('bibliotheques PEAR non presentes');
} else {
require_once 'PEAR.php';
require_once 'Log.php';
// config files
// (here because need Log PEAR lib)
test_exist('config/connect.php');
require_once('config/connect.php');
test_exist('config/conf.php');
require_once('config/conf.php');
global $conf;
// only for samba mode
if (($conf['admin']['what'] == 2) || ($conf['admin']['what'] == 3)) {
require_once 'Crypt/CHAP.php';
}
}
// functions
require_once 'lib/functions.php';
if ($conf['admin']['use_hook']) {
require_once 'lib/hook.php';
} else {
require_once 'lib/hook-dist.php';
}
// lib
require_once 'vendor/evolibs/Ldap.php';
require_once 'vendor/evolibs/Html.php';
require_once 'vendor/evolibs/Math.php';
require_once 'vendor/evolibs/EvoLog.php';
require_once 'vendor/evolibs/Auth.php';

View file

@ -4,12 +4,8 @@ const CONFIG_FILE = './config/conf.php';
const CONNECT_FILE = './config/connect.php';
spl_autoload_register(function ($class) {
if (file_exists("vendor/evolibs/$class.php")) {
include_once("vendor/evolibs/$class.php");
} else {
$class = strtolower($class);
include_once("lib/class.$class.php");
}
$class = strtolower($class);
include_once("lib/class.$class.php");
});
if (file_exists(CONFIG_FILE)) {

View file

@ -1,323 +0,0 @@
<?php
function display($msg)
{
echo "<p class='display'>" . $msg . "</p>\n";
}
// teste si l'utilisateur est superadmin
function superadmin($login) {
global $conf;
foreach ($conf['admin']['logins'] as $admin) {
if ( Html::clean($login) == $admin ) {
return TRUE;
}
}
return FALSE;
}
// execution du script shell associe
function evoexec($cmd) {
//exec(SUBIN . " " . SUUSER . " -c " . SUDOBIN . " '$cmd'");
return exec(SUDOBIN . " " . SUDOSCRIPT . " -p " . SUDOPASS . " $cmd");
}
// retourne le quota d'un utilisateur ou d'un groupe
function getquota($who,$what) {
global $conf;
if ( $what == 'user') {
$quota = evoexec("-qu $who");
} elseif ( $what == 'group') {
if ( $conf['domaines']['driver'] == 'file' ) {
$quota = evoexec("-s");
} elseif ( $conf['domaines']['driver'] == 'ldap' ) {
$quota = evoexec("-qg $who");
}
}
list ($now,$limit) = explode("/",$quota);
$now = $now / 1024;
$limit = $limit / 1024;
$quota = "<b>" . Math::arrondi($now). "M</b>/" .Math::arrondi($limit). "M";
return $quota;
}
// commande shell a lancer pour creer un utilisateur
function unix_add($user,$group=NULL) {
if ( $group == NULL) {
$group = getgid();
}
evoexec("-a -u $user -g $group");
}
// commande shell a lancer pour creer un domaine
function domain_add($group) {
evoexec("-a -v -g $group");
}
// commande shell a lancer pour supprimer un utilisateur
function unix_del($user) {
evoexec("-d -u $user");
}
// renvoie le gidNumber associe a un domaine
function getgid($domain=NULL) {
global $conf;
if ( $conf['domaines']['driver'] == 'file' ) {
return $conf['domaines']['file']['gid'];
} elseif ( $conf['domaines']['driver'] == 'ldap' ) {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(&(cn=" .$domain. ")(gidnumber=*))";
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
if ($info['count']) {
return (int) $info[0]["gidnumber"][0];
} else {
return -1;
}
} else {
return -1;
}
}
// renvoie le 1er uidNumber disponible
function getfreeuid() {
global $conf;
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(uidNumber=*)";
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
$uids = array();
foreach ($info as $entry) {
array_push($uids,$entry['uidnumber'][0]);
}
sort($uids);
$uid = max(array_pop($uids)+1,$conf['unix']['minuid']);
return (int) $uid;
}
// renvoie le 1er uidNumber disponible
function getfreegid() {
global $conf;
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(gidNumber=*)";
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
$gids = array();
foreach ($info as $entry) {
array_push($gids,$entry['gidnumber'][0]);
}
sort($gids);
$gid = max(array_pop($gids)+1,$conf['unix']['mingid']);
return (int) $gid;
}
// get number of account or aliases for a domain
function getnumber($domain,$type) {
global $conf;
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
if ( $type == 'compte' ) {
$filter="(&(objectClass=posixAccount)(!(uid=*$)))";
} elseif ( $type == 'mail' ) {
$filter="(objectClass=mailAccount)";
} elseif ( $type == 'alias' ) {
$filter="(objectClass=mailAlias)";
// compatibilite anciens schemas
if ($conf['evoadmin']['version'] == 1) {
$filter="(&(objectClass=mailAlias)(onlyAlias=TRUE))";
}
} elseif ( $type == 'smb' ) {
$filter="(objectClass=sambaSamAccount)";
}
if (! $conf['domaines']['onlyone']) {
// compatibilite anciens schemas
if ($conf['evoadmin']['version'] <= 2) {
$rdn= "domain=" .$domain. "," .LDAP_BASE;
} else {
$rdn= "cn=" .$domain. "," .LDAP_BASE;
}
} else {
//$rdn= "ou=people," .LDAP_BASE;
$rdn= LDAP_BASE;
}
$sr=ldap_search($ldapconn, $rdn, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
return $info['count'];
}
function getsambagroups($type) {
global $conf;
// Si la liste des groupes est defini dans la config on l'utilise
if($type == "unix" && isset($conf['samba']['unixgroups'])) {
return $conf['samba']['unixgroups'];
}
if($type == "smb" && isset($conf['samba']['smbgroups'])) {
return $conf['samba']['smbgroups'];
}
// sinon on interroge LDAP
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter = "(objectClass=sambaGroupMapping)";
$rdn = LDAP_BASE;
$sr=ldap_search($ldapconn, $rdn, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
$ret = array();
for($i=0; $i<$info['count']; $i++) {
$entry = $info[$i];
$cn = $entry['cn'][0];
if($type == "unix") {
$ret[$cn] = $entry['gidnumber'][0];
} elseif($type == "smb") {
$tmp = explode('-', $entry['sambasid'][0]);
$ret[$cn] = "-".array_pop($tmp);
}
}
return $ret;
}
/**
* Verifie qu'un login est incorrect
* entre 2 et 30 caracteres
* en lettres minuscule, chiffres, '-', '.' ou '_'
* pour le premier et dernier caracteres : seuls lettres et minuscules
* et chiffres sont possibles
*/
function badname($login)
{
return (!preg_match('/^([a-z0-9][a-z0-9\-\.\_]{0,28}[a-z0-9])$/',$login));
}
/**
* Ajouter la composante @domaine
*/
function adddomain(&$item,$key)
{
if (preg_match('/@/',$item)) {
print "<p class='error'>Ne pas inclure de @ dans les mails acceptes&nbsp;!</p>";
exit(1);
}
if (!empty($item)) {
$item = "$item". "@".$_SESSION['domain'];
}
}
// renvoie la date d'expiration d'un compte
function get_expiration_date($name) {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(&(uid=" .$name. "))";
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
$val = $info[0]["sambakickofftime"][0];
if($val > 0) {
return date('d/m/Y', $val);
} else {
return '';
}
}
// change la date d'expiration d'un compte
function set_expiration_date($name, $date) {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
list($day, $month, $year) = explode('/', $date);
$timestamp = mktime(0, 0, 0, $month, $day, $year);
$val = array('sambakickofftime' => $timestamp);
if(!ldap_modify($ldapconn, "uid=$name,ou=people,".LDAP_BASE, $val)) {
die('Echec de la modification de la date d\'expiration');
}
ldap_unbind($ldapconn);
}
function account_is_locked($name) {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(&(uid=" .$name. "))";
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
ldap_unbind($ldapconn);
$val = $info[0]["sambaacctflags"][0];
if(strpos($val, 'L')) {
return true;
} else {
return false;
}
}
function account_lock($name, $lock_state) {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(&(uid=" .$name. "))";
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
$val = $info[0]["sambaacctflags"][0];
if($lock_state == true) {
if(!strpos($val, 'L')) {
// ajouter le L
$newval = substr_replace($val, 'L', 2, 0);
}
} else {
if(strpos($val, 'L')) {
// virer le L
$newval = str_replace('L', '', $val);
}
}
if($newval) {
//print "$val -> $newval";
$info = array('sambaacctflags' => $newval);
if(!ldap_modify($ldapconn, "uid=$name,ou=people,".LDAP_BASE, $info)) {
die('Echec de la modification du verrouillage');
}
}
ldap_unbind($ldapconn);
}

View file

@ -1,56 +0,0 @@
<?php
/**
* Copyright (c) 2004-2005 Evolix - Tous droits reserves
* $Id: Auth.php,v 1.1 2009-09-02 16:22:45 gcolpart Exp $
*
* Fonctions utiles pour authentification
*
*/
class Auth
{
/**
* Verifie qu'un login est incorrect
* entre 3 et 30 caractères
* en lettres minuscule, chiffres, '-', '.' ou '_'
* pour le premier et dernier caractères : seuls lettres et minuscules
* et chiffres sont possibles
*/
function badname($login)
{
return (!preg_match('/^([a-z0-9][a-z0-9\-\.\_]{1,28}[a-z0-9])$/',$login));
}
/**
* verifie qu'un mot de passe est incorrect
* entre 5 et 12 caractères
* caractères imprimables
*/
function badpassword($pass)
{
return ( (strlen($pass) > 42) ||
(strlen($pass) < 5) ||
(!preg_match('/^([[:graph:]]*)$/',$pass)) );
}
/**
* verifie qu'un FQDN semble correct
*/
function badfqdn($domain)
{
return (!preg_match('/^([[:alnum:]\.\-]{2,70}.[[:alpha:]]{2,5})$/',$domain));
}
}
?>

View file

@ -1,56 +0,0 @@
<?php
/*
* gestion des Logs
* inspire de Horde
*/
class EvoLog
{
function log($message, $priority = PEAR_LOG_INFO)
{
global $conf;
if (!$conf['log']['enabled'])
{
return;
}
$logger = Log::singleton('file', $conf['log']['name'] ,'evoadmin');
$logger->log($message, $priority);
}
function debug()
{
if (DEBUG > 2)
{
echo "<hr /><hr /> SESSION DEBUG : <br />";
print_r($_SESSION);
echo "<br />";
echo 'session_name() : ' . session_name() . "<br>\n" ;
echo 'session_id() : ' . session_id() . "<br>\n" ;
echo 'session_cache_expire() : ' . session_cache_expire() . "<br>\n" ;
echo 'session_cache_limiter() : ' . session_cache_limiter() . "<br>\n" ;
echo 'session_get_cookie_params() : ';
print_r(array_values(session_get_cookie_params()));
echo "<br>\n";
echo 'session_module_name() : ' . session_module_name() . "<br>\n" ;
echo 'session_save_path() : ' . session_save_path() . "<br>\n" ;
echo "<hr /><hr /> POST DEBUG : <br />";
print_r($_POST);
echo "<hr /><hr /> GET DEBUG : <br />";
print_r($_GET);
echo "<hr /><hr />";
}
}
}
?>

View file

@ -1,101 +0,0 @@
<?php
/**
* Copyright (c) 2004-2006 Evolix - Tous droits reserves
* $Id: Html.php,v 1.1.1.1 2006-11-03 14:56:45 reg Exp $
*
* Evolib HTML (PHP4)
* Fonctions utiles pour utilisation avec champs FORM
* Fonctions diverses sur manipulation de caractères
*/
class Html
{
/**
* Nettoie un texte
* Supprime toutes les balises HTML
*/
function justclean($texte)
{
return strip_tags($texte);
}
/**
* Nettoie un texte
* Supprime toutes les balises HTML
* convertit en caracteres HTML
* TODO : ENT_NOQUOTES ou ENT_QUOTES ??
*/
function clean($texte)
{
return htmlentities(strip_tags($texte),ENT_NOQUOTES);
}
/**
* Nettoie un texte en permettant l'utilisation de liens A HREF
* Supprime toutes les balises HTML
* convertit en caracteres HTML
* permet l'utilisation de liens [Evolixn=http://www.evolix.fr]
* convertion automatique (inspire des liens SPIP, http://www.spip.net)
*/
function clean2($texte)
{
$texte = htmlentities(strip_tags($texte),ENT_NOQUOTES);
$texte = preg_replace('/\[([^"^=]+)=(http:\/\/[^"^[:space:]]+)\]/',
'<a href="\\2">\\1</a>',$texte);
return addslashes($texte);
}
/**
* Nettoie une requete SQL
* Ajoute des antislashes devant : guillements simples, doubles, antislashes
* caractere NULL
* Cette fonction n'agit que si la directive magic_quotes_gpc est sur Off
*/
function sqlclean($texte)
{
return (get_magic_quotes_gpc()) ? $texte : addslashes($texte);
}
function purgeaccents($texte)
{
// liste des caracteres accentuees
$couple["é"] = "e"; $couple["è"] = "e"; $couple["ê"] = "e"; $couple["ë"] = "e";
$couple["È"] = "e"; $couple["É"] = "e"; $couple["Ê"] = "e"; $couple["Ë"] = "e";
$couple["à"] = "a"; $couple["ä"] = "a"; $couple["â"] = "a"; $couple["å"] = "a";
$couple["á"] = "a"; $couple["ã"] = "a"; $couple["æ"] = "a";
$couple["À"] = "a"; $couple["Á"] = "a"; $couple["Â"] = "a"; $couple["Ã"] = "a";
$couple["Ä"] = "a"; $couple["Å"] = "a"; $couple["Æ"] = "a";
$couple["ù"] = "u"; $couple["ü"] = "u"; $couple["û"] = "u"; $couple["ú"] = "u";
$couple["ô"] = "o"; $couple["ö"] = "o"; $couple["ò"] = "o"; $couple["ó"] = "o"; $couple["õ"] = "o";
$couple["î"] = "i"; $couple["ï"] = "i"; $couple["ì"] = "i"; $couple["í"] = "i";
$couple["ç"] = "c"; $couple["Ç"] = "c";
$couple["ÿ"] = "y"; $couple["ý"] = "y"; $couple["ñ"] = "n";
while(list($car,$val) = each($couple))
{
$texte = preg_replace("/".$car."/",$val,$texte);
}
return $texte;
}
/**
* renvoie un entier
*/
function toint($var)
{
return number_format($var, 0, '', '');
}
}
?>

View file

@ -1,189 +0,0 @@
<?php
/**
* Bibliotheques LDAP (PHP4 et PHP5)
*
* Copyright (c) 2004-2008 Evolix - Tous droits reserves
* $Id: Ldap.php,v 1.2 2008-09-29 11:04:52 tmartin Exp $
*
* Fonctions utiles pour utilisation PHP et OpenLDAP
*
*/
class Ldap {
/**
* Connexion a une base OpenLDAP
* les constantes LDAP_URI devront etre definies
* il convient de les definir dans un fichier connect.php
*/
function lda_connect($binddn="none",$pass="") {
$ldapconn = @ldap_connect(LDAP_URI)
or die( "Impossible de se connecter au serveur LDAP {$ldaphost}" );
if (!ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3)) {
echo 'Impossible de modifier la version du protocole à 3';
}
if ($binddn != "none") {
if (!ldap_bind($ldapconn, $binddn, $pass)) {
return FALSE;
}
}
return $ldapconn;
}
/**
* suppression d'entrees OpenLDAP
* recursivite possible
*/
function lda_del($ldapconn, $dn , $recursive=FALSE) {
if($recursive == FALSE) {
return(ldap_delete($ldapconn, $dn));
} else {
$sr=ldap_list($ldapconn, $dn, "ObjectClass=*");
$info = ldap_get_entries($ldapconn, $sr);
for($i=0;$i<$info['count'];$i++) {
$result= lda_del($ldapconn, $info[$i]['dn'],$recursive);
if(!$result) {
return($result);
}
}
return(ldap_delete($ldapconn, $dn));
}
}
/**
* getfreegid()
* obtenir le plus petit GID disponible
*/
function getfreegid() {
$gid = exec("sudo /usr/share/scripts/script.sh -g");
return $gid;
}
/**
* getfreeuid()
* obtenir le plus petit UID disponible
*/
function getfreeuid() {
$gid = exec("sudo /usr/share/scripts/script.sh -u");
return $gid;
}
/**
* getgid($group)
* obtenir GID en fonction du nom du groupe
*/
function getgid($group) {
$ldapconngetgid = lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(cn=" .$group. ")";
$sr=ldap_search($ldapconngetgid, "ou=group," .LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconngetgid, $sr);
if ($info['count']) {
return (int) $info[0]["gidnumber"][0];
} else {
return -1;
}
}
/**
* getgroup($login)
* obtenir le nom du groupe en fonction du login
* particulier au l'organisation du serveur JPS
*/
function getgroup($login) {
$ldapconngetgroup = lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(uid=" .$login. ")";
$sr=ldap_search($ldapconngetgroup, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconngetgroup, $sr);
if ($info['count']) {
$result = $info[0]['dn'];
list ($foo,$mydomain,$foo2) = explode(',',$result);
list ($foo,$group) = explode('=',$mydomain);
return $group;
} else {
return -1;
}
}
function is_uid($login) {
$ldapconnisuid = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(uid=" .$login. ")";
$sr=ldap_search($ldapconnisuid, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconnisuid, $sr);
if (($info['count']) && ($info[0]['uid'][0] == $login )) {
ldap_unbind($ldapconnisuid);
return TRUE;
} else {
ldap_unbind($ldapconnisuid);
$stack = array ("root","nobody","news","daemon","bin","sys","sync","postmaster","mailer-daemon",
"games","man","lp","mail","uucp","proxy","www-data","backup","list","irc","gnats","abuse",
"postfix","sshd","forquota","amavis","clamav","mysql","gcolpart","aanriot","log2mail");
while (count($stack)) {
$unixuid = array_shift($stack);
if ( $login == $unixuid ) {
return TRUE;
}
}
return FALSE;
}
}
function is_what($login,$what) {
$ldapconnisuid = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
$filter="(" .$what. "=" .$login. ")";
$sr=ldap_search($ldapconnisuid, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconnisuid, $sr);
if ($info['count']) {
ldap_unbind($ldapconnisuid);
return $info['count'];
}
else
{
ldap_unbind($ldapconnisuid);
return FALSE;
}
}
function sha($pass) {
return base64_encode(pack("H*", sha1($pass)));
}
// necessite php(4|5)-mhash
function ssha($pass) {
mt_srand((double)microtime()*1000000);
$salt = mhash_keygen_s2k(MHASH_SHA1, $pass, substr(pack('h*', md5(mt_rand())), 0, 8), 4);
return base64_encode(mhash(MHASH_SHA1, $pass.$salt).$salt);
}
// necessite Crypt/CHAP -> http://gcolpart.evolix.net/debian/php-crypt-chap/
// inspire de lib/Driver/smbldap.php (Horde Password)
function sambalm($pass) {
$hash = new Crypt_CHAP_MSv2();
$hash->password = $pass;
return strtoupper(bin2hex($hash->lmPasswordHash()));
}
// necessite Crypt/CHAP -> http://gcolpart.evolix.net/debian/php-crypt-chap/
// inspire de lib/Driver/smbldap.php (Horde Password)
function sambant($pass) {
$hash = new Crypt_CHAP_MSv2();
$hash->password = $pass;
return strtoupper(bin2hex($hash->ntPasswordHash()));
}
}
?>

View file

@ -1,38 +0,0 @@
<?php
/**
* Copyright (c) 2004-2006 Evolix - Tous droits reserves
* $Id: Math.php,v 1.1 2008-09-29 09:02:52 tmartin Exp $
*
* Fonctions mathematiques
*/
class Math
{
function EvoFormat($param)
{
// Pour eviter -0.00
if ( number_format($param, 2, '.', ' ') == -0.00 ) $param = 0.00;
return preg_replace('/x/','&nbsp;',number_format($param, 2, '.', 'x'));
}
function LongCode($param)
{
return sprintf("%03s", $param);
}
function LongId($param)
{
return sprintf("%08s", $param);
}
function arrondi($num) {
//return number_format($num, 0, ',', '.');
return number_format($num, 0, '', '');
}
}
?>