feat(dal): таблицы Users, Roles
This commit is contained in:
44
PARR.Constants/ParrRoles.cs
Normal file
44
PARR.Constants/ParrRoles.cs
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
namespace PARR.Constants
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Роли ПАРР
|
||||||
|
/// </summary>
|
||||||
|
public static class ParrRoles
|
||||||
|
{
|
||||||
|
// Подробнее о авторизации в документации в разделе Авторизация
|
||||||
|
|
||||||
|
private const string Base = Administrator.Role + ",";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Роль: Администратор
|
||||||
|
/// </summary>
|
||||||
|
public static class Administrator
|
||||||
|
{
|
||||||
|
public const string Role = "administrator";
|
||||||
|
|
||||||
|
public const string Description = "Администратор";
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Роль: agent Агент
|
||||||
|
/// </summary>
|
||||||
|
public static class Agent
|
||||||
|
{
|
||||||
|
public const string Role = "agent";
|
||||||
|
public const string RoleOrAdmin = Base + Role;
|
||||||
|
|
||||||
|
public const string Description = "Агент";
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Роль: espp-robot Робот ЕСПП
|
||||||
|
/// </summary>
|
||||||
|
public static class EsppRobot
|
||||||
|
{
|
||||||
|
public const string Role = "espp-robot";
|
||||||
|
public const string RoleOrAdmin = Base + Role;
|
||||||
|
|
||||||
|
public const string Description = "Робот ЕСПП";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -47,15 +47,21 @@ namespace PARR.DAL.Context
|
|||||||
public DbSet<AgentHistory> AgentHistories { get; set; }
|
public DbSet<AgentHistory> AgentHistories { get; set; }
|
||||||
public DbSet<AgentHistoryLevel> AgentHistoryLevels { get; set; }
|
public DbSet<AgentHistoryLevel> AgentHistoryLevels { get; set; }
|
||||||
|
|
||||||
public DbSet<Order> Orders { get; set; }
|
public DbSet<Models.Order> Orders { get; set; }
|
||||||
public DbSet<OrderStatus> OrderStatuses { get; set; }
|
public DbSet<OrderStatus> OrderStatuses { get; set; }
|
||||||
|
|
||||||
|
public DbSet<User> Users { get; set; }
|
||||||
|
public DbSet<Models.Role> Roles { get; set; }
|
||||||
|
public DbSet<UsersInRole> UsersInRoles { get; set; }
|
||||||
|
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
base.OnModelCreating(modelBuilder);
|
base.OnModelCreating(modelBuilder);
|
||||||
|
|
||||||
var dateCreated = new DateTimeOffset(2023, 05, 01, 0, 0, 0, new TimeSpan(0));
|
var dateCreated = new DateTimeOffset(2023, 05, 01, 0, 0, 0, new TimeSpan(0));
|
||||||
|
|
||||||
|
#region ApplicationType
|
||||||
modelBuilder.Entity<ApplicationType>(f =>
|
modelBuilder.Entity<ApplicationType>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -64,7 +70,9 @@ namespace PARR.DAL.Context
|
|||||||
new() { Id = new Guid("aae2636f-b93a-42dc-873e-0764a90a0a40"), DateCreated = dateCreated, DateModified = null, Name = ApplicationTypesEnum.DB.ToString(), Description = "Поле СУБД xml АИХ ИТ" }
|
new() { Id = new Guid("aae2636f-b93a-42dc-873e-0764a90a0a40"), DateCreated = dateCreated, DateModified = null, Name = ApplicationTypesEnum.DB.ToString(), Description = "Поле СУБД xml АИХ ИТ" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AIHIT_Setting
|
||||||
modelBuilder.Entity<Models.AIHIT.Setting>(f =>
|
modelBuilder.Entity<Models.AIHIT.Setting>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -89,8 +97,9 @@ namespace PARR.DAL.Context
|
|||||||
new() { Id = new Guid("77C73C0A-8E4D-4676-B6E2-6A112F20E346"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.StatusGroupName, Name = "Exploitation", Value = "3-В эксплуатации", Description = "Статус актуальных ЭК" }
|
new() { Id = new Guid("77C73C0A-8E4D-4676-B6E2-6A112F20E346"), DateCreated = dateCreated, DateModified = null, Group = AIHTITSettings.StatusGroupName, Name = "Exploitation", Value = "3-В эксплуатации", Description = "Статус актуальных ЭК" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region TaskStatus
|
||||||
modelBuilder.Entity<Models.TaskStatus>(f =>
|
modelBuilder.Entity<Models.TaskStatus>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -100,7 +109,9 @@ namespace PARR.DAL.Context
|
|||||||
new() { Code = (int)TaskStatusEnum.Ok, Name = TaskStatusEnum.Ok.ToString(), Description = "Нормальное состояние объекта в ЕСПП и ПАРР. ОБъект в ПАРР соответствует объекту в ЕСПП" }
|
new() { Code = (int)TaskStatusEnum.Ok, Name = TaskStatusEnum.Ok.ToString(), Description = "Нормальное состояние объекта в ЕСПП и ПАРР. ОБъект в ПАРР соответствует объекту в ЕСПП" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Settings
|
||||||
modelBuilder.Entity<Models.Setting>(f =>
|
modelBuilder.Entity<Models.Setting>(f =>
|
||||||
{
|
{
|
||||||
// При добавлении записей, добавлять тоже в PARR.DAL.Contracts.SettingsFromDb
|
// При добавлении записей, добавлять тоже в PARR.DAL.Contracts.SettingsFromDb
|
||||||
@@ -117,7 +128,9 @@ namespace PARR.DAL.Context
|
|||||||
new { Name = nameof(SettingsFromDb.OrderSearchDeltaDate), Description = "Промежуток времени для поиска нарядов в ЕСПП", Value = new TimeSpan(1, 30, 0).ToString() }
|
new { Name = nameof(SettingsFromDb.OrderSearchDeltaDate), Description = "Промежуток времени для поиска нарядов в ЕСПП", Value = new TimeSpan(1, 30, 0).ToString() }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region EK
|
||||||
modelBuilder.Entity<EkStatus>(f =>
|
modelBuilder.Entity<EkStatus>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -131,7 +144,9 @@ namespace PARR.DAL.Context
|
|||||||
new { Code = (int)EkStatusEnum.Development, Name = "9-В разработке" }
|
new { Code = (int)EkStatusEnum.Development, Name = "9-В разработке" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ResponseArea
|
||||||
modelBuilder.Entity<ResponseArea>(f =>
|
modelBuilder.Entity<ResponseArea>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -154,6 +169,7 @@ namespace PARR.DAL.Context
|
|||||||
new { Code = (int)ResponseAreaEnum.gvc, Name = "00-ГВЦ" }
|
new { Code = (int)ResponseAreaEnum.gvc, Name = "00-ГВЦ" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Robots
|
#region Robots
|
||||||
|
|
||||||
@@ -326,6 +342,7 @@ namespace PARR.DAL.Context
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region AgentHistoryLevel
|
||||||
modelBuilder.Entity<AgentHistoryLevel>(f =>
|
modelBuilder.Entity<AgentHistoryLevel>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -333,7 +350,9 @@ namespace PARR.DAL.Context
|
|||||||
new { Id = (int)AgentHistoryLevelEnum.End, Name = AgentHistoryLevelEnum.End.ToString(), Description = "Агент завершил выполнение задания" }
|
new { Id = (int)AgentHistoryLevelEnum.End, Name = AgentHistoryLevelEnum.End.ToString(), Description = "Агент завершил выполнение задания" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region OrderStatus
|
||||||
modelBuilder.Entity<OrderStatus>(f =>
|
modelBuilder.Entity<OrderStatus>(f =>
|
||||||
{
|
{
|
||||||
f.HasData(
|
f.HasData(
|
||||||
@@ -344,6 +363,17 @@ namespace PARR.DAL.Context
|
|||||||
new { Code = (int)OrderStatusEnum.Closed, Name = OrderStatusEnum.Closed.ToString(), Description = "5-Закрыт" }
|
new { Code = (int)OrderStatusEnum.Closed, Name = OrderStatusEnum.Closed.ToString(), Description = "5-Закрыт" }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Roles
|
||||||
|
modelBuilder.Entity<Models.Role>(f =>
|
||||||
|
{
|
||||||
|
f.HasData(
|
||||||
|
new() { Id = new Guid("C8F2F144-E6C2-45D7-BA66-5E9BBD376376"), DateCreated = dateCreated, Name = ParrRoles.Administrator.Role, Description = ParrRoles.Administrator.Description },
|
||||||
|
new() { Id = new Guid("13BCA225-7FA4-42FA-9D80-D2D46DE261FE"), DateCreated = dateCreated, Name = ParrRoles.EsppRobot.Role, Description = ParrRoles.EsppRobot.Description }
|
||||||
|
);
|
||||||
|
});
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2850
PARR.DAL/Migrations/20231130230303_TblUsersRoles.Designer.cs
generated
Normal file
2850
PARR.DAL/Migrations/20231130230303_TblUsersRoles.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
92
PARR.DAL/Migrations/20231130230303_TblUsersRoles.cs
Normal file
92
PARR.DAL/Migrations/20231130230303_TblUsersRoles.cs
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace PARR.DAL.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class TblUsersRoles : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Roles",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
DateCreated = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
||||||
|
Name = table.Column<string>(type: "text", nullable: false),
|
||||||
|
Description = table.Column<string>(type: "text", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Roles", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Users",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
DateCreated = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
||||||
|
Ip = table.Column<string>(type: "text", nullable: false),
|
||||||
|
Name = table.Column<string>(type: "text", nullable: false),
|
||||||
|
Description = table.Column<string>(type: "text", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Users", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "UsersInRoles",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
RoleId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||||
|
UserId = table.Column<Guid>(type: "uuid", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_UsersInRoles", x => new { x.RoleId, x.UserId });
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_UsersInRoles_Roles_RoleId",
|
||||||
|
column: x => x.RoleId,
|
||||||
|
principalTable: "Roles",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_UsersInRoles_Users_UserId",
|
||||||
|
column: x => x.UserId,
|
||||||
|
principalTable: "Users",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Users_Ip",
|
||||||
|
table: "Users",
|
||||||
|
column: "Ip",
|
||||||
|
unique: true);
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_UsersInRoles_UserId",
|
||||||
|
table: "UsersInRoles",
|
||||||
|
column: "UserId");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "UsersInRoles");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Roles");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Users");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2866
PARR.DAL/Migrations/20231201000212_TblRolesInitData.Designer.cs
generated
Normal file
2866
PARR.DAL/Migrations/20231201000212_TblRolesInitData.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
40
PARR.DAL/Migrations/20231201000212_TblRolesInitData.cs
Normal file
40
PARR.DAL/Migrations/20231201000212_TblRolesInitData.cs
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
|
||||||
|
|
||||||
|
namespace PARR.DAL.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class TblRolesInitData : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.InsertData(
|
||||||
|
table: "Roles",
|
||||||
|
columns: new[] { "Id", "DateCreated", "Description", "Name" },
|
||||||
|
values: new object[,]
|
||||||
|
{
|
||||||
|
{ new Guid("13bca225-7fa4-42fa-9d80-d2d46de261fe"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), "Робот ЕСПП", "espp-robot" },
|
||||||
|
{ new Guid("c8f2f144-e6c2-45d7-ba66-5e9bbd376376"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), "Администратор", "administrator" }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "Roles",
|
||||||
|
keyColumn: "Id",
|
||||||
|
keyValue: new Guid("13bca225-7fa4-42fa-9d80-d2d46de261fe"));
|
||||||
|
|
||||||
|
migrationBuilder.DeleteData(
|
||||||
|
table: "Roles",
|
||||||
|
keyColumn: "Id",
|
||||||
|
keyValue: new Guid("c8f2f144-e6c2-45d7-ba66-5e9bbd376376"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2079,6 +2079,44 @@ namespace PARR.DAL.Migrations
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.Role", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
|
b.Property<DateTimeOffset>("DateCreated")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("Description")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Roles");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = new Guid("c8f2f144-e6c2-45d7-ba66-5e9bbd376376"),
|
||||||
|
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||||
|
Description = "Администратор",
|
||||||
|
Name = "administrator"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = new Guid("13bca225-7fa4-42fa-9d80-d2d46de261fe"),
|
||||||
|
DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
|
||||||
|
Description = "Робот ЕСПП",
|
||||||
|
Name = "espp-robot"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
|
||||||
{
|
{
|
||||||
b.Property<string>("Name")
|
b.Property<string>("Name")
|
||||||
@@ -2301,6 +2339,49 @@ namespace PARR.DAL.Migrations
|
|||||||
b.ToTable("Tnks");
|
b.ToTable("Tnks");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.User", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
|
b.Property<DateTimeOffset>("DateCreated")
|
||||||
|
.HasColumnType("timestamp with time zone");
|
||||||
|
|
||||||
|
b.Property<string>("Description")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Ip")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("Ip")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.ToTable("Users");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.UsersInRole", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("RoleId")
|
||||||
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
|
b.Property<Guid>("UserId")
|
||||||
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
|
b.HasKey("RoleId", "UserId");
|
||||||
|
|
||||||
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
|
b.ToTable("UsersInRoles");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
@@ -2606,6 +2687,25 @@ namespace PARR.DAL.Migrations
|
|||||||
b.Navigation("Subprocess");
|
b.Navigation("Subprocess");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.UsersInRole", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("PARR.DAL.Models.Role", "Role")
|
||||||
|
.WithMany("Users")
|
||||||
|
.HasForeignKey("RoleId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("PARR.DAL.Models.User", "User")
|
||||||
|
.WithMany("Roles")
|
||||||
|
.HasForeignKey("UserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("Role");
|
||||||
|
|
||||||
|
b.Navigation("User");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("PARR.DAL.Models.Tnk", "Tnk")
|
b.HasOne("PARR.DAL.Models.Tnk", "Tnk")
|
||||||
@@ -2717,6 +2817,11 @@ namespace PARR.DAL.Migrations
|
|||||||
b.Navigation("RobotConfigurations");
|
b.Navigation("RobotConfigurations");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.Role", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Users");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Tnks");
|
b.Navigation("Tnks");
|
||||||
@@ -2743,6 +2848,11 @@ namespace PARR.DAL.Migrations
|
|||||||
b.Navigation("Works");
|
b.Navigation("Works");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("PARR.DAL.Models.User", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Roles");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("ApplicationsInWorks");
|
b.Navigation("ApplicationsInWorks");
|
||||||
|
|||||||
25
PARR.DAL/Models/Role.cs
Normal file
25
PARR.DAL/Models/Role.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
using PARR.DAL.Models.Base;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Models
|
||||||
|
{
|
||||||
|
[Table("Roles")]
|
||||||
|
public class Role : IBase
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public DateTimeOffset DateCreated { get; set; }
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public DateTimeOffset? DateModified { get; set; }
|
||||||
|
|
||||||
|
public required string Name { get; set; }
|
||||||
|
|
||||||
|
public required string Description { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public ICollection<UsersInRole> Users { get; set; } = new HashSet<UsersInRole>();
|
||||||
|
}
|
||||||
|
}
|
||||||
29
PARR.DAL/Models/User.cs
Normal file
29
PARR.DAL/Models/User.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using PARR.DAL.Models.Base;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Models
|
||||||
|
{
|
||||||
|
[Table("Users")]
|
||||||
|
[Index(nameof(Ip), IsUnique = true)]
|
||||||
|
public class User : IBase
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public DateTimeOffset DateCreated { get; set; }
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public DateTimeOffset? DateModified { get; set; }
|
||||||
|
|
||||||
|
public required string Ip { get; set; }
|
||||||
|
|
||||||
|
public required string Name { get; set; }
|
||||||
|
|
||||||
|
public string? Description { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public ICollection<UsersInRole> Roles { get; set; } = new HashSet<UsersInRole>();
|
||||||
|
}
|
||||||
|
}
|
||||||
20
PARR.DAL/Models/UsersInRole.cs
Normal file
20
PARR.DAL/Models/UsersInRole.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace PARR.DAL.Models
|
||||||
|
{
|
||||||
|
[Table("UsersInRoles")]
|
||||||
|
[PrimaryKey(nameof(RoleId), nameof(UserId))]
|
||||||
|
public class UsersInRole
|
||||||
|
{
|
||||||
|
public Guid RoleId { get; set; }
|
||||||
|
|
||||||
|
public Guid UserId { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey(nameof(RoleId))]
|
||||||
|
public Role? Role { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey(nameof(UserId))]
|
||||||
|
public User? User { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="7.0.12" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" />
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ services:
|
|||||||
#restart: always
|
#restart: always
|
||||||
environment:
|
environment:
|
||||||
- ASPNETCORE_ENVIRONMENT=Production
|
- ASPNETCORE_ENVIRONMENT=Production
|
||||||
- TZ=Europe/Moscow
|
- TZ=Europe/Moscow
|
||||||
ports:
|
ports:
|
||||||
- 8082:80
|
- 8082:80
|
||||||
#volumes:
|
#volumes:
|
||||||
@@ -35,7 +35,7 @@ services:
|
|||||||
- parr_redis_data:/data
|
- parr_redis_data:/data
|
||||||
#- parr_redis_config/redis.conf:/usr/local/etc/redis/redis.conf
|
#- parr_redis_config/redis.conf:/usr/local/etc/redis/redis.conf
|
||||||
environment:
|
environment:
|
||||||
- REDIS_ARGS="--requirepass ParrP@ssPtk202MMdevDvs"
|
- REDIS_ARGS=--requirepass ParrP@ssPtk202MMdevDvs
|
||||||
deploy:
|
deploy:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
Reference in New Issue
Block a user