update displayName

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
This commit is contained in:
Maxence Lange 2022-03-09 09:48:54 -01:00
parent 22238597fb
commit 4134ec2a1d
3 changed files with 47 additions and 2 deletions

View file

@ -33,6 +33,7 @@ namespace OCA\Circles\FederatedItems;
use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Deserialize;
use OCA\Circles\Db\CircleRequest;
use OCA\Circles\Db\MemberRequest;
use OCA\Circles\Exceptions\CircleNameTooShortException;
use OCA\Circles\Exceptions\RequestBuilderException;
use OCA\Circles\IFederatedItem;
@ -53,6 +54,9 @@ class CircleEdit implements IFederatedItem {
/** @var CircleRequest */
private $circleRequest;
/** @var MemberRequest */
private $memberRequest;
/** @var CircleService */
private $circleService;
@ -64,15 +68,18 @@ class CircleEdit implements IFederatedItem {
* CircleEdit constructor.
*
* @param CircleRequest $circleRequest
* @param MemberRequest $memberRequest
* @param CircleService $circleService
* @param EventService $eventService
*/
public function __construct(
CircleRequest $circleRequest,
MemberRequest $memberRequest,
CircleService $circleService,
EventService $eventService
) {
$this->circleRequest = $circleRequest;
$this->memberRequest = $memberRequest;
$this->circleService = $circleService;
$this->eventService = $eventService;
}
@ -134,6 +141,7 @@ class CircleEdit implements IFederatedItem {
}
$this->circleRequest->edit($circle);
$this->memberRequest->updateDisplayName($circle->getSingleId(), $circle->getDisplayName());
$this->eventService->circleEditing($event);
}

View file

@ -119,6 +119,11 @@ class DeprecatedListener {
$circles = $this->circleService->getCircles($probe);
foreach ($circles as $circle) {
// we are only interested in direct membership
if ($circle->getInitiator()->getSingleId() !== $federatedUser->getSingleId()) {
continue;
}
$event = new FederatedEvent(MemberDisplayName::class);
$event->setCircle($circle);
$event->getParams()->s('displayName', $user->getDisplayName());

View file

@ -43,6 +43,7 @@ use OCA\Circles\Model\Circle;
use OCA\Circles\Model\Member;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Model\ShareWrapper;
use OCP\IGroupManager;
use OCP\IUserManager;
use Symfony\Component\Console\Output\OutputInterface;
@ -61,6 +62,9 @@ class MaintenanceService {
/** @var IUserManager */
private $userManager;
/** @var IGroupManager */
private $groupManager;
/** @var CircleRequest */
private $circleRequest;
@ -109,6 +113,7 @@ class MaintenanceService {
*/
public function __construct(
IUserManager $userManager,
IGroupManager $groupManager,
CircleRequest $circleRequest,
MemberRequest $memberRequest,
ShareWrapperRequest $shareWrapperRequest,
@ -120,6 +125,7 @@ class MaintenanceService {
ConfigService $configService
) {
$this->userManager = $userManager;
$this->groupManager = $groupManager;
$this->circleRequest = $circleRequest;
$this->memberRequest = $memberRequest;
$this->shareWrapperRequest = $shareWrapperRequest;
@ -272,11 +278,16 @@ class MaintenanceService {
// try {
// $this->output('refresh displayNames older than 7d');
// // $this->refreshOldDisplayNames();
// $this->output('refresh DisplayNames');
// $this->refreshDisplayName();
// } catch (Exception $e) {
// }
try {
// Can be removed in NC27.
$this->output('fix sub-circle display name');
$this->fixSubCirclesDisplayName();
} catch (Exception $e) {
}
}
@ -374,6 +385,10 @@ class MaintenanceService {
foreach ($circles as $circle) {
$owner = $circle->getOwner();
if ($owner->getDisplayUpdate() > (time() - 604800)) {
continue;
}
if ($owner->getUserType() === Member::TYPE_USER) {
$user = $this->userManager->get($owner->getUserId());
$this->memberRequest->updateDisplayName($owner->getSingleId(), $user->getDisplayName());
@ -382,6 +397,23 @@ class MaintenanceService {
}
}
/**
* @throws RequestBuilderException
* @throws InitiatorNotFoundException
*/
private function fixSubCirclesDisplayName(): void {
$probe = new CircleProbe();
$probe->includeSingleCircles();
$circles = $this->circleService->getCircles($probe);
foreach ($circles as $circle) {
$this->memberRequest->updateDisplayName($circle->getSingleId(), $circle->getDisplayName());
}
}
/**
* @param string $message
*/