Browse Source

Merge pull request #15020 from nextcloud/bugfix/noid/fix-too-many-event-triggers

Bugfix/noid/fix too many event triggers
pull/15043/head
Morris Jobke 7 years ago
committed by GitHub
parent
commit
ccabc63a09
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      lib/private/Avatar/UserAvatar.php
  2. 8
      lib/private/Server.php

5
lib/private/Avatar/UserAvatar.php

@ -312,11 +312,6 @@ class UserAvatar extends Avatar {
* @throws \OCP\PreConditionNotMetException
*/
public function userChanged($feature, $oldValue, $newValue) {
// We only change the avatar on display name changes
if ($feature !== 'displayName') {
return;
}
// If the avatar is not generated (so an uploaded image) we skip this
if (!$this->folder->fileExists('generated')) {
return;

8
lib/private/Server.php

@ -426,10 +426,9 @@ class Server extends ServerContainer implements IServerContainer {
$userSession->listen('\OC\User', 'logout', function () {
\OC_Hook::emit('OC_User', 'logout', array());
});
$userSession->listen('\OC\User', 'changeUser', function ($user, $feature, $value, $oldValue) use ($dispatcher) {
$userSession->listen('\OC\User', 'changeUser', function ($user, $feature, $value, $oldValue) {
/** @var $user \OC\User\User */
\OC_Hook::emit('OC_User', 'changeUser', array('run' => true, 'user' => $user, 'feature' => $feature, 'value' => $value, 'old_value' => $oldValue));
$dispatcher->dispatch('OCP\IUser::changeUser', new GenericEvent($user, ['feature' => $feature, 'oldValue' => $oldValue, 'value' => $value]));
});
return $userSession;
});
@ -1257,6 +1256,11 @@ class Server extends ServerContainer implements IServerContainer {
$oldValue = $e->getArgument('oldValue');
$value = $e->getArgument('value');
// We only change the avatar on display name changes
if ($feature !== 'displayName') {
return;
}
try {
$avatar = $manager->getAvatar($user->getUID());
$avatar->userChanged($feature, $oldValue, $value);

Loading…
Cancel
Save