dotCMS / dotCMS/core

[FEATURE] Allow Categories to drive permissions

Open
#33,388 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Doc : Needs Doc dotCMS : Content Management dotCMS : Permissions stale
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Feature Title

Allow Categories to drive back end content permissions

Problem

We have a number of use cases where we need a way to permission content (in the back end) based on more than the site/folder on which that content lives.

If we want to have a shared content type - say "events", the only way we can permission an shared event content object is by sticking it into a site or folder. This grants it singular permissions and does give a user a way to share it to other sites or folders. In order to share it, we tell customers to use categories, except that categories are sub par on the back end, as they do not control who can see or edit a content object. From an editors perspective, this causes issues because they can see everyones events, even though they do not have access to the categories that the event has been categorized with.

We have struggled with this use case historically - categories are permissioned but they do not control what a user can see or edit in the back end. This makes creating a content type where a content object can be shared between 1 or more channels difficult.

Another example subpar workaround is Dean's classic custom field that allows an editor to select 1 or more hosts on which to share/display a news item. In a top down multi-tenant operation, an admin wants to create a news article and push it down to a set or subset of sites. We have to fake this behavior with a custom field. Or in higher education, where a department is in charge of their own events "category/channel" but when they go to edit events, they can see every departments events.

Bottom line, it would be very helpful in multi-tenant and multi-channel content modeling if we could also use the categories of a content when calculating who can see and edit a content.

Goal

Allow a System content object to be shareable across 1 or more sites.

Target Personas
  • Developer teams
  • Content teams
  • DevOps teams
  • System administrators (dotCMS)
Demo Expectations

In the demo, we will show how we can enable content types to also respect categories for permissions and how system content can be selectively shared across content teams.

Acceptance Criteria

No response

User Stories

No response

Links

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the backend permission calculation for System content and the existing category-permission handling; define how shared content across sites should be visible and editable, then verify the demo scenario for selective sharing across content teams.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.