Repository navigation
Hide the remaining write actions a project role can't perform - #50
Merged
Merged
Conversation
Viewers and commenters no longer see Upload, new folder or import in a folder; the share-to-app picker won't take them to a project they can't upload to. Members, folder members and workspace members show Add and the role menus only to roles that can manage members. In the viewer, a viewer gets a note instead of the comment composer, and status, rating, fields, version order and new version follow the role. The workspace "..." menu shows Rename and Delete only to workspace admins and full access. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ecorded on CI) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Before: a
viewerorcommenteron a shared project still saw actions Frame.io then refused: the folder's "+ Upload" button (upload, new folder, import) and the empty folder's "Upload"; every project in the "Share to Final(ish)" destination list; Add, the role menus and Remove on the Members screens (project, folder and workspace); the comment composer, "Comment at…", mark done and "Reply in Frame.io" for a viewer; the status menu in the viewer header ("No status" ▾), the rating stars and editable fields in Info, version reordering and "Upload new version" in Versions; Rename and Delete in a workspace's ⋯ menu.After: each of these follows the user's role, as file menus (#42) and the project menus (#49) already do:
full_accessand account owners/admins; Members stays for everyone.How
FileAccessgets aninviteflag (add/remove members, change roles).managenow also covers metadata edits.Asset.readOnlyMetadata()turns every field read-only (head version too), so the Info panel needs no other change.FrameioRepository.workspaceAccess(account, workspace): account owners/admins, else the user's role inGET /v4/accounts/{a}/workspaces/{w}/users(the documented workspace users list), throughFileAccess.ofRole. Cached per session likefileAccess;cachedWorkspaceAccessfor the first frame.FolderViewModel.accessis null while it loads) so a viewer doesn't see the button appear and vanish. File menus keep showing everything while it loads, as in Hide file actions the user's project role can't perform #42.MembersRoutecarries the folder'sprojectId, so folder members follow the project role.Role mapping, from Frame.io's Managing user permissions guide and the help center:
edit_only,editor,full_access, adminsedit_onlyupcommenterand upcommenter= "view and comment",viewer= "view only"editorand upfull_access,workspace_admin, account owner/adminfull_accesshas "invite users"; help: Workspace Admin "manage all users… and their permissions"workspace_admin, workspacefull_access, account owner/adminfull_access"manage settings, and invite users"Not changed: the "New project" button. The help center gives project creation to Workspace Admins; whether workspace
full_accesscan is not documented, and the button also creates workspaces, so the server decides. Collections are read-only in the app already (nothing to gate). Afull_accessworkspace member still seesworkspace_adminin the role menu, though the help center says only admins can grant it; Frame.io refuses that one.Tests:
FileAccessTest(invite, manage, comment mapping; read-only metadata incl. head version). Screenshots:members_viewer,comments_viewer,share_in_projects_viewer; baselines from the CItest-reportartifact (Linux).Checks
./gradlew :app:verifyRoborazziDebug :app:lintDebugpasses (lint at 0): unit tests and lint on the workstation, screenshots verified on CI with baselines recorded thereviewerand acommentermember on a test project.🤖 Generated with Claude Code