internal static AllowUsers AllowUserInsert(ulong GuildID, ulong Uuid, string Name, uint RoleNum) { AllowUsers InsertAllowUser = new AllowUsers { GuildID = GuildID, Uuid = Uuid, Name = Name, RoleNum = RoleNum }; AllowUsersCollection.Insert(InsertAllowUser); return(InsertAllowUser); }
public bool IsAllowed(ClaimsPrincipal claim) { if (Public || claim.IsInRole("admin") || Owner.Equals(claim.Identity.Name)) { return(true); } if (DenyUsers.Contains(claim.Identity.Name)) { return(false); } if (AllowUsers.Contains(claim.Identity.Name)) { return(true); } return(!DenyRoles.Any(claim.IsInRole) && AllowRoles.Any(claim.IsInRole)); }
internal override async Task Execute(CommandObjects CommandObject) { try { string[] msgs = CommandObject.CommandArgs.Remove(0); if (msgs.Length == 0) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyText); return; } string msgs_Name; if (string.IsNullOrWhiteSpace(msgs[0])) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyName); return; } msgs_Name = msgs[0]; if (string.IsNullOrWhiteSpace(msgs[1])) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyId); return; } if (!ulong.TryParse(msgs[1], out ulong msgs_ID)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.IdCouldntParse); return; } if (string.IsNullOrWhiteSpace(msgs[2])) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.EmptyRoleNumber); return; } if (!uint.TryParse(msgs[2], out uint msgs_RoleNum)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.RoleNumberNotNumber); return; } if (Database.DatabaseMethods.AllowUsersMethods.AllowUserExist(CommandObject.Guild.Id, msgs_Name)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.NameRegisted); return; } if (Database.DatabaseMethods.AllowUsersMethods.AllowUserExist(CommandObject.Guild.Id, msgs_ID)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.IdRegisted); return; } if (!Database.DatabaseMethods.RolesMethods.RoleFind(CommandObject.Guild.Id, msgs_RoleNum, out Roles DBRolesNum)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.RoleNumberNotFound); return; } if (!await Authentication.Confirmation(CommandObject)) { await CommandObject.Channel.SendMessageAsync(CommandObject.Language.AuthFailure); return; } AllowUsers InsertAllowUserData = Database.DatabaseMethods.AllowUsersMethods.AllowUserInsert(CommandObject.Guild.Id, msgs_ID, msgs_Name, msgs_RoleNum); DiscordRole GuildRole = CommandObject.Guild.GetRole(DBRolesNum.Uuid); string ResultText = string.Format(CommandObject.Language.DBUserAddSuccess, InsertAllowUserData.Name, InsertAllowUserData.Uuid, InsertAllowUserData.RoleNum, GuildRole.Name); await CommandObject.Message.Channel.SendMessageAsync(ResultText); } catch (IndexOutOfRangeException) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.TypingMissed); } }
private static async Task AllowUserProcess(DiscordClient Bot, GuildMemberAddEventArgs MemberObjects, GetLanguage Get_Language, AllowUsers DBAllowUserID) { if (Database.DatabaseMethods.RolesMethods.RoleFind(MemberObjects.Guild.Id, DBAllowUserID.RoleNum, out Roles DBRoleRoleNum)) { DiscordRole GuildRole = MemberObjects.Guild.GetRole(DBRoleRoleNum.Uuid); ulong Guild_ChannelID = Database.DatabaseMethods.GuildConfigMethods.LogChannelFind(MemberObjects.Guild.Id); if (Guild_ChannelID != 0) { DiscordChannel GuildLogChannel = MemberObjects.Guild.GetChannel(Guild_ChannelID); DiscordEmbed LogChannelEmbed = new DiscordEmbedBuilder() .WithTitle(Get_Language.Language_Data.JoinPass) .WithDescription( string.Format( Get_Language.Language_Data.UserDescription, MemberObjects.Member.Username + "#" + MemberObjects.Member.Discriminator, MemberObjects.Member.Id, GuildRole.Name ) ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ) .WithAuthor(Get_Language.Language_Data.AccessPermission); await GuildLogChannel.SendMessageAsync(LogChannelEmbed); } else { Log.Warning("Could not send from log channel"); } RoleLevel DBRoleLevel = Enum.Parse <RoleLevel>(DBRoleRoleNum.RoleLevel); bool GuildLeaveBan = Database.DatabaseMethods.GuildConfigMethods.LeaveBanFind(MemberObjects.Guild.Id); if (GuildLeaveBan) { if (DBRoleLevel == RoleLevel.Public) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Public1, Get_Language.Language_Data.DMEmbed_Public2 ) .AddField( Get_Language.Language_Data.DMEmbed_Public3, Get_Language.Language_Data.DMEmbed_Public4 ) .AddField( Get_Language.Language_Data.DMEmbed_LeaveBan1, string.Format(Get_Language.Language_Data.DMEmbed_LeaveBan2, GuildRole.Name) ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } else if (DBRoleLevel == RoleLevel.Moderator) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Moderator1, Get_Language.Language_Data.DMEmbed_Moderator2 ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator3, string.Format(Get_Language.Language_Data.DMEmbed_Moderator4, Bot.CurrentUser.Username) ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator5, Get_Language.Language_Data.DMEmbed_Moderator6 ) .AddField( Get_Language.Language_Data.DMEmbed_LeaveBan1, string.Format(Get_Language.Language_Data.DMEmbed_LeaveBan2, GuildRole.Name) ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } } else { if (DBRoleLevel == RoleLevel.Public) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Public1, Get_Language.Language_Data.DMEmbed_Public2 ) .AddField( Get_Language.Language_Data.DMEmbed_Public3, Get_Language.Language_Data.DMEmbed_Public4 ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } else if (DBRoleLevel == RoleLevel.Moderator) { await MemberObjects.Member.GrantRoleAsync(GuildRole); DiscordEmbed WelcomeEmbed = new DiscordEmbedBuilder() .WithTitle(string.Format(Get_Language.Language_Data.WelcomeEmbedTitle, MemberObjects.Guild.Name, GuildRole.Name)) .AddField( Get_Language.Language_Data.DMEmbed_Moderator1, Get_Language.Language_Data.DMEmbed_Moderator2 ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator3, string.Format(Get_Language.Language_Data.DMEmbed_Moderator4, Bot.CurrentUser.Username) ) .AddField( Get_Language.Language_Data.DMEmbed_Moderator5, Get_Language.Language_Data.DMEmbed_Moderator6 ) .WithColor(new DiscordColor(0x00B06B)) .WithTimestamp(DateTime.Now) .WithFooter( string.Format("{0} Bot", Bot.CurrentUser.Username) ); await MemberObjects.Member.SendMessageAsync(WelcomeEmbed); } } Log.Debug($"{MemberObjects.Member.Username + "#" + MemberObjects.Member.Discriminator} is allowed join"); } else { await MemberObjects.Member.SendMessageAsync(Get_Language.Language_Data.RoleNumNullMessage); } }
internal static bool AllowUserDelete(AllowUsers AllowUser) => AllowUsersCollection.Delete(AllowUser.Id);
internal static bool AllowUserUpdate(AllowUsers DBAllowUser) => AllowUsersCollection.Update(DBAllowUser);
internal static bool AllowUserFind(ulong GuildID, string Name, [MaybeNullWhen(true)] out AllowUsers DBAllowUser) { DBAllowUser = AllowUsersCollection.FindOne(AllowUser => AllowUser.GuildID == GuildID & AllowUser.Name == Name); return(DBAllowUser != null); }
internal static bool AllowUserFind(ulong GuildID, ulong Uuid, [MaybeNullWhen(true)] out AllowUsers DBAllowUser) { DBAllowUser = AllowUsersCollection.FindOne(AllowUser => AllowUser.GuildID == GuildID & AllowUser.Uuid == Uuid); return(DBAllowUser != null); }