Skip to content

Commit b0b6315

Browse files
committed
update displayName
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
1 parent d255537 commit b0b6315

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed

lib/FederatedItems/CircleEdit.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
use OCA\Circles\Tools\Traits\TDeserialize;
3535
use OCA\Circles\Db\CircleRequest;
36+
use OCA\Circles\Db\MemberRequest;
3637
use OCA\Circles\Exceptions\CircleNameTooShortException;
3738
use OCA\Circles\Exceptions\RequestBuilderException;
3839
use OCA\Circles\IFederatedItem;
@@ -53,6 +54,9 @@ class CircleEdit implements IFederatedItem {
5354
/** @var CircleRequest */
5455
private $circleRequest;
5556

57+
/** @var MemberRequest */
58+
private $memberRequest;
59+
5660
/** @var CircleService */
5761
private $circleService;
5862

@@ -64,15 +68,18 @@ class CircleEdit implements IFederatedItem {
6468
* CircleEdit constructor.
6569
*
6670
* @param CircleRequest $circleRequest
71+
* @param MemberRequest $memberRequest
6772
* @param CircleService $circleService
6873
* @param EventService $eventService
6974
*/
7075
public function __construct(
7176
CircleRequest $circleRequest,
77+
MemberRequest $memberRequest,
7278
CircleService $circleService,
7379
EventService $eventService
7480
) {
7581
$this->circleRequest = $circleRequest;
82+
$this->memberRequest = $memberRequest;
7683
$this->circleService = $circleService;
7784
$this->eventService = $eventService;
7885
}
@@ -134,6 +141,7 @@ public function manage(FederatedEvent $event): void {
134141
}
135142

136143
$this->circleRequest->edit($circle);
144+
$this->memberRequest->updateDisplayName($circle->getSingleId(), $circle->getDisplayName());
137145
$this->eventService->circleEditing($event);
138146
}
139147

lib/Listeners/DeprecatedListener.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ public function userAccountUpdated(IUser $user) {
119119
$circles = $this->circleService->getCircles($probe);
120120

121121
foreach ($circles as $circle) {
122+
// we are only interested in direct membership
123+
if ($circle->getInitiator()->getSingleId() !== $federatedUser->getSingleId()) {
124+
continue;
125+
}
126+
122127
$event = new FederatedEvent(MemberDisplayName::class);
123128
$event->setCircle($circle);
124129
$event->getParams()->s('displayName', $user->getDisplayName());

lib/Service/MaintenanceService.php

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
use OCA\Circles\Model\Probes\CircleProbe;
4444
use OCA\Circles\Model\ShareWrapper;
4545
use OCA\Circles\Tools\Traits\TNCLogger;
46+
use OCP\IGroupManager;
4647
use OCP\IUserManager;
4748
use Symfony\Component\Console\Output\OutputInterface;
4849

@@ -61,6 +62,9 @@ class MaintenanceService {
6162
/** @var IUserManager */
6263
private $userManager;
6364

65+
/** @var IGroupManager */
66+
private $groupManager;
67+
6468
/** @var CircleRequest */
6569
private $circleRequest;
6670

@@ -109,6 +113,7 @@ class MaintenanceService {
109113
*/
110114
public function __construct(
111115
IUserManager $userManager,
116+
IGroupManager $groupManager,
112117
CircleRequest $circleRequest,
113118
MemberRequest $memberRequest,
114119
ShareWrapperRequest $shareWrapperRequest,
@@ -120,6 +125,7 @@ public function __construct(
120125
ConfigService $configService
121126
) {
122127
$this->userManager = $userManager;
128+
$this->groupManager = $groupManager;
123129
$this->circleRequest = $circleRequest;
124130
$this->memberRequest = $memberRequest;
125131
$this->shareWrapperRequest = $shareWrapperRequest;
@@ -272,8 +278,6 @@ private function runMaintenance5(): void {
272278

273279
// try {
274280
// $this->output('refresh displayNames older than 7d');
275-
// // $this->refreshOldDisplayNames();
276-
// $this->output('refresh DisplayNames');
277281
// $this->refreshDisplayName();
278282
// } catch (Exception $e) {
279283
// }
@@ -284,6 +288,13 @@ private function runMaintenance5(): void {
284288
$this->removeOrphanShares();
285289
} catch (Exception $e) {
286290
}
291+
292+
try {
293+
// Can be removed in NC27.
294+
$this->output('fix sub-circle display name');
295+
$this->fixSubCirclesDisplayName();
296+
} catch (Exception $e) {
297+
}
287298
}
288299

289300

@@ -389,6 +400,10 @@ private function refreshDisplayName(): void {
389400

390401
foreach ($circles as $circle) {
391402
$owner = $circle->getOwner();
403+
if ($owner->getDisplayUpdate() > (time() - 604800)) {
404+
continue;
405+
}
406+
392407
if ($owner->getUserType() === Member::TYPE_USER) {
393408
$user = $this->userManager->get($owner->getUserId());
394409
$this->memberRequest->updateDisplayName($owner->getSingleId(), $user->getDisplayName());
@@ -397,6 +412,23 @@ private function refreshDisplayName(): void {
397412
}
398413
}
399414

415+
416+
/**
417+
* @throws RequestBuilderException
418+
* @throws InitiatorNotFoundException
419+
*/
420+
private function fixSubCirclesDisplayName(): void {
421+
$probe = new CircleProbe();
422+
$probe->includeSingleCircles();
423+
424+
$circles = $this->circleService->getCircles($probe);
425+
426+
foreach ($circles as $circle) {
427+
$this->memberRequest->updateDisplayName($circle->getSingleId(), $circle->getDisplayName());
428+
}
429+
}
430+
431+
400432
/**
401433
* @param string $message
402434
*/

0 commit comments

Comments
 (0)