v0.12.0 PG 16→18.6 + 备份系统(pg_basebackup 全量/增量+S3 归档+保留链)+ RBAC 用户分层(content/commerce/system)
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
* 服务端有防锁死保护:最后一个 admin 不可降级。
|
||||
*/
|
||||
import { createFileRoute, useRouter } from "@tanstack/react-router";
|
||||
import { App, Button, Card, Form, Input, Modal, Select, Space, Table, Tag } from "antd";
|
||||
import { App, Button, Card, Form, Input, Modal, Select, Space, Table, Tabs, Tag } from "antd";
|
||||
import { KeyRound, Search, UserPlus } from "lucide-react";
|
||||
import { getCurrentUser } from "~/server/auth";
|
||||
import { useState } from "react";
|
||||
@@ -17,12 +17,17 @@ export const Route = createFileRoute("/admin/users")({
|
||||
const page = Math.floor(Number(search.page)) || 0;
|
||||
if (page > 1) out.page = page;
|
||||
if (typeof search.q === "string" && search.q) out.q = search.q;
|
||||
// 用户类型 Tab:backend 后台用户 / customer 普通用户
|
||||
if (search.kind === "backend" || search.kind === "customer") out.kind = search.kind;
|
||||
return out;
|
||||
},
|
||||
loaderDeps: ({ search }) => ({ search }),
|
||||
loader: ({ deps }) =>
|
||||
guardAdmin(async () => {
|
||||
const [user, me] = await Promise.all([adminListUsers({ data: { page: deps.search.page, q: deps.search.q || undefined } }), getCurrentUser()]);
|
||||
const [user, me] = await Promise.all([
|
||||
adminListUsers({ data: { page: deps.search.page, q: deps.search.q || undefined, kind: deps.search.kind } }),
|
||||
getCurrentUser(),
|
||||
]);
|
||||
return { users: user, me };
|
||||
}),
|
||||
component: UsersPage,
|
||||
@@ -114,6 +119,16 @@ function UsersPage() {
|
||||
</Space>
|
||||
}
|
||||
/>
|
||||
{/* 用户类型分层:后台用户(admin/editor/manager)可登录后台;普通用户(customer)仅商城账号 */}
|
||||
<Tabs
|
||||
activeKey={search.kind ?? ""}
|
||||
onChange={(key) => void navigate({ search: (prev) => ({ ...prev, kind: key || undefined, page: 1 }) })}
|
||||
items={[
|
||||
{ key: "", label: "全部" },
|
||||
{ key: "backend", label: "后台用户" },
|
||||
{ key: "customer", label: "普通用户" },
|
||||
]}
|
||||
/>
|
||||
<Table
|
||||
rowKey="id"
|
||||
size="small"
|
||||
|
||||
Reference in New Issue
Block a user