using Microsoft.AspNetCore.Identity; using PnvPanel.Application.Common.Models; namespace PnvPanel.Infrastructure.Identity; /// Роль с лимитом одновременных IP на клиента, доступом к инбаундам и флагом биллинга. /// Квота конфигов больше не на роли — см. AppUser.ConfigQuota/Plan. У пользователя ровно одна роль. public class AppRole : IdentityRole { public const int UnlimitedMaxIpLimit = RoleQuota.Unlimited; /// Лимит одновременных IP на клиента в 3x-ui (`limitIp`); -1 — без лимита. Применяется /// только к новым клиентам, создаваемым в 3x-ui (см. IXuiPanelGateway.AddClientAsync) — при смене /// роли/лимита существующие клиенты в панели не трогаются (как и квота ConfigQuota). public int MaxIpLimit { get; set; } public bool IsSystem { get; set; } /// Включает биллинг для пользователей с этой ролью (недоступно для роли admin — см. /// RoleService.UpdateRoleAsync). public bool BillingEnabled { get; set; } public AppRole() { } public AppRole(string name) : base(name) { } }