mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
2512-есть Maintenance режим, но бот всё равно отвечает фульно
This commit is contained in:
@@ -17,7 +17,7 @@ import (
|
||||
)
|
||||
|
||||
// AuthMiddleware проверяет initData от Telegram
|
||||
func AuthMiddleware(accountRepo account.Repository, botToken string) gin.HandlerFunc {
|
||||
func AuthMiddleware(accountRepo account.Repository, botToken string, maintenanceMode bool, devIDs []int64) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
// 1. Извлекаем данные авторизации
|
||||
authHeader := c.GetHeader("Authorization")
|
||||
@@ -55,6 +55,21 @@ func AuthMiddleware(accountRepo account.Repository, botToken string) gin.Handler
|
||||
return
|
||||
}
|
||||
|
||||
// Проверка режима обслуживания: если включен, разрешаем доступ только разработчикам
|
||||
if maintenanceMode {
|
||||
isDev := false
|
||||
for _, devID := range devIDs {
|
||||
if tgID == devID {
|
||||
isDev = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !isDev {
|
||||
c.AbortWithStatusJSON(503, gin.H{"error": "maintenance_mode", "message": "Сервис на обслуживании"})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Ищем пользователя в БД
|
||||
user, err := accountRepo.GetUserByTelegramID(tgID)
|
||||
if err != nil {
|
||||
|
||||
@@ -928,6 +928,25 @@ func (bot *Bot) renderDeleteServerMenu(c tele.Context) error {
|
||||
return c.EditOrSend("⚙️ <b>Управление серверами</b>\n\nЗдесь вы можете удалить сервер или пригласить сотрудников.", menu, tele.ModeHTML)
|
||||
}
|
||||
|
||||
// NotifyDevs отправляет фото разработчикам для отладки
|
||||
func (bot *Bot) NotifyDevs(devIDs []int64, photoPath string, serverName string, serverID string) {
|
||||
// Формируем подпись для фото
|
||||
caption := fmt.Sprintf("🛠 **Debug Capture**\nServer: %s (`%s`)\nFile: %s", serverName, serverID, photoPath)
|
||||
|
||||
// В цикле отправляем фото каждому разработчику
|
||||
for _, id := range devIDs {
|
||||
photo := &tele.Photo{
|
||||
File: tele.FromDisk(photoPath),
|
||||
Caption: caption,
|
||||
}
|
||||
// Отправляем фото пользователю
|
||||
_, err := bot.b.Send(&tele.User{ID: id}, photo)
|
||||
if err != nil {
|
||||
logger.Log.Error("Failed to send debug photo", zap.Int64("userID", id), zap.Error(err))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func parseUUID(s string) uuid.UUID {
|
||||
id, _ := uuid.Parse(s)
|
||||
return id
|
||||
|
||||
Reference in New Issue
Block a user