UNPKG

@brandazm/dynamic-permissions

Version:

A flexible and powerful permissions management system for NestJS applications with built-in security features

52 lines 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Initial_1749316822040 = void 0; class Initial_1749316822040 { constructor() { this.name = '1749316822040'; } async up(queryRunner) { await queryRunner.query(` CREATE TABLE "permissions" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), "name" varchar NOT NULL, "description" varchar, "level" integer NOT NULL DEFAULT 0, "is_active" boolean NOT NULL DEFAULT true, "created_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) `); await queryRunner.query(` CREATE TABLE "router_permissions" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), "route" varchar, "method" varchar, "permission_id" varchar, "is_active" boolean NOT NULL DEFAULT true, "created_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) `); await queryRunner.query(` CREATE TABLE "user_permissions" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), "user_id" varchar, "permission_id" varchar, "granted_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "expires_at" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "is_active" boolean NOT NULL DEFAULT true ) `); await queryRunner.query(`CREATE INDEX "IDX_permissions_name" ON "permissions" ("name");`); await queryRunner.query(`CREATE INDEX "IDX_router_permissions_route" ON "router_permissions" ("route");`); await queryRunner.query(`CREATE INDEX "IDX_user_permissions_user" ON "user_permissions" ("user_id");`); } async down(queryRunner) { await queryRunner.query(`DROP TABLE IF EXISTS "user_permissions"`); await queryRunner.query(`DROP TABLE IF EXISTS "router_permissions"`); await queryRunner.query(`DROP TABLE IF EXISTS "permissions"`); } } exports.Initial_1749316822040 = Initial_1749316822040; //# sourceMappingURL=1749316822040-Initial_1749316822040.js.map