You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This sets up the UI for role management and integrates access controls
into the Workspaces frontend.
Backend PR:
TaskarCenterAtUW/workspaces-backend#4
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Members page in workspace settings for viewing/managing project-group
admins, data generators, and workspace members; leads can change member
roles and assign/remove roles via Workspaces API.
* Permission-aware export flow to TDEI with selectable eligible project
groups and project-group selection UI integration.
* New composable useWorkspaceRole() exposing role, isLead, and
isValidator to gate UI and actions across the app.
* New Workspaces API methods: getWorkspaceMembers(id), assignRole(id,
userUuid, role), removeRole(id, userUuid).
* New TDEI user APIs: getMyProjectGroups(),
getMyRolesForProjectGroup(projectGroupId, pgName),
getProjectGroupUsers(projectGroupId).
* **UI/UX Improvements / Access Controls**
* Site-wide role-aware UI gating: many settings panels (General,
Imagery, Apps, Delete, Teams) and actions (create team, delete
workspace, rename, save settings) now show informational alerts and
disable inputs/buttons for non-leads.
* Dashboard and workspace lists show a new "My Role" row and role badges
(Owner/Lead, Validator, Member, POC, Data Generator) in DetailsTable,
WorkspaceItem, and related components.
* Review toolbar and feedback controls gated by validator/lead role
logic.
* Settings navigation updated to include a "Members" item; team items
and team dialogs respect lead gating.
* **Types & Utilities**
* New types: WorkspaceRole ('lead' | 'validator' | 'contributor'),
WorkspaceMember, TdeiProjectGroup, TdeiUserItem, TdeiRoleAssignment.
* New util ROLE_LABELS mapping WorkspaceRole to display labels.
* ProjectGroupPicker updated to use tdei_project_group_id keys and
accept options prop; ProjectGroup types and compare sorting used.
* **Service & Backend Integration**
* services/workspaces.ts migrated various endpoints to a new API wrapper
and added workspace member management methods.
* services/tdei.ts expanded TDEI user client surface to return typed
project groups and users and added role-query helpers.
* Frontend pages/components updated to fetch and use TDEI project groups
and roles for eligibility and UI defaults (export flow, dashboard
grouping).
* **Notable Component Changes**
* New pages/workspace/[id]/settings/members.vue added (major new file).
* pages/dashboard.vue: reworked to model
currentProjectGroup/currentWorkspace with typed bindings and pass
currentWorkspaceTdeiRoles to details table.
* pages/workspace/[id]/export/tdei.vue: adds project group selection,
eligibility checks, and permission messaging.
* Many components now consume useWorkspaceRole() and conditionalize UI
and actions on isLead/isValidator.
Overall, this PR implements the initial permissions/roles system
end-to-end: types and service methods, a composable for role derivation,
UI wiring across dashboard and workspace settings, a members management
page, and permission-aware flows for TDEI export and settings
management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
0 commit comments