Project Level Access Control
Till release 2.12, pagure had a very simple user model. If we added a new
user or a new group to a project, the user/group would be an admin of the project.
The user/group could do everything from changing the status of an issue to adding
or removing any user on the project. With project ACL feature, we allow a more fine
grained control over what a new user/group has access to, what things it can add or
what actions it can take.
With Project ACL feature, We can now have three levels of access:
- Ticket: A user or a group with this level of access can only edit metadata
of an issue. This includes changing the status of an issue, adding/removing
tags from them, adding/removing assignees and every other option which can
be accessed when you click "Edit Metadata" button in an issue page. However,
this user can not "create" a new tag or "delete" an existing tag because,
that would involve access to settings page of the project which this user
won't have. It also won't be able to "delete" the issue because, it falls
outside of "Edit Metadata".
- Commit: A user or a group with this level of access can do everything what
a user/group with ticket access can do + it can do everything on the project
which doesn't include access to settings page. It can "Edit Metadata" of an issue
just like a user with ticket access would do, can merge a pull request, can push
to the main repository directly, delete an issue, cancel a pull request etc.
- Admin: The user/group with this access has access to everything on the project.
All the "users" of the project that have been added till now are having this access.
They can change the settings of the project, add/remove users/groups on the project.