diff --git a/Requests/CreateGroupPermission.cs b/Requests/CreateGroupPermission.cs index a2622be..c04aa68 100644 --- a/Requests/CreateGroupPermission.cs +++ b/Requests/CreateGroupPermission.cs @@ -31,6 +31,11 @@ namespace HermesSocketServer.Requests Allow = allow, }; + if (channel.GroupPermissions.Get().Values.Any(p => p.GroupId == groupId && p.Path == path)) + { + return Task.FromResult(RequestResult.Failed("Permission exists already.")); + } + bool result = channel.GroupPermissions.Set(id.ToString(), permission); if (result) { diff --git a/Requests/DeleteGroupPermission.cs b/Requests/DeleteGroupPermission.cs index c0f4e84..64e6cb3 100644 --- a/Requests/DeleteGroupPermission.cs +++ b/Requests/DeleteGroupPermission.cs @@ -18,11 +18,12 @@ namespace HermesSocketServer.Requests { var id = data["id"].ToString()!; + var permission = channel.GroupPermissions.Get(id); var result = channel.GroupPermissions.Remove(id); if (result) { _logger.Information($"Deleted a group permission by id [group permission id: {id}]"); - return Task.FromResult(RequestResult.Successful(null)); + return Task.FromResult(RequestResult.Successful(permission)); } _logger.Warning($"Group Permission Id does not exist [group permission id: {id}]"); diff --git a/Requests/UpdateGroupPermission.cs b/Requests/UpdateGroupPermission.cs index 36677fd..6d32f55 100644 --- a/Requests/UpdateGroupPermission.cs +++ b/Requests/UpdateGroupPermission.cs @@ -31,6 +31,11 @@ namespace HermesSocketServer.Requests Allow = allow, }; + if (!channel.GroupPermissions.Get().Values.Any(p => p.GroupId == groupId && p.Path == path)) + { + return Task.FromResult(RequestResult.Failed("Permission does not exist.")); + } + bool result = channel.GroupPermissions.Modify(id.ToString(), permission); if (result) {