Overview
Comment:Ajout d'un signal de plugin motdepasse.compromis
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 501bf924d3c8ae30d1b060be7aa887d66d5e01b8
User & Date: bohwaz on 2019-12-09 18:10:47
Other Links: manifest | tags
Context
2019-12-10
14:49
Alerter du besoin de créer un type de cotisation avant de pouvoir affecter une cotisation check-in: dba8af4479 user: bohwaz tags: trunk
2019-12-09
18:10
Ajout d'un signal de plugin motdepasse.compromis check-in: 501bf924d3 user: bohwaz tags: trunk
18:10
Clarification de la valeur de retour de Plugin::fireSignal, qui doit renvoyer TRUE si un plugin a arrêté l'exécution, FALSE si des plugins ont été appelés mais aucun n'a interrompu l'exécution, et NULL si aucun plugin n'a été exécuté check-in: 126edcf10c user: bohwaz tags: trunk
Changes

Modified src/include/lib/Garradin/Membres/Session.php from [13db0ba2f7] to [d704d4547a].

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
..
36
37
38
39
40
41
42














43
44
45
46
47
48
49
class Session extends \KD2\UserSession
{
	// Personalisation de la config de UserSession
	protected $cookie_name = 'gdin';
	protected $remember_me_cookie_name = 'gdinp';
	protected $remember_me_expiry = '+3 months';

	const MINIMUM_PASSWORD_LENGTH = 10;

	static public function checkPasswordValidity($password)
	{
		if (strlen($password) < self::MINIMUM_PASSWORD_LENGTH)
		{
			throw new UserException(sprintf('Le mot de passe doit faire au moins %d caractères.', self::MINIMUM_PASSWORD_LENGTH));
		}
................................................................................
		$session = new Session(DB::getInstance());
		$session->http = new HTTP;

		if ($session->isPasswordCompromised($password)) {
			throw new UserException('Ce mot de passe figure dans une liste de mots de passe compromis. Si vous l\'avez utilisé sur d\'autres sites il est recommandé de le changer sur ces autres sites également.');
		}
	}















	// Extension des méthodes de UserSession
	public function __construct()
	{
		$url = parse_url(ADMIN_URL);

		//throw new \Exception('lol');







|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
..
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class Session extends \KD2\UserSession
{
	// Personalisation de la config de UserSession
	protected $cookie_name = 'gdin';
	protected $remember_me_cookie_name = 'gdinp';
	protected $remember_me_expiry = '+3 months';

	const MINIMUM_PASSWORD_LENGTH = 8;

	static public function checkPasswordValidity($password)
	{
		if (strlen($password) < self::MINIMUM_PASSWORD_LENGTH)
		{
			throw new UserException(sprintf('Le mot de passe doit faire au moins %d caractères.', self::MINIMUM_PASSWORD_LENGTH));
		}
................................................................................
		$session = new Session(DB::getInstance());
		$session->http = new HTTP;

		if ($session->isPasswordCompromised($password)) {
			throw new UserException('Ce mot de passe figure dans une liste de mots de passe compromis. Si vous l\'avez utilisé sur d\'autres sites il est recommandé de le changer sur ces autres sites également.');
		}
	}

	public function isPasswordCompromised($password)
	{
		// Vérifier s'il n'y a pas un plugin qui gère déjà cet aspect
		// notamment en installation mutualisée c'est plus efficace
		$is_compromised = null;
		$called = Plugin::fireSignal('motdepasse.compromis', ['password' => $password], ['is_compromised' => $is_compromised]);

		if ($called !== null) {
			return $is_compromised;
		}

		return parent::isPasswordCompromised($password);
	}

	// Extension des méthodes de UserSession
	public function __construct()
	{
		$url = parse_url(ADMIN_URL);

		//throw new \Exception('lol');