added postgresql integration for user permissions
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user