private async Task RemovePermissionsRule(ulong userOrRoleId, PermissionTarget targetType) { try { var perms = PermissionOverwrites.Where(x => x.TargetType != targetType || x.TargetId != userOrRoleId).FirstOrDefault(); await Client.ClientAPI.Send(new RemoveChannelPermissionsRequest(Id, userOrRoleId)).ConfigureAwait(false); } catch (HttpException ex) when(ex.StatusCode == HttpStatusCode.NotFound) { } }
public ChannelPermissionOverrides GetPermissionsRule(User user) { if (user == null) { throw new ArgumentNullException(nameof(user)); } return(PermissionOverwrites .Where(x => x.TargetType == PermissionTarget.User && x.TargetId == user.Id) .Select(x => x.Permissions) .FirstOrDefault()); }
public ChannelPermissionOverrides GetPermissionsRule(Role role) { if (role == null) { throw new ArgumentNullException(nameof(role)); } return(PermissionOverwrites .Where(x => x.TargetType == PermissionTarget.Role && x.TargetId == role.Id) .Select(x => x.Permissions) .FirstOrDefault()); }
public bool AddPermissionOverwrite(PermissionOverwrite permission) { if (Client.AddChannelPermissionOverwrite(Id, permission)) { PermissionOverwrites.Add(permission); return(true); } else { return(false); } }