Support for adding reviewer role (#22137)

* Support for adding reviewer role

* show reviewer in track changes user list

* added "review" in assertClientCanViewProject

* test if reviewer can read project

* added collaboratorsGetter tests

* eit toggle-track-changes when track changes changes

* Support for changing privilege to reviewers for invited users (#22159)

* Add reviewer in change privilege level handler

* added reviewer translation

* added acceptance tests

* fix tests

* Set track changes state permissions for reviewer role (#22167)

* Add reviewer in change privilege level handler

* added reviewer translation

* added acceptance tests

* fix tests

* Set track changes state permissions for reviewer role

* added authorization helper tests

* added ensureUserCanReviewProjectContent middleware

* allow changing track changes only with write permissions

* removed canUserReviewProjectContent

* List projects where user is added as a reviewer (#22249)

* List projects where user is added as reviewer

* list projects in /user/projects

* fix tests

GitOrigin-RevId: 54064a7f961fe06f188ab449cd469cdaaf01b20a
This commit is contained in:
Domagoj Kriskovic
2024-12-04 09:05:00 +00:00
committed by Copybot
parent 81aab71ffd
commit f676eca2b8
30 changed files with 468 additions and 19 deletions
@@ -21,6 +21,12 @@ const permissionsMap: DeepReadonly<Record<PermissionsLevel, Permissions>> = {
admin: false,
comment: true,
},
review: {
read: true,
write: true,
admin: false,
comment: true,
},
readAndWrite: {
read: true,
write: true,
@@ -38,12 +44,14 @@ const permissionsMap: DeepReadonly<Record<PermissionsLevel, Permissions>> = {
const anonymousPermissionsMap: typeof permissionsMap = {
readOnly: { ...permissionsMap.readOnly, comment: false },
readAndWrite: { ...permissionsMap.readAndWrite, comment: false },
review: { ...permissionsMap.review, comment: false },
owner: { ...permissionsMap.owner, comment: false },
}
const linkSharingWarningPermissionsMap: typeof permissionsMap = {
readOnly: { ...permissionsMap.readOnly, comment: false },
readAndWrite: permissionsMap.readAndWrite,
review: permissionsMap.review,
owner: permissionsMap.owner,
}
@@ -814,7 +814,10 @@ function useReviewPanelState(): ReviewPanel.ReviewPanelState {
}
const members = project.members ?? []
for (const member of members) {
if (member.privileges === 'readAndWrite') {
if (
member.privileges === 'readAndWrite' ||
member.privileges === 'review'
) {
if (!trackChangesState[member._id]) {
// An added member will have track changes enabled if track changes is on for everyone
setUserTCState(