﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
18488	add granular permissions	w_mike@…	nobody	"It would be nice to have a more detailed permission structure to represent each user only the tables, fields, functions, etc. that he is allowed to do anything to.

My basic thought was to have different credentials/security issues:
- read
- add
- change
- delete
- execute
(- state transition -> for an implemented workflow -> other task)
plus each as a 'request' for and 'grant' to variation.

Then have the following targets:
- table (Django model)
- field (Django field)
- dynamic field (a field that is ro and computed by other fields)
- model function (each function defined in a model -> must be a new class: Django ModelFunction -> other task)
- manager function (each function defined by a Manager, but granted per use in a Model)
- state transition (for an implemented workflow -> other Task)

Lastly the Permissions themselves:
create a table with sensemaking credentials to each target:

- table: read, add, change, delete, requestAdd, requestChange, requestDelete (same as request to grant)
- field: read, change, request+grant change
- dynamic field: read
- model function: execute, request execute (+ store request to table), grant execute (and run execute from store)
-> same to manager function and to state changes

and that for each user, group, role (new object, where users and groups can be member in -> other task).

I found many projects that add row level permissions, what I don't need.

There should be more built-in support for granular permissions based on the table definitions itself including fields/columns and functions that can be executed to build a page dynamically based on these permissions.

"	New feature	closed	contrib.auth	dev	Normal	invalid	security permissions		Unreviewed	0	0	0	0	0	0
