// use the checksum before modifications
$checksum = md5($this->image->data());
- if ($checksum === $this->config->getUserValue($this->uid, 'user_ldap', 'lastAvatarChecksum', '')) {
+ if ($checksum === $this->config->getUserValue($this->uid, 'user_ldap', 'lastAvatarChecksum', '') && $this->avatarExists()) {
return true;
}
return $isSet;
}
+ private function avatarExists(): bool {
+ try {
+ $currentAvatar = $this->avatarManager->getAvatar($this->uid);
+ return $currentAvatar->exists() && $currentAvatar->isCustomAvatar();
+ } catch (\Exception $e) {
+ return false;
+ }
+ }
+
/**
* @brief sets an image as Nextcloud avatar
* @return bool
$avatar = $this->createMock(IAvatar::class);
$avatar->expects($this->never())
->method('set');
+ $avatar->expects($this->any())
+ ->method('exists')
+ ->willReturn(true);
+ $avatar->expects($this->any())
+ ->method('isCustomAvatar')
+ ->willReturn(true);
- $this->avatarManager->expects($this->never())
- ->method('getAvatar');
+ $this->avatarManager->expects($this->any())
+ ->method('getAvatar')
+ ->with($this->uid)
+ ->willReturn($avatar);
$this->connection->expects($this->any())
->method('resolveRule')