Skip to content
Open
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
25f4d6a
Generated with Hive: Refactor useWorkspaceAccess to remove redundant …
tomsmith8 Apr 5, 2026
a3cbc73
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 5, 2026
9b21156
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
b6541a2
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
aaa2f2d
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
f2cd0d3
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
c67a50d
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
f0e19d6
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
6bd008b
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
d08a500
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
ccc9520
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
dba4cdc
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
d4c5d74
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 6, 2026
e143250
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
232c406
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
c93816d
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
906f8e0
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
5bb6388
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
9498f5b
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
5206a81
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
72f4b4a
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
bedf6b6
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 7, 2026
8538d1f
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
b404226
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
c73dbb4
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
8eb4523
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
be18653
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
15faf96
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
3b5f231
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
bd045dc
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 8, 2026
4724c48
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
a7ff18f
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
3737080
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
146b0b9
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
eebdf3d
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
7d11a16
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
4550eab
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
674e4b5
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 9, 2026
e08311b
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
f6706ae
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
cdc092a
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
e53220c
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
9a2e2a1
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
e239227
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
aa82692
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
4a356e1
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 10, 2026
e31607d
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 11, 2026
d7a8455
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 12, 2026
94095ff
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 12, 2026
dc180a9
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 12, 2026
f3fe72e
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
85df99a
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
4f43b72
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
a365d00
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
54e6f1e
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
520db2b
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
26f9036
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
d4bc5a6
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 13, 2026
ceb2626
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 14, 2026
d46f126
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 14, 2026
279f3ab
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 14, 2026
01cfa41
Merge branch 'master' into refactor/use-workspace-access-simplify
tomsmith8 Apr 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 0 additions & 89 deletions src/hooks/useWorkspaceAccess.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,117 +19,28 @@ export function useWorkspaceAccess() {

const { role, hasAccess } = context;

// Basic permission checks using centralized role hierarchy
const canRead = hasAccess && role ? hasRoleLevel(role, WorkspaceRole.VIEWER) : false;
const canWrite = hasAccess && role ? hasRoleLevel(role, WorkspaceRole.DEVELOPER) : false;
const canAdmin = hasAccess && role ? hasRoleLevel(role, WorkspaceRole.ADMIN) : false;
const isOwner = hasAccess && role === WorkspaceRole.OWNER;

// Granular permission checks for specific features
const permissions = {
// Workspace management
canManageWorkspace: isOwner,
canInviteMembers: canAdmin,
canRemoveMembers: canAdmin,
canChangeRoles: isOwner,

// Content permissions
canViewContent: canRead,
canCreateContent: canWrite,
canEditContent: canWrite,
canDeleteContent: canWrite,

// Product management
canManageProducts: canWrite,
canManageFeatures: canWrite,
canManageRoadmaps: canWrite,

// Development permissions
canManageRepositories: canAdmin,
canManageSwarms: canAdmin,
canViewTasks: canRead,
canAssignTasks: canWrite,
canManageTasks: canWrite,

// Analytics and reporting
canViewAnalytics: canRead,
canExportData: canWrite,

// Settings
canViewSettings: canRead,
canManageSettings: canAdmin,
};

// Permission checking utilities using centralized helpers
const checkPermission = (requiredRole: WorkspaceRole) => {
if (!hasAccess || !role) return false;
return hasRoleLevel(role, requiredRole);
};

const requiresRole = (requiredRole: WorkspaceRole) => {
return checkPermission(requiredRole);
};

const hasAnyRole = (roles: WorkspaceRole[]) => {
return hasAccess && role ? roles.includes(role) : false;
};

const hasMinimumRole = (minimumRole: WorkspaceRole) => {
return checkPermission(minimumRole);
};

return {
// Basic permission flags
canRead,
canWrite,
canAdmin,
isOwner,
hasAccess,
role,

// Granular permissions object
permissions,

// Permission checking utilities
checkPermission,
requiresRole,
hasAnyRole,
hasMinimumRole,

// Helper methods for common checks
canManage: (resource: "workspace" | "members" | "content" | "settings") => {
switch (resource) {
case "workspace":
return permissions.canManageWorkspace;
case "members":
return permissions.canInviteMembers;
case "content":
return permissions.canEditContent;
case "settings":
return permissions.canManageSettings;
default:
return false;
}
},

// Access level helpers
getAccessLevel: () => {
if (!hasAccess) return "none";
if (isOwner) return "owner";
if (canAdmin) return "admin";
if (canWrite) return "write";
if (canRead) return "read";
return "none";
},

// Permission summary
getPermissionSummary: () => ({
level: role || "none",
canRead,
canWrite,
canAdmin,
isOwner,
hasAccess,
}),
};
}
Loading