// package web_gui -- веб-сервер для графики package web_gui import ( "net/http" "github.com/gofiber/fiber/v2" . "wartank/app/lev0/types" "wartank/app/lev3/serv_web/web_gui/page_bot_add" "wartank/app/lev3/serv_web/web_gui/page_bot_list" "wartank/app/lev3/serv_web/web_gui/page_bot_show" "wartank/app/lev3/serv_web/web_gui/page_login" "wartank/kernel" . "wartank/kernel/kernel_types" ) // ВебГип -- веб-сервер для графики type ВебГуи struct { прилож ИПриложение лог ИЯдроЛог } // НовВебГуи -- возвращает новый веб-сервер для графики func НовВебГуи(конт ИЯдроКонтекст) *ВебГуи { лог := kernel.НовЛог("ВебГуи") лог.Паника(конт == nil, "НовВебГуи(): ИЯдроКонтекст==nil") сам := &ВебГуи{ прилож: конт.Получ("приложение").(ИПриложение), лог: лог, } файбер := конт.Получ("fiberApp").(*fiber.App) файбер.Get("/", сам.кукиПроверить, сам.индекс) _ = page_login.НовСтраницаЛогин(конт) _ = page_bot_list.НовСтраницаСписокБотов(конт) _ = page_bot_add.НовСтраницаБотовДобавить(конт) _ = page_bot_show.НовСтраницаБотПоказать(конт) return сам } // Возвращает индексную страницу func (сам *ВебГуи) индекс(кнт *fiber.Ctx) error { сам.лог.Отладка("ВебГуи.индекс()\n") имя := кнт.Cookies("login") if имя != "svi" { return кнт.Redirect("/gui/login", http.StatusSeeOther) } return кнт.Redirect("/gui/bot", http.StatusSeeOther) } // Проверка на куки func (сам *ВебГуи) кукиПроверить(кнт *fiber.Ctx) error { сам.лог.Отладка("ВебГуи.кукиПроверить()\n") имя := кнт.Cookies("login") if имя != "svi" { return кнт.Redirect("/gui/login", http.StatusSeeOther) } return кнт.Next() }