forked from extern/egroupware
AD requires to activate account AFTER setting pw
This commit is contained in:
parent
94926467d2
commit
d63ee993b3
@ -381,16 +381,16 @@
|
|||||||
|
|
||||||
// do NOT save password via accounts::save, as pw policy violation can happen and we cant/dont report that way
|
// do NOT save password via accounts::save, as pw policy violation can happen and we cant/dont report that way
|
||||||
$passwd = $_userData['account_passwd'];
|
$passwd = $_userData['account_passwd'];
|
||||||
|
$new_account = !$_userData['account_id'];
|
||||||
unset($_userData['account_passwd']);
|
unset($_userData['account_passwd']);
|
||||||
unset($_userData['account_passwd_2']);
|
unset($_userData['account_passwd_2']);
|
||||||
if (!$GLOBALS['egw']->accounts->save($_userData))
|
|
||||||
|
if ($new_account && !$GLOBALS['egw']->accounts->save($_userData))
|
||||||
{
|
{
|
||||||
$errors[] = lang('Failed to save user!');
|
$errors[] = lang('Failed to save user!');
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
$GLOBALS['egw']->accounts->set_memberships($_userData['account_groups'],$_userData['account_id']);
|
|
||||||
|
|
||||||
if ($passwd)
|
if ($passwd)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@ -404,23 +404,32 @@
|
|||||||
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
|
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
|
||||||
'location' => 'changepassword'
|
'location' => 'changepassword'
|
||||||
),False,True); // called for every app now, not only enabled ones)
|
),False,True); // called for every app now, not only enabled ones)
|
||||||
if ($_userData['account_lastpwd_change']==0)
|
|
||||||
|
if ($_userData['account_lastpwd_change']==0 || // AD requires to activate account AFTER setting pw
|
||||||
|
$new_account && $_userData['account_status'] == 'A' && $GLOBALS['egw']->accounts->require_password_for_enable())
|
||||||
{
|
{
|
||||||
// change password sets the shadow_timestamp/account_lastpwd_change timestamp
|
// change password sets the shadow_timestamp/account_lastpwd_change timestamp
|
||||||
// so we need to reset that to 0 as Admin required the change of password upon next login
|
// so we need to reset that to 0 as Admin required the change of password upon next login
|
||||||
unset($_userData['account_passwd']);
|
$GLOBALS['egw']->accounts->save($_userData);
|
||||||
$this->save_user($_userData);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$errors[] = lang('Failed to change password. Please contact your administrator.');
|
$errors[] = lang('Failed to change password.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception $e) {
|
catch(Exception $e) {
|
||||||
$errors[] = $e->getMessage();
|
$errors[] = $e->getMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$GLOBALS['egw']->accounts->set_memberships($_userData['account_groups'],$_userData['account_id']);
|
||||||
|
|
||||||
|
if (!$new_account && !$GLOBALS['egw']->accounts->save($_userData))
|
||||||
|
{
|
||||||
|
$errors[] = lang('Failed to save user!');
|
||||||
|
return $errors;
|
||||||
|
}
|
||||||
|
|
||||||
if ($_userData['account_lastpwd_change']==0)
|
if ($_userData['account_lastpwd_change']==0)
|
||||||
{
|
{
|
||||||
if (!isset($auth)) $auth =& CreateObject('phpgwapi.auth');
|
if (!isset($auth)) $auth =& CreateObject('phpgwapi.auth');
|
||||||
|
Loading…
Reference in New Issue
Block a user