Пример #1
0
 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)
     {
     }
 }
Пример #2
0
        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());
        }
Пример #3
0
        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());
        }
Пример #4
0
        public bool AddPermissionOverwrite(PermissionOverwrite permission)
        {
            if (Client.AddChannelPermissionOverwrite(Id, permission))
            {
                PermissionOverwrites.Add(permission);

                return(true);
            }
            else
            {
                return(false);
            }
        }