-
Notifications
You must be signed in to change notification settings - Fork 435
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
feat: Request Edit Access flow #7546
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
1 Skipped Deployment
|
No changes to documentation |
Component Testing Report Updated Oct 1, 2024 5:11 PM (UTC) ✅ All Tests Passed -- expand for details
|
const [isSubmitting, setIsSubmitting] = useState(false) | ||
|
||
const [note, setNote] = useState('') | ||
const [noteLength, setNoteLength] = useState<number>(0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick, but couldn't this be derived from note.length
?
* A confirmation dialog used to prevent unwanted document deletes. Loads all | ||
* the referencing internal and cross-data references prior to showing the | ||
* delete button. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copy pasta?
const [hasTooManyRequests, setHasTooManyRequests] = useState<boolean>(false) | ||
const [hasBeenDenied, setHasBeenDenied] = useState<boolean>(false) | ||
|
||
const requestedRole$: Observable<'administrator' | 'editor'> = useMemo(() => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there always an administrator role, even when using custom roles/role mapping? Or do we assume that if the customer has a viewer
role they are using default roles and it shouldn't matter?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Second one is our inference
import {defineEvent} from '@sanity/telemetry' | ||
|
||
/** | ||
* When a draft in a live edit document is published |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What?
...ucture/components/requestPermissionDialog/__telemetry__/RequestPermissionDialog.telemetry.ts
Show resolved
Hide resolved
/** The pending text for the request permission button that appears for viewer roles */ | ||
'banners.permission-check-banner.request-permission-button.sent': 'Editor request sent', | ||
/** The text for the request permission button that appears for viewer roles */ | ||
'banners.permission-check-banner.request-permission-button.text': 'Ask to edit', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We technically call it requesting ("Send request"), but tell users to ask. I assume this is already thought through, just wanted calling it out as I saw it.
packages/sanity/src/structure/panes/document/documentPanel/banners/PermissionCheckBanner.tsx
Outdated
Show resolved
Hide resolved
packages/sanity/src/structure/panes/document/documentPanel/banners/PermissionCheckBanner.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied my suggested changes, would appreciate a cleanup PR on the open comments.
Description
This PR introduces a new "Request Edit Access" feature into the studio that allows users to make a request for a role change from Viewer to Editor/Administrator (depending on the project's available roles).
What to review
There are 2 main areas of the Studio that are touched/introduced with this PR:
PermissionCheckBanner
and..RequestPermissionDialog
PermissionCheckBanner
This banner has been updated to show an "Ask to edit" button in the action area if the user is ONLY a Viewer.
RequestPermissionDialog
This is where most of the code is introduced. This new Dialog works very similarly to the
RequestAccessScreen
with some changes to the request logic, error handling, and POST params.Testing
This PR introduces no new automated tests.
Notes for release
This new "Request Edit Access" feature will be available to all users - with administrators being able to Approve/Deny requests in the Requests tab in Manage.