create user in the SAML back-end and update the attributes when

the user was found on another back-end during login

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Björn Schiessle 2018-12-14 18:30:38 +01:00
parent b76a69400c
commit 0b0bfe94a2
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with 23 additions and 13 deletions

View File

@ -144,6 +144,7 @@ class SAMLController extends Controller {
// help with it and make the user known
$this->userManager->search($uid);
if($this->userManager->userExists($uid)) {
$this->userBackend->initializeHomeDir($uid);
return;
}
throw new NoUserFoundException('Auto provisioning not allowed and user ' . $uid . ' does not exist');

View File

@ -146,21 +146,30 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
}
$qb->execute();
### Code taken from lib/private/User/Session.php - function prepareUserLogin() ###
//trigger creation of user home and /files folder
$userFolder = \OC::$server->getUserFolder($uid);
try {
// copy skeleton
\OC_Util::copySkeleton($uid, $userFolder);
} catch (NotPermittedException $ex) {
// read only uses
}
// trigger any other initialization
$user = $this->userManager->get($uid);
\OC::$server->getEventDispatcher()->dispatch(IUser::class . '::firstLogin', new GenericEvent($user));
$this->initializeHomeDir($uid);
}
}
/**
* @param string $uid
* @throws \OCP\Files\NotFoundException
*/
public function initializeHomeDir($uid) {
### Code taken from lib/private/User/Session.php - function prepareUserLogin() ###
//trigger creation of user home and /files folder
$userFolder = \OC::$server->getUserFolder($uid);
try {
// copy skeleton
\OC_Util::copySkeleton($uid, $userFolder);
} catch (NotPermittedException $ex) {
// read only uses
}
// trigger any other initialization
$user = $this->userManager->get($uid);
\OC::$server->getEventDispatcher()->dispatch(IUser::class . '::firstLogin', new GenericEvent($user));
}
/**
* Check if backend implements actions
* @param int $actions bitwise-or'ed actions
@ -227,7 +236,7 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
/**
* Returns the user's home directory, if home directory mapping is set up.
*
* @param string $uid the username
* @param string $uid the username
* @return string
*/
public function getHome($uid) {