Gc\User\Role\Model::getUserPermissions PHP Method

getUserPermissions() public method

Get User permissions
public getUserPermissions ( boolean $forceReload = false ) : array
$forceReload boolean Force reload permissions
return array
    public function getUserPermissions($forceReload = false)
    {
        $userPermissions = $this->getData('user_permissions');
        if (empty($userPermissions) or $forceReload) {
            $select = new Select();
            if ($this->getName() === self::PROTECTED_NAME) {
                $select->from('user_acl_resource')->join('user_acl_permission', 'user_acl_resource.id = user_acl_permission.user_acl_resource_id', array('userPermissionId' => 'id', 'permission'));
            } else {
                $select->from('user_acl_role')->join('user_acl', 'user_acl.user_acl_role_id = user_acl_role.id', array())->join('user_acl_permission', 'user_acl_permission.id = user_acl.user_acl_permission_id', array('userPermissionId' => 'id', 'permission'))->join('user_acl_resource', 'user_acl_resource.id = user_acl_permission.user_acl_resource_id', array('resource'));
                $select->where->equalTo('user_acl_role.id', $this->getId());
            }
            $permissions = $this->fetchAll($select);
            $userPermissions = array();
            foreach ($permissions as $permission) {
                if (empty($userPermissions[$permission['resource']])) {
                    $userPermissions[$permission['resource']] = array();
                }
                $userPermissions[$permission['resource']][$permission['userPermissionId']] = $permission['permission'];
            }
            $this->setData('user_permissions', $userPermissions);
        }
        return $userPermissions;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Test
  *
  * @return void
  */
 public function testGetUserPermissions()
 {
     $this->assertInternalType('array', $this->object->getUserPermissions());
 }