feat: мультироль
🚀 Create and publish a Docker image / Detect changes in backend and frontend (push) Successful in 9s
🚀 Create and publish a Docker image / Build & publish backend image (push) Successful in 2m6s
🚀 Create and publish a Docker image / Build & publish frontend image (push) Successful in 26s
🚀 Create and publish a Docker image / Update stack on Portainer (push) Successful in 6s

This commit is contained in:
2026-05-11 21:29:16 +03:00
parent 3b0bbfc858
commit 6824d7ce7d
29 changed files with 1350 additions and 95 deletions
@@ -0,0 +1,65 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace UniVerse.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class UserRolesJoinTable : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "user_roles",
columns: table => new
{
user_id = table.Column<int>(type: "integer", nullable: false),
role = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_user_roles", x => new { x.user_id, x.role });
table.ForeignKey(
name: "FK_user_roles_users_user_id",
column: x => x.user_id,
principalTable: "users",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.Sql("""
INSERT INTO user_roles (user_id, role)
SELECT id, role FROM users;
""");
migrationBuilder.DropColumn(
name: "role",
table: "users");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "role",
table: "users",
type: "integer",
nullable: false,
defaultValue: 0);
migrationBuilder.Sql("""
UPDATE users
SET role = COALESCE((
SELECT MIN(ur.role)
FROM user_roles ur
WHERE ur.user_id = users.id
), 0);
""");
migrationBuilder.DropTable(
name: "user_roles");
}
}
}