Added permission groups. Cleaned security ui. Added some permission stuff

This commit is contained in:
Marcel Baumgartner
2023-07-17 22:16:39 +02:00
parent 0015001d7c
commit d3b55d155b
10 changed files with 430 additions and 245 deletions

View File

@@ -22,6 +22,10 @@ public class PermissionStorage
{
return BitHelper.ReadBit(Data, permission.Index);
}
catch (ArgumentOutOfRangeException)
{
return false;
}
catch (Exception e)
{
Logger.Verbose("Error reading permissions. (Can be intentional)");
@@ -37,4 +41,15 @@ public class PermissionStorage
Data = BitHelper.WriteBit(Data, permission.Index, value);
}
}
public bool HasAnyPermissions()
{
foreach (var permission in Permissions.GetAllPermissions())
{
if (this[permission])
return true;
}
return false;
}
}

View File

@@ -261,10 +261,10 @@ public static class Permissions
Description = "Manage mail settings in the admin area"
};
public static Permission AdminSysMalware = new()
public static Permission AdminSecurityMalware = new()
{
Index = 39,
Name = "Admin system Malware",
Name = "Admin security Malware",
Description = "Manage malware settings in the admin area"
};
@@ -275,11 +275,11 @@ public static class Permissions
Description = "View system resources in the admin area"
};
public static Permission AdminSysSecurity = new()
public static Permission AdminSecurity = new()
{
Index = 41,
Name = "Admin system Security",
Description = "Manage security settings in the admin area"
Name = "Admin Security",
Description = "View security logs in the admin area"
};
public static Permission AdminSysSentry = new()
@@ -379,6 +379,20 @@ public static class Permissions
Name = "Admin Webspaces Server New",
Description = "Create a new webspace server in the admin area"
};
public static Permission AdminSecurityIpBans = new()
{
Index = 56,
Name = "Admin security ip bans",
Description = "Manage ip bans in the admin area"
};
public static Permission AdminSecurityPermissionGroups = new()
{
Index = 57,
Name = "Admin security permission groups",
Description = "View, add and delete permission groups"
};
public static Permission? FromString(string name)
{

View File

@@ -242,11 +242,22 @@ public class IdentityService
Permissions.IsReadyOnly = true;
return;
}
Permissions = new PermissionStorage(BitHelper.OverwriteByteArrays(
UserPermissions.Data,
GroupPermissions.Data),
true
);
Permissions = new(Array.Empty<byte>());
foreach (var permission in Perms.Permissions.GetAllPermissions())
{
Permissions[permission] = GroupPermissions[permission];
}
foreach (var permission in Perms.Permissions.GetAllPermissions())
{
if (UserPermissions[permission])
{
Permissions[permission] = true;
}
}
Permissions.IsReadyOnly = true;
}
}