Neos.Neos/Classes/Domain/Service/UserService.php
public function currentUserCanManageWorkspace(Workspace $workspace)
    {
        if ($workspace->isPersonalWorkspace()) {
            return false;
        }

        if ($workspace->isInternalWorkspace()) {
            return $this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.Module.Management.Workspaces.ManageInternalWorkspaces');
        }

        if ($workspace->isPrivateWorkspace() && $workspace->getOwner() === $this->getCurrentUser()) {
            return $this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.Module.Management.Workspaces.ManageOwnWorkspaces');
        }

        if ($workspace->isPrivateWorkspace() && $workspace->getOwner() !== $this->getCurrentUser()) {
            return $this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.Module.Management.Workspaces.ManageAllPrivateWorkspaces');
        }

        return false;
    }
public function currentUserCanManageWorkspace(Workspace $workspace)
    {
        if ($workspace->isPersonalWorkspace()) {
            return false;
        }

        if ($workspace->isInternalWorkspace()) {
            return $this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.Module.Management.Workspaces.ManageInternalWorkspaces');
        }

        if ($workspace->isPrivateWorkspace() && $workspace->getOwner() === $this->getCurrentUser()) {
            return $this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.Module.Management.Workspaces.ManageOwnWorkspaces');
        }

        if ($workspace->isPrivateWorkspace() && $workspace->getOwner() !== $this->getCurrentUser()) {
            return $this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.Module.Management.Workspaces.ManageAllPrivateWorkspaces');
        }

        return false;
    }
public function currentUserCanManageWorkspace ( Workspace $ workspace ) { if ( $ workspace -> isPersonalWorkspace ( ) ) { return false ; } if ( $ workspace -> isInternalWorkspace ( ) ) { return $ this -> privilegeManager -> isPrivilegeTargetGranted ( 'Neos.Neos:Backend.Module.Management.Workspaces.ManageInternalWorkspaces' ) ; } if ( $ workspace -> isPrivateWorkspace ( ) && $ workspace -> getOwner ( ) === $ this -> getCurrentUser ( ) ) { return $ this -> privilegeManager -> isPrivilegeTargetGranted ( 'Neos.Neos:Backend.Module.Management.Workspaces.ManageOwnWorkspaces' ) ; } if ( $ workspace -> isPrivateWorkspace ( ) && $ workspace -> getOwner ( ) !== $ this -> getCurrentUser ( ) ) { return $ this -> privilegeManager -> isPrivilegeTargetGranted ( 'Neos.Neos:Backend.Module.Management.Workspaces.ManageAllPrivateWorkspaces' ) ; } return false ; }
Checks if the current user may manage the given workspace according to one the roles of the user's accounts

In future versions, this logic may be implemented in Neos in a more generic way (for example, by means of an
ACL object), but for now, this method exists in order to at least centralize and encapsulate the required logic.

@param Workspace $workspace The workspace
@return boolean
Checks if the current user may manage the given workspace according to one the roles of the user s accounts