summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Project-Unite/ACL.cs21
1 files changed, 12 insertions, 9 deletions
diff --git a/Project-Unite/ACL.cs b/Project-Unite/ACL.cs
index 85c881c..88e2fc2 100644
--- a/Project-Unite/ACL.cs
+++ b/Project-Unite/ACL.cs
@@ -284,16 +284,19 @@ namespace Project_Unite
if (forum.Permissions.Length < db.Roles.Count())
{
- var rolesToAdd = db.Roles.Where(r => forum.Permissions.FirstOrDefault(p => p.RoleId == r.Id) == null);
- foreach(var role in rolesToAdd)
+ var roles = db.Roles.ToArray();
+ foreach(var role in roles)
{
- var perm = new ForumPermission();
- perm.Id = Guid.NewGuid().ToString();
- perm.CategoryId = forum.Id;
- perm.RoleId = role.Id;
- perm.Permissions = PermissionPreset.CanPost;
- db.ForumPermissions.Add(perm);
- recordsAdded++;
+ if (db.ForumPermissions.FirstOrDefault(x => x.CategoryId == fid && x.RoleId == role.Id) == null)
+ {
+ var perm = new ForumPermission();
+ perm.Id = Guid.NewGuid().ToString();
+ perm.CategoryId = forum.Id;
+ perm.RoleId = role.Id;
+ perm.Permissions = PermissionPreset.CanPost;
+ db.ForumPermissions.Add(perm);
+ recordsAdded++;
+ }
}
db.AuditLogs.Add(new AuditLog("system", AuditLogLevel.Admin, $"Automatic forum ACL update occurred - Forum: {forum.Name}, records added: {recordsAdded}."));
db.SaveChanges();