diff --git a/Lib/GrouperApiAccess.php b/Lib/GrouperApiAccess.php index c603f01..b529462 100644 --- a/Lib/GrouperApiAccess.php +++ b/Lib/GrouperApiAccess.php @@ -163,8 +163,12 @@ public function grouperGroupLeaveOrJoin(array $queryData) { if ($groupLeaveOrJoin == "Leave") { $memberRequest = "WsRestDeleteMemberRequest"; + $resultResponse = 'WsDeleteMemberResults'; + $resultGroup = 'wsGroup'; } elseif ($groupLeaveOrJoin == "Join") { $memberRequest = "WsRestAddMemberRequest"; + $resultResponse = 'WsAddMemberResults'; + $resultGroup = 'wsGroupAssigned'; } else { CakeLog::write('error', "GrouperLite API - grouperGroupLeaveOrJoin: Option of $groupLeaveOrJoin is not supported"); @@ -172,7 +176,7 @@ public function grouperGroupLeaveOrJoin(array $queryData) { } //Build request logic - $groupToLeave = array( + $groupCommand = array( $memberRequest => array( "actAsSubjectLookup" => array( "subjectId" => $userId @@ -187,10 +191,10 @@ public function grouperGroupLeaveOrJoin(array $queryData) { $connectionUrl = "{$this->config['fullUrl']}/groups/{$groupName}/members"; try { - $results = $this->http->sendRequest('PUT', $connectionUrl, json_encode($groupToLeave)); + $results = $this->http->sendRequest('PUT', $connectionUrl, json_encode($groupCommand)); - if (isset($results['WsAddMemberResults']['wsGroupAssigned']) && $results['WsAddMemberResults']['wsGroupAssigned'] != NULL) { - $groupAssigned = $results['WsAddMemberResults']['wsGroupAssigned']['name']; + if (isset($results[$resultResponse][$resultGroup]) && $results[$resultResponse][$resultGroup] != NULL) { + $groupAssigned = $results[$resultResponse][$resultGroup]['name']; if ($groupAssigned == urldecode($groupName)) { return true; }