Merge pull request #23895 from nextcloud/backport/23799/stable19-minimal

[stable19] fix potentially passing null to events where IUser is expected
This commit is contained in:
John Molakvoæ 2020-11-04 16:01:57 +01:00 committed by GitHub
commit be41b18e89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 2 deletions

View File

@ -47,6 +47,7 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Events\UserAddedEvent; use OCP\Group\Events\UserAddedEvent;
use OCP\Group\Events\UserRemovedEvent; use OCP\Group\Events\UserRemovedEvent;
use OCP\ILogger; use OCP\ILogger;
use OCP\IUser;
class UpdateGroups extends \OC\BackgroundJob\TimedJob { class UpdateGroups extends \OC\BackgroundJob\TimedJob {
private static $groupsFromDB; private static $groupsFromDB;
@ -116,7 +117,9 @@ class UpdateGroups extends \OC\BackgroundJob\TimedJob {
$groupObject = $groupManager->get($group); $groupObject = $groupManager->get($group);
foreach (array_diff($knownUsers, $actualUsers) as $removedUser) { foreach (array_diff($knownUsers, $actualUsers) as $removedUser) {
$userObject = $userManager->get($removedUser); $userObject = $userManager->get($removedUser);
$dispatcher->dispatchTyped(new UserRemovedEvent($groupObject, $userObject)); if ($userObject instanceof IUser) {
$dispatcher->dispatchTyped(new UserRemovedEvent($groupObject, $userObject));
}
\OCP\Util::writeLog('user_ldap', \OCP\Util::writeLog('user_ldap',
'bgJ "updateGroups" "'.$removedUser.'" removed from "'.$group.'".', 'bgJ "updateGroups" "'.$removedUser.'" removed from "'.$group.'".',
ILogger::INFO); ILogger::INFO);
@ -124,7 +127,9 @@ class UpdateGroups extends \OC\BackgroundJob\TimedJob {
} }
foreach (array_diff($actualUsers, $knownUsers) as $addedUser) { foreach (array_diff($actualUsers, $knownUsers) as $addedUser) {
$userObject = $userManager->get($addedUser); $userObject = $userManager->get($addedUser);
$dispatcher->dispatchTyped(new UserAddedEvent($groupObject, $userObject)); if ($userObject instanceof IUser) {
$dispatcher->dispatchTyped(new UserAddedEvent($groupObject, $userObject));
}
\OCP\Util::writeLog('user_ldap', \OCP\Util::writeLog('user_ldap',
'bgJ "updateGroups" "'.$addedUser.'" added to "'.$group.'".', 'bgJ "updateGroups" "'.$addedUser.'" added to "'.$group.'".',
ILogger::INFO); ILogger::INFO);