added postgresql integration for user permissions

This commit is contained in:
Atakan Kayman
2026-05-31 15:54:46 +03:00
parent 374067dd2e
commit 7e18f84c42
10 changed files with 558 additions and 103 deletions
@@ -6,13 +6,13 @@ namespace UserPermissionTest_CS_WinForms
{
public static class SessionManager
{
private static readonly IUserRepository UserRepository = new JsonUserRepository();
private static readonly IUserRepository UserRepository = new PostgreSqlUserRepository("Host=127.0.0.1;Port=5432;Database=postgres;Username=postgres;Password=postgres");
public static User? CurrentUser { get; private set; }
public static List<User> Users { get; private set; } = new List<User>();
public static List<string> AvailablePermissions { get; private set; } = new List<string>();
public static List<Permission> AvailablePermissions { get; private set; } = new List<Permission>();
public static event Action? SessionStateChanged;
public static event Action? UsersUpdated;
@@ -88,11 +88,13 @@ namespace UserPermissionTest_CS_WinForms
}
}
public static void AddPermission(string permission)
public static void AddPermission(string permissionName)
{
if (!AvailablePermissions.Contains(permission))
if (!AvailablePermissions.Any(p => p.Name.Equals(permissionName, StringComparison.OrdinalIgnoreCase)))
{
AvailablePermissions.Add(permission);
int newId = AvailablePermissions.Count > 0 ? AvailablePermissions.Max(p => p.Id) + 1 : 1;
var newPerm = new Permission { Id = newId, Name = permissionName };
AvailablePermissions.Add(newPerm);
UserRepository.SavePermissions(AvailablePermissions);
UsersUpdated?.Invoke();
}