откат
This commit is contained in:
parent
34b201d3e0
commit
ed8bd53aef
179
Program.cs
179
Program.cs
@ -145,6 +145,126 @@ class Program
|
|||||||
await botClient.SendMessage(chatId, "Пожалуйста, выберите приоритет:", replyMarkup: priorityKeyboard);
|
await botClient.SendMessage(chatId, "Пожалуйста, выберите приоритет:", replyMarkup: priorityKeyboard);
|
||||||
Log.Information($"Пользователь {chatId} начал создание заявки");
|
Log.Information($"Пользователь {chatId} начал создание заявки");
|
||||||
}
|
}
|
||||||
|
else if (data == "admin_settings")
|
||||||
|
{
|
||||||
|
if (admins.Contains(chatId))
|
||||||
|
{
|
||||||
|
await ShowAdminSettings(botClient, chatId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await botClient.SendMessage(chatId, "⛔ У вас нет прав для доступа к настройкам администраторов!");
|
||||||
|
await Task.Delay(2000);
|
||||||
|
await SendMainMenu(botClient, chatId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (data == "view_admins")
|
||||||
|
{
|
||||||
|
if (admins.Contains(chatId))
|
||||||
|
{
|
||||||
|
await ShowAdminsList(botClient, chatId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await botClient.SendMessage(chatId, "⛔ У вас нет прав для просмотра администраторов!");
|
||||||
|
await Task.Delay(2000);
|
||||||
|
await SendMainMenu(botClient, chatId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (data != null && data.StartsWith("removeadmin_"))
|
||||||
|
{
|
||||||
|
long adminIdToRemove = long.Parse(data.Substring(11));
|
||||||
|
|
||||||
|
// Проверяем, что пользователь является администратором
|
||||||
|
if (admins.Contains(chatId))
|
||||||
|
{
|
||||||
|
// Проверяем, не пытается ли пользователь удалить себя
|
||||||
|
if (adminIdToRemove == chatId)
|
||||||
|
{
|
||||||
|
await botClient.SendMessage(
|
||||||
|
chatId: chatId,
|
||||||
|
text: "⚠️ Вы не можете удалить себя из администраторов!"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await RemoveAdminFromDatabase(adminIdToRemove);
|
||||||
|
|
||||||
|
string username = "администратор";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var user = await botClient.GetChat(adminIdToRemove);
|
||||||
|
username = user.Username ?? user.FirstName ?? "администратор";
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
|
await botClient.SendMessage(
|
||||||
|
chatId: chatId,
|
||||||
|
text: $"✅ Пользователь {username} (ID: {adminIdToRemove}) удален из администраторов."
|
||||||
|
);
|
||||||
|
|
||||||
|
await Task.Delay(2000);
|
||||||
|
await ShowAdminsList(botClient, chatId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await botClient.SendMessage(chatId, "⛔ У вас нет прав для удаления администраторов!");
|
||||||
|
await Task.Delay(2000);
|
||||||
|
await SendMainMenu(botClient, chatId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Также добавим обработку команды /removeadmin в секцию обработки текстовых сообщений:
|
||||||
|
|
||||||
|
// В блоке для обработки текстовых сообщений (после if (message.Text.StartsWith("/admin")))
|
||||||
|
else if (update.Type == UpdateType.Message && update.Message?.Text != null)
|
||||||
|
{
|
||||||
|
var message = update.Message;
|
||||||
|
Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}");
|
||||||
|
|
||||||
|
if (message.Text.StartsWith("/admin"))
|
||||||
|
{
|
||||||
|
string[] parts = message.Text.Split(' ');
|
||||||
|
if (parts.Length == 2 && parts[1] == adminPassword)
|
||||||
|
{
|
||||||
|
admins.Add(message.Chat.Id);
|
||||||
|
// Сохраняем администратора в базу данных
|
||||||
|
await SaveAdminToDatabase(message.Chat.Id);
|
||||||
|
|
||||||
|
var authMessage = await botClient.SendMessage(message.Chat.Id, "✅ Вы авторизованы как администратор!");
|
||||||
|
Log.Information($"Новый администратор: {message.Chat.Id}");
|
||||||
|
await Task.Delay(2000);
|
||||||
|
await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId);
|
||||||
|
await SendMainMenu(botClient, message.Chat.Id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var authMessage = await botClient.SendMessage(message.Chat.Id, "❌ Неверный пароль!");
|
||||||
|
await Task.Delay(2000);
|
||||||
|
await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId);
|
||||||
|
await SendMainMenu(botClient, message.Chat.Id);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// В блоке для обработки текстовых сообщений
|
||||||
|
else if (message.Text == "/admins")
|
||||||
|
{
|
||||||
|
if (admins.Contains(message.Chat.Id))
|
||||||
|
{
|
||||||
|
await ShowAdminsList(botClient, message.Chat.Id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await botClient.SendMessage(
|
||||||
|
chatId: message.Chat.Id,
|
||||||
|
text: "⛔ У вас нет прав для просмотра списка администраторов!"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
else if (data == "admin_panel")
|
else if (data == "admin_panel")
|
||||||
{
|
{
|
||||||
if (admins.Contains(chatId))
|
if (admins.Contains(chatId))
|
||||||
@ -235,48 +355,6 @@ class Program
|
|||||||
userReportSteps[chatId] = 2;
|
userReportSteps[chatId] = 2;
|
||||||
await botClient.SendMessage(chatId, "Пожалуйста, укажите кабинет.");
|
await botClient.SendMessage(chatId, "Пожалуйста, укажите кабинет.");
|
||||||
}
|
}
|
||||||
else if (data != null && data.StartsWith("removeadmin_"))
|
|
||||||
{
|
|
||||||
long adminIdToRemove = long.Parse(data.Substring(11));
|
|
||||||
|
|
||||||
// Проверяем, что пользователь является администратором
|
|
||||||
if (admins.Contains(chatId))
|
|
||||||
{
|
|
||||||
// Проверяем, не пытается ли пользователь удалить себя
|
|
||||||
if (adminIdToRemove == chatId)
|
|
||||||
{
|
|
||||||
await botClient.SendMessage(
|
|
||||||
chatId: chatId,
|
|
||||||
text: "⚠️ Вы не можете удалить себя из администраторов!"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await RemoveAdminFromDatabase(adminIdToRemove);
|
|
||||||
|
|
||||||
string username = "администратор";
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var user = await botClient.GetChat(adminIdToRemove);
|
|
||||||
username = user.Username ?? user.FirstName ?? "администратор";
|
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
|
|
||||||
await botClient.SendMessage(
|
|
||||||
chatId: chatId,
|
|
||||||
text: $"✅ Пользователь {username} (ID: {adminIdToRemove}) удален из администраторов."
|
|
||||||
);
|
|
||||||
|
|
||||||
await Task.Delay(2000);
|
|
||||||
await ShowAdminsList(botClient, chatId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await botClient.SendMessage(chatId, "⛔ У вас нет прав для удаления администраторов!");
|
|
||||||
await Task.Delay(2000);
|
|
||||||
await SendMainMenu(botClient, chatId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,6 +389,22 @@ class Program
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// В блоке для обработки текстовых сообщений
|
||||||
|
else if (message.Text == "/admins")
|
||||||
|
{
|
||||||
|
if (admins.Contains(message.Chat.Id))
|
||||||
|
{
|
||||||
|
await ShowAdminsList(botClient, message.Chat.Id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await botClient.SendMessage(
|
||||||
|
chatId: message.Chat.Id,
|
||||||
|
text: "⛔ У вас нет прав для просмотра списка администраторов!"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (message.Text == "/start")
|
if (message.Text == "/start")
|
||||||
{
|
{
|
||||||
var keyboard = new InlineKeyboardMarkup(new[]
|
var keyboard = new InlineKeyboardMarkup(new[]
|
||||||
@ -374,7 +468,6 @@ class Program
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Log.Error($"Ошибка при обработке обновлений: {ex.Message}");
|
Log.Error($"Ошибка при обработке обновлений: {ex.Message}");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user