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
+17 -17
View File
@@ -77,16 +77,16 @@ namespace UserPermissionTest_CS_WinForms
private void RefreshPermissionList()
{
// Save currently checked permissions
var checkedPerms = new HashSet<string>();
// Save currently checked permission IDs
var checkedPermIds = new HashSet<int>();
for (int i = 0; i < chkPermissions.Items.Count; i++)
{
if (chkPermissions.GetItemChecked(i))
{
string? itemText = chkPermissions.Items[i]?.ToString();
if (itemText != null)
var permission = chkPermissions.Items[i] as Permission;
if (permission != null)
{
checkedPerms.Add(itemText);
checkedPermIds.Add(permission.Id);
}
}
}
@@ -105,8 +105,8 @@ namespace UserPermissionTest_CS_WinForms
{
for (int i = 0; i < chkPermissions.Items.Count; i++)
{
string? permissionName = chkPermissions.Items[i].ToString();
if (permissionName != null && user.Permissions.Contains(permissionName))
var permission = chkPermissions.Items[i] as Permission;
if (permission != null && user.Permissions.Contains(permission.Id))
{
chkPermissions.SetItemChecked(i, true);
}
@@ -118,8 +118,8 @@ namespace UserPermissionTest_CS_WinForms
// Otherwise, restore the checks that the administrator was in the middle of selecting
for (int i = 0; i < chkPermissions.Items.Count; i++)
{
string? permissionName = chkPermissions.Items[i].ToString();
if (permissionName != null && checkedPerms.Contains(permissionName))
var permission = chkPermissions.Items[i] as Permission;
if (permission != null && checkedPermIds.Contains(permission.Id))
{
chkPermissions.SetItemChecked(i, true);
}
@@ -162,8 +162,8 @@ namespace UserPermissionTest_CS_WinForms
// Update permissions CheckedListBox
for (int i = 0; i < chkPermissions.Items.Count; i++)
{
string? permissionName = chkPermissions.Items[i].ToString();
bool hasPermission = permissionName != null && user.Permissions.Contains(permissionName);
var permission = chkPermissions.Items[i] as Permission;
bool hasPermission = permission != null && user.Permissions.Contains(permission.Id);
chkPermissions.SetItemChecked(i, hasPermission);
}
@@ -334,17 +334,17 @@ namespace UserPermissionTest_CS_WinForms
}
}
private List<string> GetCheckedPermissions()
private List<int> GetCheckedPermissions()
{
var list = new List<string>();
var list = new List<int>();
for (int i = 0; i < chkPermissions.Items.Count; i++)
{
if (chkPermissions.GetItemChecked(i))
{
string? permissionName = chkPermissions.Items[i].ToString();
if (permissionName != null)
var permission = chkPermissions.Items[i] as Permission;
if (permission != null)
{
list.Add(permissionName);
list.Add(permission.Id);
}
}
}
@@ -361,7 +361,7 @@ namespace UserPermissionTest_CS_WinForms
return;
}
if (SessionManager.AvailablePermissions.Contains(newPerm, StringComparer.OrdinalIgnoreCase))
if (SessionManager.AvailablePermissions.Any(p => p.Name.Equals(newPerm, StringComparison.OrdinalIgnoreCase)))
{
MessageBox.Show($"Permission '{newPerm}' already exists in the system.", "Duplicate Permission", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtNewPermission.Focus();