/** * get Array with Principal-Data from User-Object. * * @param UserInterface|GroupInterface $principalObject * @param bool $show_id * * @return array * * @throws Exception */ private function getPrincipalArray($principalObject, $show_id = false) { if (!$principalObject instanceof UserInterface && !$principalObject instanceof GroupInterface) { throw new Exception('$principalObject must be of type UserInterface of GroupInterface'); } $principal = array(); if ($show_id) { $principal['id'] = $principalObject->getId(); } if ($principalObject instanceof UserInterface) { $principal['uri'] = 'principals/' . $principalObject->getUsername(); } else { $principal['uri'] = 'principals/' . $principalObject->getName(); } // get all fields from $this->fieldMap, additional to 'uri' and 'id' foreach ($this->fieldMap as $key => $value) { if (!method_exists($principalObject, $value['getter'])) { continue; } $valueGetter = call_user_func(array($principalObject, $value['getter'])); if ($valueGetter) { $principal[$key] = $valueGetter; } } return $principal; }