PT

@core / kit-cms

1.0.1 ▾
verificadoMIT
GitHub

Kit de site autogerenciável para Next.js: /admin para editar páginas com blocos, mídia, menus, ajustes e usuários

Código38 arquivosContexto~1,8 mil tokensanálise aprovada

A árvore exata que será injetada, após o .genpmignore. Fixada em

src/app/(cms)/admin/[[...path]]/page.tsxsomente leitura · bb5d8e0
// Panel: comprueba sesión y `admin:access` en el servidor; la app cliente se construye desde /api/admin/schema.
import type { Metadata } from 'next';
import '@/lib/ui/ui.css';
import '../../_components/cms.css';
import { redirect } from 'next/navigation';
import { blocks } from '@/genpm/blocks';
import { blockMeta } from '@/lib/blocks';
import { can } from '@/lib/rbac';
import { currentUser } from '../../_lib/session';
import { AdminClient } from '../../_components/admin-client';

export const dynamic = 'force-dynamic';
export const metadata: Metadata = { title: 'Admin', robots: { index: false, follow: false } };

export default async function AdminPage({ params }: { params: Promise<{ path?: string[] }> }) {
  const user = await currentUser();
  if (!user) redirect('/admin/login');
  if (!(await can(user.id, 'admin:access')))
    return (
      <main className="ui-root admin-denied">
        <h1>No access</h1>
        <p>Your account ({user.email ?? user.id}) has no admin role yet. Ask the site owner to grant you one.</p>
        <form action="/auth/logout" method="post">
          <button className="ui-button" type="submit">Sign out</button>
        </form>
      </main>
    );
  const { path } = await params;
  return <AdminClient path={(path ?? []).map(encodeURIComponent).join('/')} blocks={blockMeta(blocks)} />;
}

Denunciar @core/kit-cms

Entre com o GitHub para denunciar um pacote.