Create skeleton and dispatch first login event

Code taken from 'regular' login method do create skeleton and dispatch event of the user creation.
A better idea would be to directly use the `prepareUserLogin()` method of `lib/private/User/Session.php`, but as it is private...
This commit is contained in:
FGIKCM 2018-06-18 16:21:28 +02:00 committed by GitHub
parent 3002bbfaaa
commit ce6e825b0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -31,6 +31,7 @@ use OCP\IUserBackend;
use OCP\IConfig;
use OCP\IURLGenerator;
use OCP\ISession;
use Symfony\Component\EventDispatcher\GenericEvent;
class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
/** @var IConfig */
@ -108,6 +109,19 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
$qb->setValue($column, $qb->createNamedParameter($value));
}
$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));
}
}