Scalr\Acl\Acl::getAccountRoleComputed PHP Method

getAccountRoleComputed() public method

Gets account role computed object
public getAccountRoleComputed ( string | Scalr\Acl\Role\AccountRoleObject $role ) : array
$role string | Scalr\Acl\Role\AccountRoleObject The Id of the account role or object that represetns account role
return array Returns account role with all resources
    public function getAccountRoleComputed($role)
    {
        if (is_string($role)) {
            $role = $this->getAccountRole($role);
        } else {
            if (!$role instanceof Role\AccountRoleObject) {
                throw new \InvalidArgumentException('ID of account role or \\Scalr\\Acl\\Role\\AccountRoleObject is expected.');
            }
        }
        $groups = self::getGroups();
        if ($role instanceof Role\AccountRoleObject) {
            $accountRole = array('id' => $role->getRoleId(), 'name' => $role->getName(), 'baseRoleId' => $role->getBaseRole()->getRoleId(), 'color' => $role->getColorHex(), 'automatic' => $role->isAutomatic(), 'resources' => null);
            foreach ($role->getIteratorResources() as $resource) {
                $accountRoleResource = 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);
                if ($resource->getMode() !== null) {
                    $r = $role->getResource($resource->getResourceId());
                    $accountRoleResource['mode'] = $r ? $r->getMode() : null;
                }
                foreach ($resource->getPermissions() as $permissionId => $permissionDescription) {
                    $accountRoleResource['permissions'][$permissionId] = $role->isAllowed($resource->getResourceId(), $permissionId) ? 1 : 0;
                }
                $accountRole['resources'][] = $accountRoleResource;
            }
        }
        return isset($accountRole) ? $accountRole : null;
    }