ckan / ckan/ideas

Advanced dataset sharing / visibility extension

Open
#235 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
39
Forks
1
PR merge metrics
No merged PRs in 30d

Description

The base CKAN permissions and roles represent a simple use case that is very effective in many situations. There are many cases however where something more flexible / granular is desirable. This has led to a variety of extensions adding different functionality:
[ckanext-collaborators](https://github.com/okfn/ckanext-collaborators)
[ckanext-restricted](https://github.com/EnviDat/ckanext-restricted)
[ckanext-resourceauthorizer](https://github.com/etri-odp/ckanext-resourceauthorizer)
[ckanext-privatedatasets](https://github.com/conwetlab/ckanext-privatedatasets)

Some work at the resource level, others at the dataset. Some work by users, others by users and groups. Some only expand access while others include editing. I think an advanced permissions extension unifying all the functionality would be a good goal.

A potential implementation would be an access control list for each dataset with the options of:
admin - edit data, metadata and user roles
editor - edit data and metadata
viewer - view data and metadata
metadata only - view description and metadata - would need to request access to the data
hidden - dataset not visible / searchable by the users(s)
resource specific - access determined at the resource level using a similar set of options

The lists should allow entries for individual users or organizations, so one could quickly share a private dataset with a second organization in a few clicks. If a user and their organization are both in the list the user would take precedence. I have used resourceauthorizer for similar functionality, but the action needs to be repeated for each resource.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing the four linked extensions—ckanext-collaborators, ckanext-restricted, ckanext-resourceauthorizer, and ckanext-privatedatasets—to understand their differing permission models. The issue provides no repository files or tests; done would require a decided, unified access-control design covering dataset, resource, user, and organization visibility and editing rules.

Written by the indexing model from the issue text.

Assessment

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.