Commit ffb04de2 authored by Marius Cramer's avatar Marius Cramer
Browse files

- Changed password generation function

- Fixed password length in lost password function
parent 3299ad41
Loading
Loading
Loading
Loading
+36 −5
Original line number Diff line number Diff line
@@ -174,13 +174,44 @@ class auth {
		
	}

	public function get_random_password($length = 8) {
		$base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
	public function get_random_password($minLength = 8, $special = false) {
		$minLength = $minLength || 10;
		if($minLength < 8) $minLength = 8;
		$maxLength = $minLength + 5;
		$length = mt_rand($minLength, $maxLength);
		
		$alphachars = "abcdefghijklmnopqrstuvwxyz";
		$upperchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		$numchars = "1234567890";
		$specialchars = "!@#_";
		
		$num_special = 0;
		if($special == true) {
			$num_special = intval(mt_rand(0, round($length / 4))) + 1;
		}
		$numericlen = mt_rand(1, 2);
		$alphalen = $length - $num_special - $numericlen;
		$upperlen = intval($alphalen / 2);
		$alphalen = $alphalen - $upperlen;
		$password = '';
		for ($n=0;$n<$length;$n++) {
			$password.=$base64_alphabet[mt_rand(0, 63)];
		
		for($i = 0; $i < $alphalen; $i++) {
			$password .= substr($alphachars, mt_rand(0, strlen($alphachars) - 1), 1);
		}
		return $password;
		
		for($i = 0; $i < $upperlen; $i++) {
			$password .= substr($upperchars, mt_rand(0, strlen($upperchars) - 1), 1);
		}
		
		for($i = 0; $i < $num_special; $i++) {
			$password .= substr($specialchars, mt_rand(0, strlen($specialchars) - 1), 1);
		}
		
		for($i = 0; $i < $numericlen; $i++) {
			$password .= substr($numchars, mt_rand(0, strlen($numchars) - 1), 1);
		}
		
		return str_shuffle($password);
	}

	public function crypt_password($cleartext_password) {
+6 −2
Original line number Diff line number Diff line
@@ -60,7 +60,11 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != '
		$app->tpl->setVar("error", $wb['lost_password_function_disabled_txt']);
	} else {
		if($client['client_id'] > 0) {
			$new_password = $app->auth->get_random_password();
			$server_config_array = $app->getconf->get_global_config();
			$min_password_length = 8;
			if(isset($server_config_array['misc']['min_password_length'])) $min_password_length = $server_config_array['misc']['min_password_length'];
			
			$new_password = $app->auth->get_random_password($min_password_length, true);
			$new_password_encrypted = $app->auth->crypt_password($new_password);

			$username = $client['username'];
@@ -69,7 +73,7 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != '
			$app->tpl->setVar("message", $wb['pw_reset']);

			$app->uses('getconf,ispcmail');
			$mail_config = $app->getconf->get_global_config('mail');
			$mail_config = $server_config_array['mail'];
			if($mail_config['smtp_enabled'] == 'y') {
				$mail_config['use_smtp'] = true;
				$app->ispcmail->setOptions($mail_config);