Prepare to add functions to validate passwords.

This commit is contained in:
Laurent Destailleur 2009-08-21 17:08:15 +00:00
parent 6cf39c7a91
commit dace319301
3 changed files with 53 additions and 27 deletions

View File

@ -41,7 +41,7 @@ class modGeneratePassNone extends ModeleGenPassword
var $lang; var $lang;
var $user; var $user;
/** /**
* \brief Constructeur * \brief Constructeur
* \param db Handler d'acc<EFBFBD>s base * \param db Handler d'acc<EFBFBD>s base
@ -80,14 +80,23 @@ class modGeneratePassNone extends ModeleGenPassword
} }
/** /**
* \brief G<EFBFBD>n<EFBFBD>re le mot de passe * \brief Build new password
* \return string Renvoi mot de passe g<EFBFBD>n<EFBFBD>r<EFBFBD> * \return string Return a new generated password
*/ */
function getNewGeneratedPassword() function getNewGeneratedPassword()
{ {
return ""; return "";
} }
/**
* \brief Validate a password
* \return int 0 if KO, >0 if OK
*/
function validatePassword($password)
{
return 1;
}
} }
?> ?>

View File

@ -41,7 +41,7 @@ class modGeneratePassStandard extends ModeleGenPassword
var $lang; var $lang;
var $user; var $user;
/** /**
* \brief Constructeur * \brief Constructeur
* \param db Handler d'acces base * \param db Handler d'acces base
@ -80,40 +80,49 @@ class modGeneratePassStandard extends ModeleGenPassword
} }
/** /**
* \brief Genere le mot de passe * \brief Build new password
* \return string Renvoi mot de passe genere * \return string Return a new generated password
*/ */
function getNewGeneratedPassword() function getNewGeneratedPassword()
{ {
// start with a blank password // start with a blank password
$password = ""; $password = "";
// define possible characters // define possible characters
$possible = "0123456789bcdfghjkmnpqrstvwxyz"; $possible = "0123456789bcdfghjkmnpqrstvwxyz";
// set up a counter // set up a counter
$i = 0; $i = 0;
// add random characters to $password until $length is reached // add random characters to $password until $length is reached
while ($i < $this->length) while ($i < $this->length)
{ {
// pick a random character from the possible ones // pick a random character from the possible ones
$char = substr($possible, mt_rand(0, strlen($possible)-1), 1); $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
// we don't want this character if it's already in the password // we don't want this character if it's already in the password
if (!strstr($password, $char)) if (!strstr($password, $char))
{ {
$password .= $char; $password .= $char;
$i++; $i++;
} }
} }
// done! // done!
return $password; return $password;
} }
/**
* \brief Validate a password
* \return int 0 if KO, >0 if OK
*/
function validatePassword($password)
{
if (strlen($password) < $this->length) return 0;
return 1;
}
} }
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2007 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2007-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -18,20 +18,18 @@
*/ */
/** /**
\file htdocs/includes/modules/facture/modules_genpassword.php * \file htdocs/includes/modules/security/generate/modules_genpassword.php
\ingroup core * \ingroup core
\brief Fichier contenant la classe mère de generation des mots de passe * \brief Fichier contenant la classe m<EFBFBD>re de generation des mots de passe
\version $Id$ * \version $Id$
*/ */
require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php'); require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php');
/** /**
\class ModeleGenPassword * \class ModeleGenPassword
\brief Classe mère des modèles de generation des mots de passe * \brief Parent class for password rules/management modules
*/ */
class ModeleGenPassword class ModeleGenPassword
{ {
var $error=''; var $error='';
@ -53,7 +51,7 @@ class ModeleGenPassword
$langs->load("bills"); $langs->load("bills");
return $langs->trans("NoDescription"); return $langs->trans("NoDescription");
} }
/** \brief Renvoi un exemple de generation /** \brief Renvoi un exemple de generation
* \return string Example * \return string Example
*/ */
@ -63,16 +61,26 @@ class ModeleGenPassword
$langs->load("bills"); $langs->load("bills");
return $langs->trans("NoExample"); return $langs->trans("NoExample");
} }
/** /**
* \brief Génère le mot de passe * \brief Build new password
* \return string Renvoi mot de passe généré * \return string Return a new generated password
*/ */
function getNewGeneratedPassword() function getNewGeneratedPassword()
{ {
global $langs; global $langs;
return $langs->trans("NotAvailable"); return $langs->trans("NotAvailable");
} }
/**
* \brief Validate a password
* \return int 0 if KO, >0 if OK
*/
function validatePassword($password)
{
return 1;
}
} }
?> ?>