Skip to content

Commit

Permalink
TASK: Remove obsolete legacy yaml policy for workspaces
Browse files Browse the repository at this point in the history
With the introduction of explicit user assignments for workspaces neos/neos-development-collection#5146 and roles and the full evaluation of those via neos/neos-development-collection#5298 we have replaced the previously still kept 8.3 yaml security configuration for workspaces.

This decision was done as for security we can no longer use flows security framework which uses aop inside the content-repository library, and also we wanted to cleanup the user <-> workspace relation ship as well as the concept of internal vs shared workspaces.

Following yaml roles were removed:
- `Neos.ContentRepository:Administrator`
- `Neos.ContentRepository:InternalWorkspaceAccess`

Following yaml targets were removed:
- `Neos.Neos:PublicWorkspaceAccess`
- `Neos.Neos:OtherWorkspacesAccess`
- `Neos.Neos:Backend.OtherUsersPersonalWorkspaceAccess`
- `Neos.Neos:Backend.PublishOwnWorkspaceContent`
- `Neos.Neos:Backend.DiscardOwnWorkspaceContent`
- `Neos.Workspace.Ui:Backend.PublishAllToLiveWorkspace`

Note that these targets were moved to the `Neos.Workspace.Ui:Backend` package via neos/neos-development-collection#5118 in 9.0 but were removed now either way:

- `Neos.Neos:Backend.Module.Management.Workspaces.ManageOwnWorkspaces` (`Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageOwnWorkspaces`)
- `Neos.Neos:Backend.Module.Management.Workspaces.ManageInternalWorkspaces` (`Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageInternalWorkspaces`)
- `Neos.Neos:Backend.Module.Management.Workspaces.ManageAllPrivateWorkspaces` (`Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageAllPrivateWorkspaces`)
  • Loading branch information
mhsdesign authored and Sebobo committed Jan 13, 2025
1 parent df8867f commit 10c3d54
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 56 deletions.
36 changes: 0 additions & 36 deletions Configuration/Policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,58 +2,22 @@ privilegeTargets:

'Neos\Flow\Security\Authorization\Privilege\Method\MethodPrivilege':

'Neos.Workspace.Ui:Backend.PublishAllToLiveWorkspace':
label: Allowed to publish to the live workspace
matcher: 'method(Neos\Workspace\Ui\Controller\WorkspaceController->publishWorkspaceAction(workspace.baseWorkspace.name === "live"))'

'Neos.Workspace.Ui:Backend.CreateWorkspaces':
label: Allowed to create a workspace
matcher: 'method(Neos\Workspace\Ui\Controller\WorkspaceController->(create|new)Action())'

'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageOwnWorkspaces':
label: Allowed to manage own workspaces
matcher: 'method(Neos\Workspace\Ui\Controller\WorkspaceController->(publishWorkspace|discardWorkspace|edit|update|delete)Action(workspace.owner === current.userInformation.backendUser))'

'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageInternalWorkspaces':
label: Manage internal workspaces
matcher: 'method(Neos\Workspace\Ui\Controller\WorkspaceController->(publishWorkspace|discardWorkspace|edit|update|delete)Action(workspace.owner === null))'

'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageAllPrivateWorkspaces':
label: Manage all private workspaces
matcher: 'method(Neos\Workspace\Ui\Controller\WorkspaceController->(publishWorkspace|discardWorkspace|edit|update|delete)Action()) && evaluate(this.workspace.owner !== current.userInformation.backendUser, this.workspace.personalWorkspace === false)'

'Neos\Neos\Security\Authorization\Privilege\ModulePrivilege':
'Neos.Workspace.Ui:Backend.Module.Management.Workspace':
label: General access to the workspace module
matcher: 'management/workspace'

roles:
'Neos.Neos:LivePublisher':
privileges:
-
privilegeTarget: 'Neos.Workspace.Ui:Backend.PublishAllToLiveWorkspace'
permission: GRANT

'Neos.Neos:AbstractEditor':
privileges:
-
privilegeTarget: 'Neos.Workspace.Ui:Backend.CreateWorkspaces'
permission: GRANT

-
privilegeTarget: 'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageOwnWorkspaces'
permission: GRANT

-
privilegeTarget: 'Neos.Workspace.Ui:Backend.Module.Management.Workspace'
permission: GRANT

'Neos.Neos:Administrator':
privileges:
-
privilegeTarget: 'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageInternalWorkspaces'
permission: GRANT

-
privilegeTarget: 'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageAllPrivateWorkspaces'
permission: GRANT
20 changes: 0 additions & 20 deletions Migrations/Code/Version20240603134000.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,31 +26,11 @@ public function getIdentifier(): string

public function up(): void
{
$this->searchAndReplace(
'Neos.Neos:Backend.PublishAllToLiveWorkspace',
'Neos.Workspace.Ui:Backend.PublishAllToLiveWorkspace',
['yaml', 'html', 'php']
);
$this->searchAndReplace(
'Neos.Neos:Backend.CreateWorkspaces',
'Neos.Workspace.Ui:Backend.CreateWorkspaces',
['yaml', 'html', 'php']
);
$this->searchAndReplace(
'Neos.Neos:Backend.Module.Management.Workspaces.ManageOwnWorkspaces',
'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageOwnWorkspaces',
['yaml', 'html', 'php']
);
$this->searchAndReplace(
'Neos.Neos:Backend.Module.Management.Workspaces.ManageInternalWorkspaces',
'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageInternalWorkspaces',
['yaml', 'html', 'php']
);
$this->searchAndReplace(
'Neos.Neos:Backend.Module.Management.Workspaces.ManageAllPrivateWorkspaces',
'Neos.Workspace.Ui:Backend.Module.Management.Workspace.ManageAllPrivateWorkspaces',
['yaml', 'html', 'php']
);
$this->searchAndReplace(
'Neos.Neos:Backend.Module.Management.Workspaces',
'Neos.Workspace.Ui:Backend.Module.Management.Workspace',
Expand Down

0 comments on commit 10c3d54

Please sign in to comment.