@@ -69,8 +69,8 @@ public function listMembers($groupKey, $optParams = [])
6969 $ this ->validateGroupExists ($ groupKey );
7070 $ pageSize = $ optParams ['pageSize ' ] ?? 10 ;
7171 $ pageToken = $ optParams ['pageToken ' ] ?? 0 ;
72- $ query = $ optParams ['query ' ] ?? null ;
73- $ expectedRoles = $ this ->extractRoles ($ query );
72+ $ roles = $ optParams ['roles ' ] ?? null ;
73+ $ expectedRoles = $ this ->extractRoles ($ roles );
7474 $ members = new GoogleDirectory_Members ();
7575 $ directoryMemberRecords = $ this ->getRecords ();
7676 $ memberCounter = 0 ;
@@ -81,8 +81,8 @@ public function listMembers($groupKey, $optParams = [])
8181 && $ memberCounter >= ($ pageToken * $ pageSize ) // Matches the subsection of all the members
8282 && (empty ($ expectedRoles ) || in_array ($ memberData ['member ' ]['role ' ], $ expectedRoles )) // Matches role
8383 ) {
84- $ memberCounter = $ memberCounter + 1 ;
85- $ this ->addToMembers ($ memberData , $ members );
84+ $ memberCounter = $ memberCounter + 1 ;
85+ $ this ->addToMembers ($ memberData , $ members );
8686 }
8787 $ currentMembers = $ members ->getMembers ();
8888 $ currentResultSize = count ($ currentMembers );
@@ -98,17 +98,11 @@ public function listMembers($groupKey, $optParams = [])
9898 return $ members ;
9999 }
100100
101- protected function extractRoles (?string $ query ): array
101+ protected function extractRoles (?string $ roles ): array
102102 {
103- if (! empty ($ query ) && str_contains ($ query , 'roles ' )) {
104- $ roleSegmentStart = substr ($ query , strpos ($ query , 'roles ' ));
105- $ roleSegmentEnd = strrpos ($ roleSegmentStart , ' ' );
106- if ($ roleSegmentEnd === false ) {
107- $ roleSegmentEnd = strlen ($ roleSegmentStart );
108- }
109- $ roleSegment = trim (substr ($ roleSegmentStart , 0 , $ roleSegmentEnd ));
110- $ roleValue = substr ($ roleSegment , 6 ); // roles= is 0-5
111- $ expectedRoles = explode (', ' , $ roleValue );
103+ if (! empty ($ roles )) {
104+ $ allExpectedRoles = explode (', ' , $ roles );
105+ $ expectedRoles = array_map (function ($ role ) { return mb_strtoupper (trim ($ role )); }, $ allExpectedRoles );
112106 } else {
113107 $ expectedRoles = [];
114108 }
0 commit comments