Exemplo n.º 1
0
        private async Task SetChannelPermissions(ChannelContext channel, Contexts contexts)
        {
            var everyonePermissions = new ChangedPermissions(allowPermissions: null, denyPermissions: ReadingAndSending);
            var mutedPermissions    = new ChangedPermissions(ReadingAndSending, new List <Permission> {
                Permission.ReadMessageHistory
            });

            var serverRoles  = this._usersRolesService.GetRoles(contexts.Server).ToList();
            var everyoneRole = serverRoles.First(x => x.Name == "@everyone");
            var mutedRole    = serverRoles.FirstOrDefault(x => x.Name == UsersRolesService.MUTED_ROLE_NAME);

            var rolesIdsWithAccess = this._configurationService.GetConfigurationItem <RolesWithAccessToComplaintsChannel>(contexts.Server.Id);
            var rolesWithAccess    = rolesIdsWithAccess.Value == null
                ? contexts.Server.GetRoles().Where(x => x.Permissions.Contains(Permission.ManageGuild)).ToList()
                : rolesIdsWithAccess.Value.Select(roleId => serverRoles.FirstOrDefault(serverRole => roleId == serverRole.Id)).ToList();

            rolesWithAccess.Add(mutedRole);

            await Task.Delay(1500);

            await this._channelsService.RemovePermissions(channel, contexts.Server, mutedRole);

            await this._channelsService.SetPermissions(channel, contexts.Server, mutedPermissions, mutedRole);

            this.SetAccessPermissions(channel, contexts.Server, rolesWithAccess);
            await this._channelsService.SetPermissions(channel, contexts.Server, everyonePermissions, everyoneRole);
        }
Exemplo n.º 2
0
        public static async Task SetPermissions(ChannelContext channel, ChangedPermissions permissions, UserRole muteRole)
        {
            await Task.Delay(1000);

            var channelSocket = (IGuildChannel) await GetChannel(channel.Id);

            var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue());
            var createdRole        = Server.GetSocketRoles(channelSocket.GuildId).FirstOrDefault(x => x.Id == muteRole.Id);

            await channelSocket.AddPermissionOverwriteAsync(createdRole, channelPermissions);
        }
Exemplo n.º 3
0
 private async Task SetChannelsPermissions(DiscordServerContext server, UserRole mutedRole, ChangedPermissions changedPermissions)
 {
     await this._channelsService.SetPermissions(server.TextChannels, server, changedPermissions, mutedRole);
 }
Exemplo n.º 4
0
 internal static Task SetRolePermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole role)
 {
     return(_discordClient.RolesService.SetRolePermissions(channels, server, permissions, role));
 }
Exemplo n.º 5
0
 public Task SetPermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole userRole)
 {
     return(Server.SetRolePermissions(channels, server, permissions, userRole));
 }
Exemplo n.º 6
0
 public Task SetPermissions(ChannelContext channel, DiscordServerContext server, ChangedPermissions permissions, UserRole userRole)
 {
     return(Server.SetRolePermissions(channel, server, permissions, userRole));
 }
Exemplo n.º 7
0
 private Task SetChannelsPermissions(DiscordServerContext server, UserRole mutedRole, ChangedPermissions changedPermissions)
 {
     return(this._channelsService.SetPermissions(server.GetTextChannels(), server, changedPermissions, mutedRole));
 }
        public async Task SetRolePermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole role)
        {
            await Task.Delay(1000);

            var socketRole = this.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == role.Id);

            if (socketRole == null)
            {
                Log.Error("Created role {roleName} was null", role.Name);
                return;
            }
            var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue());

            Parallel.ForEach(channels, c => this.SetRolePermissions(c, channelPermissions, socketRole).Wait());
        }
        public async Task SetRolePermissions(ChannelContext channel, DiscordServerContext server, ChangedPermissions permissions, UserRole role)
        {
            Log.Information("Setting role {roleName} for {channel}", role.Name, channel.Name);

            var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue());
            var socketRole         = this.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == role.Id);

            if (socketRole == null)
            {
                Log.Error("Role {roleName} was null", role.Name);
                return;
            }
            await this.SetRolePermissions(channel, channelPermissions, socketRole);
        }
Exemplo n.º 10
0
        public Task SetRolePermissions(ChannelContext channel, DiscordServerContext server, ChangedPermissions permissions, UserRole role)
        {
            Log.Information("Setting role {roleName} for {channel}", role.Name, channel.Name);
            var channelPermissions = new OverwritePermissions(permissions.AllowPermissions?.GetRawValue() ?? 0, permissions.DenyPermissions?.GetRawValue() ?? 0);
            var socketRole         = this.GetSocketRole(server, role);

            return(this.SetRolePermissions(channel, server, channelPermissions, socketRole));
        }
Exemplo n.º 11
0
        public async Task SetRolePermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole role)
        {
            Log.Information("Setting role {roleName} for {server}", role.Name, server.Name);
            var socketRole = Server.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == role.Id);

            if (socketRole == null)
            {
                Log.Error("Created role {roleName} was null", role.Name);
                return;
            }
            var channelPermissions = new OverwritePermissions(permissions.AllowPermissions?.GetRawValue() ?? 0, permissions.DenyPermissions?.GetRawValue() ?? 0);

            foreach (var channel in channels)
            {
                Log.Information("Setting role {roleName} for {channel}", role.Name, channel.Name);
                await this.SetRolePermissions(channel, server, channelPermissions, socketRole);
            }
            Log.Information("Successfully set role {roleName} on all channels on {server}", role.Name, server.Name);
        }
Exemplo n.º 12
0
 private Task SetChannelsPermissions(DiscordServerContext server, UserRole mutedRole, ChangedPermissions changedPermissions)
 {
     _channelsService.SetPermissions(server.TextChannels, server, changedPermissions, mutedRole);
     return(Task.CompletedTask);
 }
Exemplo n.º 13
0
 internal static Task SetRolePermissions(ChannelContext channel, ChangedPermissions permissions, UserRole role)
 {
     return(_discordClient.RolesService.SetRolePermissions(channel, permissions, role));
 }
Exemplo n.º 14
0
 public Task SetPermissions(ChannelContext channel, ChangedPermissions permissions, UserRole userRole)
 {
     return(Server.SetPermissions(channel, permissions, userRole));
 }
Exemplo n.º 15
0
        public static async Task SetPermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole muteRole)
        {
            await Task.Delay(1000);

            var createdRole        = Server.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == muteRole.Id);
            var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue());

            Parallel.ForEach(channels, async c =>
            {
                var channelSocket = (IGuildChannel)await GetChannel(c.Id);
                await channelSocket.AddPermissionOverwriteAsync(createdRole, channelPermissions);
            });
        }