fix: move admin pages to (protected) group layout to fix login redirect loop
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
import { requireAdminAuth } from '@/lib/adminAuth';
|
|
||||||
import { adminGetArticle } from '@/lib/engine';
|
import { adminGetArticle } from '@/lib/engine';
|
||||||
import ArticleEditor from '@/components/admin/ArticleEditor';
|
import ArticleEditor from '@/components/admin/ArticleEditor';
|
||||||
import { notFound } from 'next/navigation';
|
import { notFound } from 'next/navigation';
|
||||||
@@ -15,7 +14,6 @@ export async function generateMetadata({ params }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default async function AdminArticlePage({ params }) {
|
export default async function AdminArticlePage({ params }) {
|
||||||
await requireAdminAuth();
|
|
||||||
const { id } = await params;
|
const { id } = await params;
|
||||||
|
|
||||||
let article = null;
|
let article = null;
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
import ArticleEditor from '@/components/admin/ArticleEditor';
|
import ArticleEditor from '@/components/admin/ArticleEditor';
|
||||||
import { requireAdminAuth } from '@/lib/adminAuth';
|
|
||||||
|
|
||||||
export const metadata = { title: 'Новая статья' };
|
export const metadata = { title: 'Новая статья' };
|
||||||
|
|
||||||
export default async function NewArticlePage() {
|
export default async function NewArticlePage() {
|
||||||
await requireAdminAuth();
|
|
||||||
return <ArticleEditor article={null} />;
|
return <ArticleEditor article={null} />;
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { requireAdminAuth } from '@/lib/adminAuth';
|
|
||||||
import { adminListArticles } from '@/lib/engine';
|
import { adminListArticles } from '@/lib/engine';
|
||||||
import { Plus, Pencil, Eye } from 'lucide-react';
|
import { Plus, Pencil, Eye } from 'lucide-react';
|
||||||
|
|
||||||
@@ -7,7 +6,6 @@ export const dynamic = 'force-dynamic';
|
|||||||
export const metadata = { title: 'Статьи' };
|
export const metadata = { title: 'Статьи' };
|
||||||
|
|
||||||
export default async function AdminArticlesPage() {
|
export default async function AdminArticlesPage() {
|
||||||
await requireAdminAuth();
|
|
||||||
const raw = await adminListArticles({ limit: 100 });
|
const raw = await adminListArticles({ limit: 100 });
|
||||||
const articles = Array.isArray(raw) ? raw : raw?.articles || [];
|
const articles = Array.isArray(raw) ? raw : raw?.articles || [];
|
||||||
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { requireAdminAuth } from '@/lib/adminAuth';
|
|
||||||
import { adminListArticles, getStats } from '@/lib/engine';
|
import { adminListArticles, getStats } from '@/lib/engine';
|
||||||
import { FileText, Eye, TrendingUp, Plus, Image, RefreshCw } from 'lucide-react';
|
import { FileText, Eye, TrendingUp, Plus, Image, RefreshCw } from 'lucide-react';
|
||||||
|
|
||||||
@@ -26,7 +25,6 @@ function StatCard({ label, value, icon: Icon, color = 'emerald' }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default async function AdminDashboard() {
|
export default async function AdminDashboard() {
|
||||||
await requireAdminAuth();
|
|
||||||
|
|
||||||
const [articles, stats] = await Promise.allSettled([
|
const [articles, stats] = await Promise.allSettled([
|
||||||
adminListArticles({ limit: 50 }),
|
adminListArticles({ limit: 50 }),
|
||||||
Reference in New Issue
Block a user