Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Define KB security rules #107

Open
3 tasks
ethanstrominger opened this issue Oct 12, 2024 · 0 comments
Open
3 tasks

Draft: Define KB security rules #107

ethanstrominger opened this issue Oct 12, 2024 · 0 comments

Comments

@ethanstrominger
Copy link
Member

Overview

Define roles and security rules so that a user can be assigned appropriate privileges

Action Items

  • Get approval from Bonnie

Overview

Define privileges for KB roles for user and groups so that KB users have privileges needed and no unneeded priviliges and no information they don't. Implementation will be a separate issue.

Action Items

  • Review Detail Section
  • Decide on which user fields are needed by KB users that will be displayed on the documents.

Details Draft

There will be an API kb/user. The API will enforce user security based on PD roles that start with kb. The roles will be seeded into the existing Django roles table.

Terminology: A contributor is a People Depot user with the kb-contributor role. The API will be secured using Django roles. Below are the Django roles and what a

name
linked in
website
Row Level Privileges

  • kb-nonpriv: user that can be associated with a document but has no privileges
    • no privilege
  • kb-viewer: user that can view all information but has no privileges
    • PD: can view up to date level 1 fields of a PD user and roles
    • can view all KB info
  • kb-contributor
    • PD: can view up to date level 1 fields of a PD user and roles
    • can view all KB info
    • can create a document
    • can assign themselves to a document
    • can update documents to which they are assigned
  • kb-docadmin
    • PD: can view up to date level 1 fields of a PD user and roles for users with a kb role
    • can view all KB info
    • can create, read, and update all documents
    • can assign and deassign any contributor to a document. Some contributors may be Hack4LA users.
    • can update all documents
  • kb-admin
    • PD: can view up to date level 1 fields of a PD user and roles for users with a kb role
    • can view all KB info
    • can create, read, and update all documents
    • can assign and deassign any contributor to a document. Some contributors may be Hack4LA users.
    • can create, read, and update all kb info (e.g.: topic area) that is not sourced from PD (e.g., users, roles, practice areas, and topic areas)
      Below this is specified in table format.
      Role | Users | Assign Yourself | View All KB Info | Self Assign | Update assigned document | Update all documents and assignments |
      | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
      | kb-viewer | X | | | |
      | kb-contributor | | | | |
      | kb-docadmin | X | X | ||
      | kb-poweuser | X | X | X |||
      | kb-admin | X | X | X | X | X | X | X |

Field Level Privleges

  • Read: Field level read privileges are the same for all users.
  • Update: kb-admin and kb-useradmin can update any non-system fields that can be read except system populated fields.
  • Create: kb-admin can specify any non-system field they can read
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant