4343use OCA \Circles \Model \Probes \CircleProbe ;
4444use OCA \Circles \Model \ShareWrapper ;
4545use OCA \Circles \Tools \Traits \TNCLogger ;
46+ use OCP \IGroupManager ;
4647use OCP \IUserManager ;
4748use 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