Compare commits
1 Commits
fix/hide-e
...
fix/update
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d915319fc |
@@ -30,7 +30,7 @@ export default function Dropdown({
|
|||||||
leaveFrom="transform opacity-100 scale-100"
|
leaveFrom="transform opacity-100 scale-100"
|
||||||
leaveTo="transform opacity-0 scale-95"
|
leaveTo="transform opacity-0 scale-95"
|
||||||
>
|
>
|
||||||
<Menu.Items className="absolute right-0 z-[100] isolate mt-2 w-56 origin-top-right rounded-md border border-light-200 bg-white p-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none dark:border-dark-400 dark:bg-dark-300">
|
<Menu.Items className="absolute right-0 z-50 mt-2 w-56 origin-top-right rounded-md border border-light-200 bg-light-50 p-1 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none dark:border-dark-400 dark:bg-dark-300">
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
{items.map((item) => (
|
{items.map((item) => (
|
||||||
<Menu.Item key={item.label} disabled={item.disabled}>
|
<Menu.Item key={item.label} disabled={item.disabled}>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import type { Permission } from "@kan/shared";
|
import type { Permission } from "@kan/shared";
|
||||||
import { useContext } from "react";
|
|
||||||
|
|
||||||
import { WorkspaceContext } from "~/providers/workspace";
|
import { useWorkspace } from "~/providers/workspace";
|
||||||
import { api } from "~/utils/api";
|
import { api } from "~/utils/api";
|
||||||
|
|
||||||
interface UsePermissionsResult {
|
interface UsePermissionsResult {
|
||||||
@@ -31,40 +30,7 @@ interface UsePermissionsResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function usePermissions(): UsePermissionsResult {
|
export function usePermissions(): UsePermissionsResult {
|
||||||
// Check if WorkspaceProvider is available (for public board views, it may not be)
|
const { workspace } = useWorkspace();
|
||||||
const workspaceContext = useContext(WorkspaceContext);
|
|
||||||
|
|
||||||
// If WorkspaceProvider is not available, return safe defaults
|
|
||||||
if (!workspaceContext) {
|
|
||||||
const emptyPermissions: UsePermissionsResult = {
|
|
||||||
permissions: [],
|
|
||||||
role: null,
|
|
||||||
isLoading: false,
|
|
||||||
hasPermission: () => false,
|
|
||||||
canViewCard: false,
|
|
||||||
canCreateCard: false,
|
|
||||||
canEditCard: false,
|
|
||||||
canDeleteCard: false,
|
|
||||||
canCreateList: false,
|
|
||||||
canEditList: false,
|
|
||||||
canDeleteList: false,
|
|
||||||
canCreateBoard: false,
|
|
||||||
canEditBoard: false,
|
|
||||||
canDeleteBoard: false,
|
|
||||||
canViewComment: false,
|
|
||||||
canCreateComment: false,
|
|
||||||
canEditComment: false,
|
|
||||||
canDeleteComment: false,
|
|
||||||
canInviteMember: false,
|
|
||||||
canEditMember: false,
|
|
||||||
canRemoveMember: false,
|
|
||||||
canViewWorkspace: false,
|
|
||||||
canEditWorkspace: false,
|
|
||||||
};
|
|
||||||
return emptyPermissions;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { workspace } = workspaceContext;
|
|
||||||
|
|
||||||
const { data, isLoading } = api.permission.getMyPermissions.useQuery(
|
const { data, isLoading } = api.permission.getMyPermissions.useQuery(
|
||||||
{ workspacePublicId: workspace.publicId },
|
{ workspacePublicId: workspace.publicId },
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ const initialWorkspace: Workspace = {
|
|||||||
|
|
||||||
const initialAvailableWorkspaces: Workspace[] = [];
|
const initialAvailableWorkspaces: Workspace[] = [];
|
||||||
|
|
||||||
export const WorkspaceContext = createContext<WorkspaceContextProps | undefined>(
|
const WorkspaceContext = createContext<WorkspaceContextProps | undefined>(
|
||||||
undefined,
|
undefined,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ export default function MembersPage() {
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
"relative",
|
"relative z-50",
|
||||||
(workspace.role !== "admin" || showSkeleton) && "hidden",
|
(workspace.role !== "admin" || showSkeleton) && "hidden",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ALTER TABLE "workspace" ADD COLUMN IF NOT EXISTS "showEmailsToMembers" boolean NOT NULL DEFAULT true;
|
ALTER TABLE "workspace" ADD COLUMN "showEmailsToMembers" boolean NOT NULL DEFAULT true;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ CREATE TABLE IF NOT EXISTS "workspace_roles" (
|
|||||||
--> statement-breakpoint
|
--> statement-breakpoint
|
||||||
ALTER TABLE "workspace_roles" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
ALTER TABLE "workspace_roles" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
||||||
ALTER TABLE "workspace_members" ADD COLUMN "roleId" bigint;--> statement-breakpoint
|
ALTER TABLE "workspace_members" ADD COLUMN "roleId" bigint;--> statement-breakpoint
|
||||||
|
ALTER TABLE "workspace" ADD COLUMN "showEmailsToMembers" boolean DEFAULT true NOT NULL;--> statement-breakpoint
|
||||||
DO $$ BEGIN
|
DO $$ BEGIN
|
||||||
ALTER TABLE "workspace_role_permissions" ADD CONSTRAINT "workspace_role_permissions_workspaceRoleId_workspace_roles_id_fk" FOREIGN KEY ("workspaceRoleId") REFERENCES "public"."workspace_roles"("id") ON DELETE cascade ON UPDATE no action;
|
ALTER TABLE "workspace_role_permissions" ADD CONSTRAINT "workspace_role_permissions_workspaceRoleId_workspace_roles_id_fk" FOREIGN KEY ("workspaceRoleId") REFERENCES "public"."workspace_roles"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
Reference in New Issue
Block a user