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:
@@ -40,7 +40,8 @@ public class ConfigQuotaTests(PnvPanelWebApplicationFactory factory)
|
||||
var roles = await rolesResponse.ReadAsAsync<List<RoleResponse>>();
|
||||
var userRole = roles!.Single(r => r.Name == "user");
|
||||
|
||||
var updateRoleResponse = await adminClient.SendPutJsonAsync($"/api/admin/roles/{userRole.Id}", new { maxConfigs = Quota });
|
||||
var updateRoleResponse = await adminClient.SendPutJsonAsync(
|
||||
$"/api/admin/roles/{userRole.Id}", new { maxConfigs = Quota, maxIpLimit = -1 });
|
||||
Assert.Equal(HttpStatusCode.OK, updateRoleResponse.StatusCode);
|
||||
|
||||
var registerNodeResponse = await adminClient.PostJsonAsync("/api/admin/nodes", new
|
||||
|
||||
@@ -31,7 +31,7 @@ public sealed class FakeXuiPanelGateway : IXuiPanelGateway
|
||||
}
|
||||
|
||||
public Task<Result<string>> AddClientAsync(
|
||||
Node node, string inboundRemoteId, VpnProtocol protocol, string clientEmail, string clientName,
|
||||
Node node, string inboundRemoteId, VpnProtocol protocol, string clientEmail, string clientName, int limitIp,
|
||||
CancellationToken cancellationToken)
|
||||
=> Task.FromResult(Result.Success(Guid.NewGuid().ToString()));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user