public function getRolesComputed()
{
$groups = self::getGroups();
$baseRoles = array();
foreach ($this->getRoles() as $role) {
$baseRole = array('id' => $role->getRoleId(), 'name' => $role->getName(), 'resources' => null);
foreach ($role->getIteratorResources() as $resource) {
$r = array('id' => $resource->getResourceId(), 'granted' => $role->isAllowed($resource->getResourceId()) ? 1 : 0, 'name' => $resource->getName(), 'group' => $resource->getGroup(), 'groupOrder' => isset($groups[$resource->getGroup()]) ? $groups[$resource->getGroup()] : 0, 'permissions' => null);
foreach ($resource->getPermissions() as $permissionId => $permissionDescription) {
$r['permissions'][$permissionId] = $role->isAllowed($resource->getResourceId(), $permissionId) ? 1 : 0;
}
$baseRole['resources'][] = $r;
}
$baseRoles[] = $baseRole;
}
return $baseRoles;
}