project_acls.rst 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. Project Level Access Control
  2. ============================
  3. Till release 2.12, pagure had a very simple user model. If we added a new
  4. user or a new group to a project, the user/group would be an admin of the project.
  5. The user/group could do everything from changing the status of an issue to adding
  6. or removing any user on the project. With project ACL feature, we allow a more fine
  7. grained control over what a new user/group has access to, what things it can add or
  8. what actions it can take.
  9. With Project ACL feature, We can now have three levels of access:
  10. * Ticket: A user or a group with this level of access can only edit metadata
  11. of an issue. This includes changing the status of an issue, adding/removing
  12. tags from them, adding/removing assignees and every other option which can
  13. be accessed when you click "Edit Metadata" button in an issue page. However,
  14. this user can not "create" a new tag or "delete" an existing tag because,
  15. that would involve access to settings page of the project which this user
  16. won't have. It also won't be able to "delete" the issue because, it falls
  17. outside of "Edit Metadata".
  18. * Commit: A user or a group with this level of access can do everything what
  19. a user/group with ticket access can do + it can do everything on the project
  20. which doesn't include access to settings page. It can "Edit Metadata" of an issue
  21. just like a user with ticket access would do, can merge a pull request, can push
  22. to the main repository directly, delete an issue, cancel a pull request etc.
  23. * Admin: The user/group with this access has access to everything on the project.
  24. All the "users" of the project that have been added till now are having this access.
  25. They can change the settings of the project, add/remove users/groups on the project.
  26. Add/Update Access
  27. -----------------
  28. * Every time you add a new user or a new group to the project, you will be asked to
  29. provide the level of access you want to give to that user or group. It's a required
  30. field in the form.
  31. * To add a user or a group to a project, go to settings page of the project. There are
  32. buttons with text: *Add User* and *Add Group*. It will take you to a different page where
  33. you will have to select the user or group (depending on whether you clicked Add User
  34. or Add Group) and the access you want the user/group to have.
  35. * If you want to update a user or a group's access, go to settings page of the project.
  36. There is a section which lists users associated with the project with the buttons to edit their
  37. access and a different button to remove them from the project. If you click the edit
  38. button, you will be taken to a different page where you can change the access and then
  39. click on Update button.
  40. Points to be noted
  41. ------------------
  42. * The creator of a project in pagure holds a more unique position than a normal user
  43. with admin access. The creator can not be removed by an admin. His access level
  44. can not be changed. But, an admin's access can be updated by a fellow admin
  45. or the creator himself.
  46. * All the members of a group will have same access over the project except for the case
  47. mentioned in the next point.
  48. * In cases when, a user is added to a project with an access level of "A" and a group
  49. is also added to the same project with access level "B" and that user is also present
  50. in the group then, the user will enjoy the access of higher of "A" and "B". Meaning,
  51. if the user earlier had access of ticket and the group had access of commit, the user
  52. will enjoy the access of a committer. And, if the user earlier had access of commit and
  53. the group had access of ticket, the user will still be a committer.