For release.

This commit is contained in:
charlesgauthereau
2025-07-28 16:53:21 +02:00
parent 85047e7509
commit 17469696ee
13 changed files with 172 additions and 65 deletions
+2
View File
@@ -15,6 +15,8 @@ export default function Layout({children}: { children: React.ReactNode }) {
const router = useRouter();
const { data: session } = useSession();
if (session && session.user && !session.user.banned && session.user.role !== "pending") {
router.replace("/dashboard/home");
}
@@ -1,7 +1,7 @@
import {PageParams} from "@/types/next";
import {Page, PageActions, PageContent, PageDescription, PageHeader, PageTitle} from "@/features/layout/page";
import {currentUser} from "@/lib/auth/current-user";
import {getOrganization} from "@/lib/auth/auth";
import {getActiveMember, getOrganization} from "@/lib/auth/auth";
import {notFound} from "next/navigation";
import {
DeleteOrganizationButton
@@ -15,27 +15,33 @@ import {
export default async function RoutePage(props: PageParams<{ slug: string }>) {
const organization = await getOrganization({});
const user = await currentUser();
const activeMember = await getActiveMember()
if (!organization) {
notFound();
}
const isMember = activeMember?.role === "member";
if (isMember) {
notFound();
}
console.log(organization);
return (
<Page>
<PageHeader>
<PageTitle className="flex items-center">
Organization settings
{organization.slug != "default" ?
<EditButtonSettings/>
: null}
{!isMember && organization.slug !== "default" && (
<EditButtonSettings />
)}
</PageTitle>
<PageActions>
{organization.slug != "default" ?
<DeleteOrganizationButton organizationSlug={organization.slug}/>
: null}
{!isMember && organization.slug !== "default" && (
<DeleteOrganizationButton organizationSlug={organization.slug} />
)}
</PageActions>
</PageHeader>
{/*<PageDescription>*/}
+4 -7
View File
@@ -1,13 +1,11 @@
import {PageParams} from "@/types/next";
import {Page, PageActions, PageContent, PageHeader, PageTitle} from "@/features/layout/page";
import {Page, PageContent, PageTitle} from "@/features/layout/page";
import {notFound} from "next/navigation";
import {UserForm} from "@/components/wrappers/dashboard/profile/user-form/user-form";
import {Badge} from "@/components/ui/badge";
import {ButtonDeleteAccount} from "@/components/wrappers/dashboard/profile/button-delete-account/button-delete-account";
import {AvatarWithUpload} from "@/components/wrappers/dashboard/profile/avatar/avatar-with-upload";
import {currentUser} from "@/lib/auth/current-user";
import {getAccounts, getSessions} from "@/lib/auth/auth";
//import { getAccounts, getSessions } from "@/lib/auth/auth";
export default async function RoutePage(props: PageParams<{}>) {
const user = await currentUser();
@@ -16,7 +14,6 @@ export default async function RoutePage(props: PageParams<{}>) {
return notFound();
}
if (user.role !== "user" && user.role !== "admin" && user.role !== "superadmin") {
return notFound();
}
@@ -42,9 +39,9 @@ export default async function RoutePage(props: PageParams<{}>) {
{user.name}
<Badge className="ml-3 hidden lg:block">{user.role}</Badge>
</PageTitle>
<PageActions className="mt-2 hidden sm:block">
<ButtonDeleteAccount text="Delete my account"/>
</PageActions>
{/*<PageActions className="mt-2 hidden sm:block">*/}
{/* <ButtonDeleteAccount text="Delete my account"/>*/}
{/*</PageActions>*/}
</div>
<PageContent>
<UserForm
+8 -5
View File
@@ -1,10 +1,13 @@
import { redirect } from "next/navigation";
export default async function NotFound() {
// redirect("/dashboard/profile");
return(
<>
Error
</>
<div className="flex items-center min-h-screen px-4 py-12 sm:px-6 md:px-8 lg:px-12 xl:px-16">
<div className="w-full space-y-6 text-center">
<div className="space-y-3">
<h1 className="scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl">Not found</h1>
<p className="leading-7 [&:not(:first-child)]:mt-6">The content you are trying to view is not available.</p>
</div>
</div>
</div>
)
}