Compare commits
2 Commits
fix/openap
...
fix/bypass
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5dfb6427eb | ||
|
|
6b861b6875 |
@@ -1,8 +1 @@
|
|||||||
window.__ENV = {
|
window.__ENV = {"NEXT_PUBLIC_UMAMI_ID":"aaed1f55-25e2-4223-b918-e429c390be35","NEXT_PUBLIC_KAN_ENV":"cloud","NEXT_PUBLIC_BASE_URL":"http://localhost:3000","NEXT_PUBLIC_AVATAR_BUCKET_NAME":"avatars","NEXT_PUBLIC_STORAGE_DOMAIN":"storage.kanbn.com","NEXT_PUBLIC_STORAGE_URL":"https://storage.kanbn.com"};
|
||||||
NEXT_PUBLIC_UMAMI_ID: "aaed1f55-25e2-4223-b918-e429c390be35",
|
|
||||||
NEXT_PUBLIC_KAN_ENV: "cloud",
|
|
||||||
NEXT_PUBLIC_BASE_URL: "http://localhost:3000",
|
|
||||||
NEXT_PUBLIC_AVATAR_BUCKET_NAME: "avatars",
|
|
||||||
NEXT_PUBLIC_STORAGE_DOMAIN: "storage.kanbn.com",
|
|
||||||
NEXT_PUBLIC_STORAGE_URL: "https://storage.kanbn.com",
|
|
||||||
};
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { zodResolver } from "@hookform/resolvers/zod";
|
import { zodResolver } from "@hookform/resolvers/zod";
|
||||||
|
import { env } from "next-runtime-env";
|
||||||
import { useForm } from "react-hook-form";
|
import { useForm } from "react-hook-form";
|
||||||
import { HiCheck, HiMiniStar } from "react-icons/hi2";
|
import { HiCheck, HiMiniStar } from "react-icons/hi2";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
@@ -92,7 +93,9 @@ const UpdateWorkspaceUrlForm = ({
|
|||||||
const isWorkspaceSlugAvailable = checkWorkspaceSlugAvailability.data;
|
const isWorkspaceSlugAvailable = checkWorkspaceSlugAvailability.data;
|
||||||
|
|
||||||
const onSubmit = (data: FormValues) => {
|
const onSubmit = (data: FormValues) => {
|
||||||
if (isWorkspaceSlugAvailable?.isAvailable && workspacePlan !== "pro")
|
if (!isWorkspaceSlugAvailable?.isAvailable) return;
|
||||||
|
|
||||||
|
if (workspacePlan !== "pro" && env("NEXT_PUBLIC_KAN_ENV") === "cloud")
|
||||||
return openModal("UPDATE_WORKSPACE_URL", data.slug);
|
return openModal("UPDATE_WORKSPACE_URL", data.slug);
|
||||||
|
|
||||||
updateWorkspaceSlug.mutate({
|
updateWorkspaceSlug.mutate({
|
||||||
@@ -118,7 +121,11 @@ const UpdateWorkspaceUrlForm = ({
|
|||||||
? "This workspace username has already been taken"
|
? "This workspace username has already been taken"
|
||||||
: undefined)
|
: undefined)
|
||||||
}
|
}
|
||||||
prefix="kan.bn/"
|
prefix={
|
||||||
|
env("NEXT_PUBLIC_KAN_ENV") === "cloud"
|
||||||
|
? "kan.bn/"
|
||||||
|
: `${env("NEXT_PUBLIC_BASE_URL")}/`
|
||||||
|
}
|
||||||
iconRight={
|
iconRight={
|
||||||
isWorkspaceSlugAvailable?.isAvailable ||
|
isWorkspaceSlugAvailable?.isAvailable ||
|
||||||
(workspacePlan === "pro" && slug === workspaceUrl) ? (
|
(workspacePlan === "pro" && slug === workspaceUrl) ? (
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { TRPCError } from "@trpc/server";
|
import { TRPCError } from "@trpc/server";
|
||||||
|
import { env } from "next-runtime-env";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
||||||
@@ -224,10 +225,19 @@ export const workspaceRouter = createTRPCRouter({
|
|||||||
const isWorkspaceSlugAvailable =
|
const isWorkspaceSlugAvailable =
|
||||||
await workspaceRepo.isWorkspaceSlugAvailable(ctx.db, input.slug);
|
await workspaceRepo.isWorkspaceSlugAvailable(ctx.db, input.slug);
|
||||||
|
|
||||||
|
if (
|
||||||
|
env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
||||||
|
workspace.plan !== "pro" &&
|
||||||
|
input.slug !== workspace.publicId
|
||||||
|
) {
|
||||||
|
throw new TRPCError({
|
||||||
|
message: `Workspace slug cannot be changed in cloud without upgrading to a paid plan`,
|
||||||
|
code: "FORBIDDEN",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
reservedOrPremiumWorkspaceSlug?.type === "reserved" ||
|
reservedOrPremiumWorkspaceSlug?.type === "reserved" ||
|
||||||
(workspace.plan !== "pro" &&
|
|
||||||
reservedOrPremiumWorkspaceSlug?.type === "premium") ||
|
|
||||||
!isWorkspaceSlugAvailable
|
!isWorkspaceSlugAvailable
|
||||||
) {
|
) {
|
||||||
throw new TRPCError({
|
throw new TRPCError({
|
||||||
|
|||||||
Reference in New Issue
Block a user