откат

This commit is contained in:
Professional 2025-03-19 22:01:40 +07:00
parent 34b201d3e0
commit ed8bd53aef

View File

@ -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}");