Permission UI

Component ID

2917022

Component name

Permission UI

Component type

module

Maintenance status

Development status

Component security advisory coverage

covered

Downloads

178

Component created

Component changed

Component body

# Overview

Permission UI allows to create dynamic permissions associated with core/contrib entities via the UI. The main purpose is to avoid overwhelming of permission (like Node Access) per bundle and no dried permission system (e.g. just "administer nodes"). This module provides an UI to add necessary permissions and export them as any other configuration.

# Problem

Core is introducing per bundle permissions for content entities. However it means any entity implementing below interfaces would have set of associated permissions:

1. ContentEntityInterface:

Actions: Edit, Add and Delete
Scope: Own and Any

2. Translatable

Actions: Translate
Scope: N/A

3. EntityPublishedInterface:

Actions: View published and view unpublished
Scope: Own and Any

4. RevisionLogInterface:

Actions: View revisions, Revert revisions and Delete revisions
Scope: N/A

Ideally we are looking at 3x2+2x2+3+1 = 14 permissions per bundle.

However core doesn't have all possible combination(e.g Edit own article node, Delete any article node, etc ) of them, but we have issues to cover different parts:
1. #2862422: Add per-media type creation permissions for media
2. #2809177: Introduce entity permission providers and access handlers
3. #1975064: Add more granular block permissions

Also, it's possible not all sites would like to have all these permission. For some sites, it's OK to have *some* entities with one permission (e.g. Administer block content).

# Implementation

This module provides an UI to add permissions necessary to your site and can be exported as part of configuration.

What is done

1. UI for CRUD permission

In progress

1. Attach with Access handler
2. Improve the UI, so that the permission is not a free text field.

Todo

3. Export with other entities.