99
1010use OCP \Collaboration \Collaborators \ISearchPlugin ;
1111use OCP \Collaboration \Collaborators \ISearchResult ;
12+ use OCP \Teams \ITeamManager ;
1213use OCP \Collaboration \Collaborators \SearchResultType ;
1314use OCP \DB \QueryBuilder \IQueryBuilder ;
1415use OCP \IAppConfig ;
@@ -26,6 +27,7 @@ public function __construct(
2627 private IAppConfig $ appConfig ,
2728 private IUserManager $ userManager ,
2829 private IGroupManager $ groupManager ,
30+ private ITeamManager $ teamManager ,
2931 private IUserSession $ userSession ,
3032 private IUserStatusManager $ userStatusManager ,
3133 private IDBConnection $ connection ,
@@ -67,6 +69,23 @@ public function search($search, $limit, $offset, ISearchResult $searchResult): b
6769 }
6870 }
6971 }
72+
73+ // If teams are enabled, also search in them
74+ if ($ this ->teamManager ->hasTeamSupport ()) {
75+ $ teams = $ this ->teamManager ->getTeamsForUser ($ currentUser ->getUID ());
76+ foreach ($ teams as $ team ) {
77+ $ usersInTeam = $ this ->teamManager ->getMembersOfTeam ($ team ->getId (), $ currentUser ->getUID ());
78+ foreach ($ usersInTeam as $ userId => $ displayName ) {
79+ if (!str_contains ($ userId , $ search ) && !str_contains ($ displayName , $ search )) {
80+ continue ;
81+ }
82+ $ user = $ this ->userManager ->get ($ userId );
83+ if ($ user !== null && $ user ->isEnabled ()) {
84+ $ users [$ userId ] = ['wide ' , $ user ];
85+ }
86+ }
87+ }
88+ }
7089 }
7190
7291 if ($ shareeEnumerationRestrictToPhone ) {
@@ -77,6 +96,7 @@ public function search($search, $limit, $offset, ISearchResult $searchResult): b
7796 }
7897 }
7998 }
99+
80100 }
81101 }
82102
0 commit comments