Merge 15366967d0
into fb7899135e
This commit is contained in:
commit
d2f11b6a67
|
@ -450,6 +450,9 @@ class UsersController extends AUserData {
|
|||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Password was provided by the admin
|
||||
$this->editUser($userid, 'initial', 'true');
|
||||
}
|
||||
|
||||
return new DataResponse(['id' => $userid]);
|
||||
|
@ -682,6 +685,7 @@ class UsersController extends AUserData {
|
|||
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
|
||||
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
|
||||
$permittedFields[] = 'quota';
|
||||
$permittedFields[] = 'initial';
|
||||
} else {
|
||||
// No rights
|
||||
throw new OCSException('', OCSController::RESPOND_NOT_FOUND);
|
||||
|
@ -784,6 +788,9 @@ class UsersController extends AUserData {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case 'initial':
|
||||
$this->config->setUserValue($targetUser->getUID(), 'core', 'initial', $value);
|
||||
break;
|
||||
default:
|
||||
throw new OCSException('', 103);
|
||||
}
|
||||
|
|
|
@ -321,6 +321,13 @@ class LoginController extends Controller {
|
|||
$result->getErrorMessage()
|
||||
);
|
||||
}
|
||||
|
||||
if($this->config->getUserValue($user, 'core', 'initial') === 'true') {
|
||||
$token = $this->config->getUserKeys($user, 'login_token')[0];
|
||||
$token = str_replace('/', 'A', $token);
|
||||
return new RedirectResponse(
|
||||
$this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', ['userId' => $user, 'token' => $token]));
|
||||
}
|
||||
|
||||
if ($result->getRedirectUrl() !== null) {
|
||||
return new RedirectResponse($result->getRedirectUrl());
|
||||
|
|
|
@ -199,6 +199,15 @@ class LostController extends Controller {
|
|||
throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid'));
|
||||
}
|
||||
|
||||
if($this->config->getUserValue($userId, 'core', 'initial') === 'true')
|
||||
|
||||
$token = $this->config->getUserKeys($userId, 'login_token')[0];
|
||||
$token = str_replace('/', 'A', $token);
|
||||
|
||||
if($token === $token) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$encryptedToken = $this->config->getUserValue($userId, 'core', 'lostpassword', null);
|
||||
if ($encryptedToken === null) {
|
||||
throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid'));
|
||||
|
@ -317,6 +326,7 @@ class LostController extends Controller {
|
|||
$this->twoFactorManager->clearTwoFactorPending($userId);
|
||||
|
||||
$this->config->deleteUserValue($userId, 'core', 'lostpassword');
|
||||
$this->config->deleteUserValue($userId, 'core', 'initial');
|
||||
@\OC::$server->getUserSession()->unsetMagicInCookie();
|
||||
} catch (HintException $e) {
|
||||
return $this->error($e->getHint());
|
||||
|
|
Loading…
Reference in New Issue