diff --git a/apps/settings/lib/Settings/Personal/PersonalInfo.php b/apps/settings/lib/Settings/Personal/PersonalInfo.php index 217f447d916..27226a47817 100644 --- a/apps/settings/lib/Settings/Personal/PersonalInfo.php +++ b/apps/settings/lib/Settings/Personal/PersonalInfo.php @@ -29,6 +29,8 @@ use OCP\L10N\IFactory; use OCP\Notification\IManager; use OCP\Server; use OCP\Settings\ISettings; +use OCP\Teams\ITeamManager; +use OCP\Teams\Team; use OCP\Util; class PersonalInfo implements ISettings { @@ -40,6 +42,7 @@ class PersonalInfo implements ISettings { private IConfig $config, private IUserManager $userManager, private IGroupManager $groupManager, + private ITeamManager $teamManager, private IAccountManager $accountManager, ProfileManager $profileManager, private IAppManager $appManager, @@ -87,6 +90,7 @@ class PersonalInfo implements ISettings { 'userId' => $uid, 'avatar' => $this->getProperty($account, IAccountManager::PROPERTY_AVATAR), 'groups' => $this->getGroups($user), + 'teams' => $this->getTeamMemberships($user), 'quota' => $storageInfo['quota'], 'totalSpace' => $totalSpace, 'usage' => Util::humanFileSize($storageInfo['used']), @@ -192,6 +196,26 @@ class PersonalInfo implements ISettings { return $groups; } + /** + * returns a sorted list of the user's team memberships + */ + private function getTeamMemberships(IUser $user): array { + $circlesEnabled = $this->appManager->isEnabledForUser('circles'); + if (!$circlesEnabled) { + return []; + } + + $teams = array_map( + static function (Team $team) { + return $team->getDisplayName(); + }, + $this->teamManager->getMemberships($user->getUID()) + ); + sort($teams); + + return $teams; + } + /** * returns the primary email and additional emails in an * associative array diff --git a/apps/settings/src/components/PersonalInfo/DetailsSection.vue b/apps/settings/src/components/PersonalInfo/DetailsSection.vue index baf7d2d1dd8..1e59936a14d 100644 --- a/apps/settings/src/components/PersonalInfo/DetailsSection.vue +++ b/apps/settings/src/components/PersonalInfo/DetailsSection.vue @@ -13,7 +13,7 @@
{{ t('settings', 'You are a member of the following groups:') }}
- {{ groups.join(', ') }} + {{ [...groups, ...teams].join(', ') }}