Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
ISPConfig 3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Massimiliano
ISPConfig 3
Commits
9c79079e
Commit
9c79079e
authored
May 07, 2015
by
Marius Cramer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Backported password generator patch
parent
55385477
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
7 deletions
+42
-7
interface/lib/classes/auth.inc.php
interface/lib/classes/auth.inc.php
+36
-5
interface/web/login/password_reset.php
interface/web/login/password_reset.php
+6
-2
No files found.
interface/lib/classes/auth.inc.php
View file @
9c79079e
...
...
@@ -153,13 +153,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
);
}
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
);
}
return
$password
;
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
)
{
...
...
interface/web/login/password_reset.php
View file @
9c79079e
...
...
@@ -57,7 +57,11 @@ if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != '
$client
=
$app
->
db
->
queryOneRecord
(
"SELECT * FROM client WHERE username = '
$username
' AND email = '
$email
'"
);
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
);
$new_password_encrypted
=
$app
->
db
->
quote
(
$new_password_encrypted
);
...
...
@@ -67,7 +71,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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment