Implement role and user management enhancements
- Added MaxIpLimit to roles, allowing for the configuration of simultaneous IP limits for users. - Updated role creation and update commands to include MaxIpLimit, ensuring proper handling in the application logic. - Enhanced user management by introducing a DELETE endpoint for user accounts, with appropriate checks to prevent self-deletion. - Updated documentation to reflect changes in role and user management, clarifying the new IP limit functionality and user deletion process. - Adjusted related tests to cover new functionality and ensure robust validation of role and user management features.
This commit is contained in:
@@ -3,12 +3,19 @@ using PnvPanel.Application.Common.Models;
|
||||
|
||||
namespace PnvPanel.Infrastructure.Identity;
|
||||
|
||||
/// <summary>Роль с квотой на число конфигов. У пользователя ровно одна роль.</summary>
|
||||
/// <summary>Роль с квотой на число конфигов и лимитом одновременных IP на клиента. У пользователя ровно одна роль.</summary>
|
||||
public class AppRole : IdentityRole<Guid>
|
||||
{
|
||||
public const int UnlimitedMaxConfigs = RoleQuota.Unlimited;
|
||||
public const int UnlimitedMaxIpLimit = RoleQuota.Unlimited;
|
||||
|
||||
public int MaxConfigs { get; set; }
|
||||
|
||||
/// <summary>Лимит одновременных IP на клиента в 3x-ui (`limitIp`); -1 — без лимита. Применяется
|
||||
/// только к новым клиентам, создаваемым в 3x-ui (см. IXuiPanelGateway.AddClientAsync) — при смене
|
||||
/// роли/лимита существующие клиенты в панели не трогаются (как и квота MaxConfigs).</summary>
|
||||
public int MaxIpLimit { get; set; }
|
||||
|
||||
public bool IsSystem { get; set; }
|
||||
|
||||
public AppRole()
|
||||
|
||||
Reference in New Issue
Block a user