@@ -811,29 +811,29 @@ discard block |
||
811 | 811 | * @throws MemberNotFoundException |
812 | 812 | */ |
813 | 813 | public function importFromDatabase(array $data, string $prefix = ''): INC22QueryRow { |
814 | - if ($this->get($prefix . 'single_id', $data) === '') { |
|
814 | + if ($this->get($prefix.'single_id', $data) === '') { |
|
815 | 815 | throw new MemberNotFoundException(); |
816 | 816 | } |
817 | 817 | |
818 | - $this->setId($this->get($prefix . 'member_id', $data)); |
|
819 | - $this->setCircleId($this->get($prefix . 'circle_id', $data)); |
|
820 | - $this->setSingleId($this->get($prefix . 'single_id', $data)); |
|
821 | - $this->setUserId($this->get($prefix . 'user_id', $data)); |
|
822 | - $this->setUserType($this->getInt($prefix . 'user_type', $data)); |
|
823 | - $this->setInstance($this->get($prefix . 'instance', $data)); |
|
824 | - $this->setLevel($this->getInt($prefix . 'level', $data)); |
|
825 | - $this->setStatus($this->get($prefix . 'status', $data)); |
|
826 | - $this->setDisplayName($this->get($prefix . 'cached_name', $data)); |
|
827 | - $this->setNotes($this->getArray($prefix . 'note', $data)); |
|
828 | - $this->setContactId($this->get($prefix . 'contact_id', $data)); |
|
829 | - $this->setContactMeta($this->get($prefix . 'contact_meta', $data)); |
|
830 | - |
|
831 | - $cachedUpdate = $this->get($prefix . 'cached_update', $data); |
|
818 | + $this->setId($this->get($prefix.'member_id', $data)); |
|
819 | + $this->setCircleId($this->get($prefix.'circle_id', $data)); |
|
820 | + $this->setSingleId($this->get($prefix.'single_id', $data)); |
|
821 | + $this->setUserId($this->get($prefix.'user_id', $data)); |
|
822 | + $this->setUserType($this->getInt($prefix.'user_type', $data)); |
|
823 | + $this->setInstance($this->get($prefix.'instance', $data)); |
|
824 | + $this->setLevel($this->getInt($prefix.'level', $data)); |
|
825 | + $this->setStatus($this->get($prefix.'status', $data)); |
|
826 | + $this->setDisplayName($this->get($prefix.'cached_name', $data)); |
|
827 | + $this->setNotes($this->getArray($prefix.'note', $data)); |
|
828 | + $this->setContactId($this->get($prefix.'contact_id', $data)); |
|
829 | + $this->setContactMeta($this->get($prefix.'contact_meta', $data)); |
|
830 | + |
|
831 | + $cachedUpdate = $this->get($prefix.'cached_update', $data); |
|
832 | 832 | if ($cachedUpdate !== '') { |
833 | 833 | $this->setDisplayUpdate(DateTime::createFromFormat('Y-m-d H:i:s', $cachedUpdate)->getTimestamp()); |
834 | 834 | } |
835 | 835 | |
836 | - $joined = $this->get($prefix . 'joined', $data); |
|
836 | + $joined = $this->get($prefix.'joined', $data); |
|
837 | 837 | if ($joined !== '') { |
838 | 838 | $this->setJoined(DateTime::createFromFormat('Y-m-d H:i:s', $joined)->getTimestamp()); |
839 | 839 | } |
@@ -924,7 +924,7 @@ discard block |
||
924 | 924 | public static function parseLevelInt(int $level): int { |
925 | 925 | if (!array_key_exists($level, self::$DEF_LEVEL)) { |
926 | 926 | $all = implode(', ', array_keys(self::$DEF_LEVEL)); |
927 | - throw new ParseMemberLevelException('Available levels: ' . $all, 121); |
|
927 | + throw new ParseMemberLevelException('Available levels: '.$all, 121); |
|
928 | 928 | } |
929 | 929 | |
930 | 930 | return $level; |
@@ -943,7 +943,7 @@ discard block |
||
943 | 943 | |
944 | 944 | if (!$level) { |
945 | 945 | $all = implode(', ', array_values(self::$DEF_LEVEL)); |
946 | - throw new ParseMemberLevelException('Available levels: ' . $all, 121); |
|
946 | + throw new ParseMemberLevelException('Available levels: '.$all, 121); |
|
947 | 947 | } |
948 | 948 | |
949 | 949 | return (int)$level; |
@@ -964,7 +964,7 @@ discard block |
||
964 | 964 | $type = array_search($typeString, Member::$TYPE); |
965 | 965 | if ($type === false) { |
966 | 966 | $all = implode(', ', array_values(self::$TYPE)); |
967 | - throw new UserTypeNotFoundException('Available types: ' . $all); |
|
967 | + throw new UserTypeNotFoundException('Available types: '.$all); |
|
968 | 968 | } |
969 | 969 | |
970 | 970 | return (int)$type; |
@@ -176,7 +176,7 @@ discard block |
||
176 | 176 | return $value; |
177 | 177 | } |
178 | 178 | |
179 | - if (($value = $this->config->getSystemValue(Application::APP_ID . '.' . $key, '')) !== '') { |
|
179 | + if (($value = $this->config->getSystemValue(Application::APP_ID.'.'.$key, '')) !== '') { |
|
180 | 180 | return $value; |
181 | 181 | } |
182 | 182 | |
@@ -430,7 +430,7 @@ discard block |
||
430 | 430 | } |
431 | 431 | |
432 | 432 | if (array_key_exists('port', $loopback)) { |
433 | - $loopbackCloudId = $loopback['host'] . ':' . $loopback['port']; |
|
433 | + $loopbackCloudId = $loopback['host'].':'.$loopback['port']; |
|
434 | 434 | } else { |
435 | 435 | $loopbackCloudId = $loopback['host']; |
436 | 436 | } |
@@ -459,12 +459,12 @@ discard block |
||
459 | 459 | $scheme = $this->getAppValue(self::LOOPBACK_CLOUD_SCHEME); |
460 | 460 | } |
461 | 461 | |
462 | - $base = $scheme . '://' . $instance; |
|
462 | + $base = $scheme.'://'.$instance; |
|
463 | 463 | if ($route === '') { |
464 | 464 | return $base; |
465 | 465 | } |
466 | 466 | |
467 | - return $base . $this->urlGenerator->linkToRoute($route, $args); |
|
467 | + return $base.$this->urlGenerator->linkToRoute($route, $args); |
|
468 | 468 | } |
469 | 469 | |
470 | 470 | |
@@ -561,7 +561,7 @@ discard block |
||
561 | 561 | * @return string |
562 | 562 | */ |
563 | 563 | public function displayFederatedUser(IFederatedUser $federatedUser): string { |
564 | - return $federatedUser->getUserId() . $this->displayInstance($federatedUser->getInstance(), true); |
|
564 | + return $federatedUser->getUserId().$this->displayInstance($federatedUser->getInstance(), true); |
|
565 | 565 | } |
566 | 566 | |
567 | 567 | /** |
@@ -575,7 +575,7 @@ discard block |
||
575 | 575 | return ''; |
576 | 576 | } |
577 | 577 | |
578 | - return (($showAt) ? '@' : '') . $instance; |
|
578 | + return (($showAt) ? '@' : '').$instance; |
|
579 | 579 | } |
580 | 580 | |
581 | 581 |
@@ -489,7 +489,7 @@ discard block |
||
489 | 489 | |
490 | 490 | $i = 1; |
491 | 491 | while (true) { |
492 | - $testDisplayName = $baseDisplayName . (($i > 1) ? ' (' . $i . ')' : ''); |
|
492 | + $testDisplayName = $baseDisplayName.(($i > 1) ? ' ('.$i.')' : ''); |
|
493 | 493 | $test = new Circle(); |
494 | 494 | $test->setDisplayName($testDisplayName); |
495 | 495 | |
@@ -522,7 +522,7 @@ discard block |
||
522 | 522 | |
523 | 523 | $i = 1; |
524 | 524 | while (true) { |
525 | - $testSanitizedName = $baseSanitizedName . (($i > 1) ? '-' . $i : ''); |
|
525 | + $testSanitizedName = $baseSanitizedName.(($i > 1) ? '-'.$i : ''); |
|
526 | 526 | |
527 | 527 | $test = new Circle(); |
528 | 528 | $test->setSanitizedName($testSanitizedName); |
@@ -84,26 +84,26 @@ discard block |
||
84 | 84 | |
85 | 85 | |
86 | 86 | // specific value |
87 | - const CFG_CIRCLE = 0; // only for code readability. Circle is locked by default. |
|
88 | - const CFG_SINGLE = 1; // Circle with only one single member. |
|
89 | - const CFG_PERSONAL = 2; // Personal circle, only the owner can see it. |
|
87 | + const CFG_CIRCLE = 0; // only for code readability. Circle is locked by default. |
|
88 | + const CFG_SINGLE = 1; // Circle with only one single member. |
|
89 | + const CFG_PERSONAL = 2; // Personal circle, only the owner can see it. |
|
90 | 90 | |
91 | 91 | // bitwise |
92 | - const CFG_SYSTEM = 4; // System Circle (not managed by the official front-end). Meaning some config are limited |
|
93 | - const CFG_VISIBLE = 8; // Visible to everyone, if not visible, people have to know its name to be able to find it |
|
94 | - const CFG_OPEN = 16; // Circle is open, people can join |
|
95 | - const CFG_INVITE = 32; // Adding a member generate an invitation that needs to be accepted |
|
96 | - const CFG_REQUEST = 64; // Request to join Circles needs to be confirmed by a moderator |
|
97 | - const CFG_FRIEND = 128; // Members of the circle can invite their friends |
|
98 | - const CFG_PROTECTED = 256; // Password protected to join/request |
|
99 | - const CFG_NO_OWNER = 512; // no owner, only members |
|
100 | - const CFG_HIDDEN = 1024; // hidden from listing, but available as a share entity |
|
101 | - const CFG_BACKEND = 2048; // Fully hidden, only backend Circles |
|
102 | - const CFG_LOCAL = 4096; // Local even on GlobalScale |
|
103 | - const CFG_ROOT = 8192; // Circle cannot be inside another Circle |
|
104 | - const CFG_CIRCLE_INVITE = 16384; // Circle must confirm when invited in another circle |
|
105 | - const CFG_FEDERATED = 32768; // Federated |
|
106 | - const CFG_MOUNTPOINT = 65536; // Generate a Files folder for this Circle |
|
92 | + const CFG_SYSTEM = 4; // System Circle (not managed by the official front-end). Meaning some config are limited |
|
93 | + const CFG_VISIBLE = 8; // Visible to everyone, if not visible, people have to know its name to be able to find it |
|
94 | + const CFG_OPEN = 16; // Circle is open, people can join |
|
95 | + const CFG_INVITE = 32; // Adding a member generate an invitation that needs to be accepted |
|
96 | + const CFG_REQUEST = 64; // Request to join Circles needs to be confirmed by a moderator |
|
97 | + const CFG_FRIEND = 128; // Members of the circle can invite their friends |
|
98 | + const CFG_PROTECTED = 256; // Password protected to join/request |
|
99 | + const CFG_NO_OWNER = 512; // no owner, only members |
|
100 | + const CFG_HIDDEN = 1024; // hidden from listing, but available as a share entity |
|
101 | + const CFG_BACKEND = 2048; // Fully hidden, only backend Circles |
|
102 | + const CFG_LOCAL = 4096; // Local even on GlobalScale |
|
103 | + const CFG_ROOT = 8192; // Circle cannot be inside another Circle |
|
104 | + const CFG_CIRCLE_INVITE = 16384; // Circle must confirm when invited in another circle |
|
105 | + const CFG_FEDERATED = 32768; // Federated |
|
106 | + const CFG_MOUNTPOINT = 65536; // Generate a Files folder for this Circle |
|
107 | 107 | |
108 | 108 | public static $DEF_CFG_MAX = 131071; |
109 | 109 | |
@@ -742,23 +742,23 @@ discard block |
||
742 | 742 | * @throws CircleNotFoundException |
743 | 743 | */ |
744 | 744 | public function importFromDatabase(array $data, string $prefix = ''): INC22QueryRow { |
745 | - if ($this->get($prefix . 'unique_id', $data) === '') { |
|
745 | + if ($this->get($prefix.'unique_id', $data) === '') { |
|
746 | 746 | throw new CircleNotFoundException(); |
747 | 747 | } |
748 | 748 | |
749 | - $this->setSingleId($this->get($prefix . 'unique_id', $data)) |
|
750 | - ->setName($this->get($prefix . 'name', $data)) |
|
751 | - ->setDisplayName($this->get($prefix . 'display_name', $data)) |
|
752 | - ->setSanitizedName($this->get($prefix . 'sanitized_name', $data)) |
|
753 | - ->setConfig($this->getInt($prefix . 'config', $data)) |
|
754 | - ->setSource($this->getInt($prefix . 'source', $data)) |
|
755 | - ->setInstance($this->get($prefix . 'instance', $data)) |
|
756 | - ->setSettings($this->getArray($prefix . 'settings', $data)) |
|
757 | - ->setContactAddressBook($this->getInt($prefix . 'contact_addressbook', $data)) |
|
758 | - ->setContactGroupName($this->get($prefix . 'contact_groupname', $data)) |
|
759 | - ->setDescription($this->get($prefix . 'description', $data)); |
|
760 | - |
|
761 | - $creation = $this->get($prefix . 'creation', $data); |
|
749 | + $this->setSingleId($this->get($prefix.'unique_id', $data)) |
|
750 | + ->setName($this->get($prefix.'name', $data)) |
|
751 | + ->setDisplayName($this->get($prefix.'display_name', $data)) |
|
752 | + ->setSanitizedName($this->get($prefix.'sanitized_name', $data)) |
|
753 | + ->setConfig($this->getInt($prefix.'config', $data)) |
|
754 | + ->setSource($this->getInt($prefix.'source', $data)) |
|
755 | + ->setInstance($this->get($prefix.'instance', $data)) |
|
756 | + ->setSettings($this->getArray($prefix.'settings', $data)) |
|
757 | + ->setContactAddressBook($this->getInt($prefix.'contact_addressbook', $data)) |
|
758 | + ->setContactGroupName($this->get($prefix.'contact_groupname', $data)) |
|
759 | + ->setDescription($this->get($prefix.'description', $data)); |
|
760 | + |
|
761 | + $creation = $this->get($prefix.'creation', $data); |
|
762 | 762 | $this->setCreation(DateTime::createFromFormat('Y-m-d H:i:s', $creation)->getTimestamp()); |
763 | 763 | |
764 | 764 | $this->getManager()->manageImportFromDatabase($this, $data, $prefix); |
@@ -96,13 +96,13 @@ discard block |
||
96 | 96 | $circle = $event->getCircle(); |
97 | 97 | $eventType = ($event->getType() === CircleGenericEvent::INVITED) ? 'invited' : 'joined'; |
98 | 98 | |
99 | - $info = 'A new member have been added (' . $eventType . ') to a Circle. '; |
|
99 | + $info = 'A new member have been added ('.$eventType.') to a Circle. '; |
|
100 | 100 | |
101 | - $info .= 'userId: ' . $member->getUserId() . '; userType: ' . Member::$TYPE[$member->getUserType( |
|
101 | + $info .= 'userId: '.$member->getUserId().'; userType: '.Member::$TYPE[$member->getUserType( |
|
102 | 102 | )] |
103 | - . '; singleId: ' . $member->getSingleId() . '; memberId: ' . $member->getId() |
|
104 | - . '; isLocal: ' . json_encode($member->isLocal()) . '; level: ' |
|
105 | - . Member::$DEF_LEVEL[$member->getLevel()] . '; '; |
|
103 | + . '; singleId: '.$member->getSingleId().'; memberId: '.$member->getId() |
|
104 | + . '; isLocal: '.json_encode($member->isLocal()).'; level: ' |
|
105 | + . Member::$DEF_LEVEL[$member->getLevel()].'; '; |
|
106 | 106 | |
107 | 107 | $memberships = array_map( |
108 | 108 | function(Membership $membership) { |
@@ -111,22 +111,22 @@ discard block |
||
111 | 111 | ); |
112 | 112 | |
113 | 113 | $listMemberships = (count($memberships) > 0) ? implode(', ', $memberships) : 'none'; |
114 | - $info .= 'circleName: ' . $circle->getDisplayName() . '; circleId: ' . $circle->getSingleId() |
|
115 | - . '; Circle memberships: ' . $listMemberships . '.'; |
|
114 | + $info .= 'circleName: '.$circle->getDisplayName().'; circleId: '.$circle->getSingleId() |
|
115 | + . '; Circle memberships: '.$listMemberships.'.'; |
|
116 | 116 | |
117 | 117 | if ($member->getUserType() === Member::TYPE_CIRCLE) { |
118 | 118 | $basedOn = $member->getBasedOn(); |
119 | 119 | $members = array_map( |
120 | 120 | function(Member $member) { |
121 | - return $member->getUserId() . ' (' . Member::$TYPE[$member->getUserType()] . ')'; |
|
121 | + return $member->getUserId().' ('.Member::$TYPE[$member->getUserType()].')'; |
|
122 | 122 | }, $basedOn->getInheritedMembers() |
123 | 123 | ); |
124 | 124 | |
125 | - $info .= ' Member is a Circle (singleId: ' . $basedOn->getSingleId() |
|
126 | - . ') that contains those inherited members: ' . implode(', ', $members); |
|
125 | + $info .= ' Member is a Circle (singleId: '.$basedOn->getSingleId() |
|
126 | + . ') that contains those inherited members: '.implode(', ', $members); |
|
127 | 127 | } |
128 | 128 | |
129 | - $this->log(3, $prefix . $info); |
|
129 | + $this->log(3, $prefix.$info); |
|
130 | 130 | } |
131 | 131 | } |
132 | 132 |
@@ -169,7 +169,7 @@ |
||
169 | 169 | */ |
170 | 170 | private function output(string $message): void { |
171 | 171 | if (!is_null($this->output)) { |
172 | - $this->output->writeln('- ' . $message); |
|
172 | + $this->output->writeln('- '.$message); |
|
173 | 173 | } |
174 | 174 | } |
175 | 175 |
@@ -400,15 +400,15 @@ |
||
400 | 400 | * @throws FederatedUserNotFoundException |
401 | 401 | */ |
402 | 402 | public function importFromDatabase(array $data, string $prefix = ''): INC22QueryRow { |
403 | - if ($this->get($prefix . 'single_id', $data) === '') { |
|
403 | + if ($this->get($prefix.'single_id', $data) === '') { |
|
404 | 404 | throw new FederatedUserNotFoundException(); |
405 | 405 | } |
406 | 406 | |
407 | - $this->setSingleId($this->get($prefix . 'single_id', $data)); |
|
408 | - $this->setUserId($this->get($prefix . 'user_id', $data)); |
|
409 | - $this->setUserType($this->getInt($prefix . 'user_type', $data)); |
|
410 | - $this->setDisplayName($this->get($prefix . 'cached_name', $data)); |
|
411 | - $this->setInstance($this->get($prefix . 'instance', $data)); |
|
407 | + $this->setSingleId($this->get($prefix.'single_id', $data)); |
|
408 | + $this->setUserId($this->get($prefix.'user_id', $data)); |
|
409 | + $this->setUserType($this->getInt($prefix.'user_type', $data)); |
|
410 | + $this->setDisplayName($this->get($prefix.'cached_name', $data)); |
|
411 | + $this->setInstance($this->get($prefix.'instance', $data)); |
|
412 | 412 | |
413 | 413 | $this->getManager()->manageImportFromDatabase($this, $data, $prefix); |
414 | 414 |
@@ -50,11 +50,11 @@ discard block |
||
50 | 50 | |
51 | 51 | use TArrayTools; |
52 | 52 | |
53 | - const TYPE_UNKNOWN = 'Unknown'; // not trusted |
|
54 | - const TYPE_PASSIVE = 'Passive'; // Minimum information about Federated Circles are broadcasted if a member belongs to the circle. |
|
55 | - const TYPE_EXTERNAL = 'External'; // info about Federated Circles and their members are broadcasted if a member belongs to the circle. |
|
56 | - const TYPE_TRUSTED = 'Trusted'; // everything about Federated Circles are broadcasted. |
|
57 | - const TYPE_GLOBALSCALE = 'GlobalScale'; // every Circle is broadcasted, |
|
53 | + const TYPE_UNKNOWN = 'Unknown'; // not trusted |
|
54 | + const TYPE_PASSIVE = 'Passive'; // Minimum information about Federated Circles are broadcasted if a member belongs to the circle. |
|
55 | + const TYPE_EXTERNAL = 'External'; // info about Federated Circles and their members are broadcasted if a member belongs to the circle. |
|
56 | + const TYPE_TRUSTED = 'Trusted'; // everything about Federated Circles are broadcasted. |
|
57 | + const TYPE_GLOBALSCALE = 'GlobalScale'; // every Circle is broadcasted, |
|
58 | 58 | |
59 | 59 | public static $LIST_TYPE = [ |
60 | 60 | self::TYPE_UNKNOWN, |
@@ -477,7 +477,7 @@ discard block |
||
477 | 477 | ]; |
478 | 478 | |
479 | 479 | if ($this->getAuthSigned() !== '') { |
480 | - $data['auth-signed'] = $this->getAlgorithm() . ':' . $this->getAuthSigned(); |
|
480 | + $data['auth-signed'] = $this->getAlgorithm().':'.$this->getAuthSigned(); |
|
481 | 481 | } |
482 | 482 | |
483 | 483 | if (!empty($this->getAliases())) { |
@@ -496,17 +496,17 @@ discard block |
||
496 | 496 | * @throws RemoteNotFoundException |
497 | 497 | */ |
498 | 498 | public function importFromDatabase(array $data, string $prefix = ''): INC22QueryRow { |
499 | - if ($this->getInt($prefix . 'id', $data) === 0) { |
|
499 | + if ($this->getInt($prefix.'id', $data) === 0) { |
|
500 | 500 | throw new RemoteNotFoundException(); |
501 | 501 | } |
502 | 502 | |
503 | - $this->setDbId($this->getInt($prefix . 'id', $data)); |
|
504 | - $this->import($this->getArray($prefix . 'item', $data)); |
|
505 | - $this->setOrigData($this->getArray($prefix . 'item', $data)); |
|
506 | - $this->setType($this->get($prefix . 'type', $data)); |
|
507 | - $this->setInterface($this->getInt($prefix . 'interface', $data)); |
|
508 | - $this->setInstance($this->get($prefix . 'instance', $data)); |
|
509 | - $this->setId($this->get($prefix . 'href', $data)); |
|
503 | + $this->setDbId($this->getInt($prefix.'id', $data)); |
|
504 | + $this->import($this->getArray($prefix.'item', $data)); |
|
505 | + $this->setOrigData($this->getArray($prefix.'item', $data)); |
|
506 | + $this->setType($this->get($prefix.'type', $data)); |
|
507 | + $this->setInterface($this->getInt($prefix.'interface', $data)); |
|
508 | + $this->setInstance($this->get($prefix.'instance', $data)); |
|
509 | + $this->setId($this->get($prefix.'href', $data)); |
|
510 | 510 | |
511 | 511 | return $this; |
512 | 512 | } |
@@ -394,7 +394,7 @@ discard block |
||
394 | 394 | if ($check) { |
395 | 395 | $user = $this->userManager->get($userId); |
396 | 396 | if ($user === null) { |
397 | - throw new FederatedUserNotFoundException('user ' . $userId . ' not found'); |
|
397 | + throw new FederatedUserNotFoundException('user '.$userId.' not found'); |
|
398 | 398 | } |
399 | 399 | $userId = $user->getUID(); |
400 | 400 | $displayName = $user->getDisplayName(); |
@@ -852,7 +852,7 @@ discard block |
||
852 | 852 | $prefix = ($federatedUser->getUserType() === Member::TYPE_APP) ? 'app' |
853 | 853 | : Member::$TYPE[$federatedUser->getUserType()]; |
854 | 854 | |
855 | - $circle->setName($prefix . ':' . $federatedUser->getUserId() . ':' . $id) |
|
855 | + $circle->setName($prefix.':'.$federatedUser->getUserId().':'.$id) |
|
856 | 856 | ->setDisplayName($federatedUser->getDisplayName()) |
857 | 857 | ->setSingleId($id) |
858 | 858 | ->setSource($source); |
@@ -976,7 +976,7 @@ discard block |
||
976 | 976 | $owner = $this->getCurrentApp(); |
977 | 977 | |
978 | 978 | $circle = new Circle(); |
979 | - $circle->setName('group:' . $groupId) |
|
979 | + $circle->setName('group:'.$groupId) |
|
980 | 980 | ->setConfig(Circle::CFG_SYSTEM | Circle::CFG_NO_OWNER | Circle::CFG_HIDDEN) |
981 | 981 | ->setSingleId($this->token(ManagedModel::ID_LENGTH)) |
982 | 982 | ->setSource(Member::TYPE_GROUP); |