feat: RBAC权限管理

This commit is contained in:
2025-03-10 23:55:10 +08:00
parent cbd06dcf54
commit e7bd916cae
13 changed files with 142 additions and 110 deletions

View File

@@ -0,0 +1,150 @@
-- CreateTable
CREATE TABLE "sys_user" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"name" TEXT,
"account" TEXT NOT NULL,
"password" TEXT NOT NULL,
"password_salt" TEXT NOT NULL,
"status" SMALLINT NOT NULL DEFAULT 0,
"avatar_id" TEXT,
"gender" SMALLINT NOT NULL DEFAULT 0,
CONSTRAINT "sys_user_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_role" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"code" TEXT NOT NULL,
"name" TEXT NOT NULL,
"status" SMALLINT NOT NULL DEFAULT 0,
CONSTRAINT "sys_role_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_user_role" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"user_id" TEXT NOT NULL,
"role_id" TEXT NOT NULL,
CONSTRAINT "sys_user_role_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "file" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"name" TEXT NOT NULL,
"origin_name" TEXT NOT NULL,
"path" TEXT NOT NULL,
"size" INTEGER NOT NULL,
"width" INTEGER,
"height" INTEGER,
CONSTRAINT "file_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_permission" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"name" TEXT,
CONSTRAINT "sys_permission_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_role_permission" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"role_id" TEXT NOT NULL,
"permission_id" TEXT NOT NULL,
CONSTRAINT "sys_role_permission_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_resource" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"name" TEXT NOT NULL,
"path" TEXT,
"parent_id" TEXT,
"sort" INTEGER NOT NULL DEFAULT 0,
"type" INTEGER NOT NULL,
CONSTRAINT "sys_resource_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_resource_permission" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"resource_id" TEXT NOT NULL,
"permission_id" TEXT NOT NULL,
CONSTRAINT "sys_resource_permission_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "sys_config" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"key" TEXT NOT NULL,
"value" TEXT NOT NULL,
"remark" TEXT,
CONSTRAINT "sys_config_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "sys_user_account_key" ON "sys_user"("account");
-- CreateIndex
CREATE INDEX "sys_user_avatar_id_idx" ON "sys_user"("avatar_id");
-- CreateIndex
CREATE UNIQUE INDEX "sys_role_code_key" ON "sys_role"("code");
-- CreateIndex
CREATE INDEX "sys_user_role_user_id_idx" ON "sys_user_role"("user_id");
-- CreateIndex
CREATE INDEX "sys_user_role_role_id_idx" ON "sys_user_role"("role_id");
-- CreateIndex
CREATE UNIQUE INDEX "sys_permission_name_key" ON "sys_permission"("name");
-- CreateIndex
CREATE INDEX "sys_role_permission_role_id_idx" ON "sys_role_permission"("role_id");
-- CreateIndex
CREATE INDEX "sys_role_permission_permission_id_idx" ON "sys_role_permission"("permission_id");
-- CreateIndex
CREATE UNIQUE INDEX "sys_resource_name_type_key" ON "sys_resource"("name", "type");
-- CreateIndex
CREATE UNIQUE INDEX "sys_resource_path_key" ON "sys_resource"("path");
-- CreateIndex
CREATE INDEX "sys_resource_permission_resource_id_idx" ON "sys_resource_permission"("resource_id");
-- CreateIndex
CREATE INDEX "sys_resource_permission_permission_id_idx" ON "sys_resource_permission"("permission_id");
-- CreateIndex
CREATE UNIQUE INDEX "sys_config_key_key" ON "sys_config"("key");