From 38949622193416182db7ba8cc12d83166343e392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sat, 30 May 2026 18:22:38 +0300 Subject: [PATCH] chore: delete views/ and public/ (UI layer, not part of API server) --- public/favicon.png | Bin 1017 -> 0 bytes views/admin.ejs | 207 ---------------------- views/audit.ejs | 174 ------------------- views/dev-login.ejs | 140 --------------- views/index.ejs | 409 -------------------------------------------- views/login.ejs | 85 --------- 6 files changed, 1015 deletions(-) delete mode 100644 public/favicon.png delete mode 100644 views/admin.ejs delete mode 100644 views/audit.ejs delete mode 100644 views/dev-login.ejs delete mode 100644 views/index.ejs delete mode 100644 views/login.ejs diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index f171012130744e0901c3ea67d8687f902f8ff017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 zcmVpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11BOXN zK~#90?VHbwn?)GMKi|nFRH0%kR@UZS{DD7CMQeAru81sxQc){PdlPFfp1k@8co6aA zNfwG15j}V)qIeZVDBVO5^dv&*ZWcjp6lH=fGPl3IF3Xfy<0M5R&mFlSh>+1>W zWQpX$F;b2p=D_YF)jPIUdGG(2OapY!Bac!qy^QQh#KV-2+zB`kVAo#IzM+i56KQb| z$@;UTJcl%o>|V;;hOwoWYj32z&Gp(0P%>ACVgYTf4@O{_pqVG`r+oG28-q1(-5GO$ zjo!S_*er%t9lgQ!nei|{g*3G4co@(FxdE{S#AZAUkb)o9<6%G#;TlixW=P{s6z4M(}^~eP{1_$vd{LMsqR4 z0D0!N?)L6<&}^0-@{V=-qovpuAU6G4(jo6o2aOu9c*myhVso+GfRx|;TC#mQc=Q?X zjt7Z!!aH`l{%v!y-2lh;{v9_ykxu&O-vCfD|1Ox{jy17i)#^s`rHnhkeeB;mcTm3Y zgS5EEyG|d`%8W<@Mi`%)cpVD34Vo3;UJKeueQN zy0HteBhG!$)>hVe0VT6%ftLcbH9(iZ{zTU37;P>E{_djvBBaxprn?$A0J>tU%eQR5 zn!Q!_->Yv>EWJqg3#9_s0pI}Uqc3D*hv;_b06067+1gGgMwHBd1nH{*UF|;1{$cIA z+s&-L{iB_~;o9g>Wi9xk~7u?56t;tlu@QVsOr)$)WX00000NkvXXu0mjfOU&;) diff --git a/views/admin.ejs b/views/admin.ejs deleted file mode 100644 index 3d1bd0a..0000000 --- a/views/admin.ejs +++ /dev/null @@ -1,207 +0,0 @@ - - - - - Управление лимитами — IP WhiteList - - - - - -
- - - - - - - - - - | - Управление лимитами - - ← Список адресов - Журнал аудита - Выйти (<%= user.email %>) - -
- -
- - <% if (message) { %>
<%= message %>
<% } %> - <% if (error) { %>
<%= error %>
<% } %> - -
-
- Компании и лимиты - - Глобальный дефолт: <%= defaultLimit %> записей. - Пустое поле = сброс на дефолт. - -
- - <% if (companies.length === 0) { %> -
Нет компаний в системе
- <% } else { %> -
- - - - - - - - - - - - <% companies.forEach(c => { %> - <% - // Вычисляем эффективный лимит (кастомный или дефолтный) - const effectiveLimit = c.custom_limit != null ? c.custom_limit : defaultLimit; - const pct = effectiveLimit > 0 ? Math.min(c.active_count / effectiveLimit, 1) : 1; - const barClass = pct >= 1 ? 'full' : pct >= 0.8 ? 'warn' : ''; - %> - - - - - - - - - - - <% }) %> - -
КомпанияClientIDИспользованоЛимитДействие
<%= c.name %><%= c.client_id %> -
-
-
-
- - <%= c.active_count %> / <%= effectiveLimit %> - <% if (c.custom_limit != null) { %> - - <% } %> - -
-
- <% if (c.custom_limit != null) { %> - <%= c.custom_limit %> - (индивидуальный) - <% } else { %> - дефолт (<%= defaultLimit %>) - <% } %> - -
- <%# CSRF-токен: одно значение на всю страницу (генерируется сервером) %> - - - - <% if (c.custom_limit != null) { %> - - - <% } %> -
-
-
- <% } %> -
- -
- - -
v<%= appVersion %>
- - diff --git a/views/audit.ejs b/views/audit.ejs deleted file mode 100644 index 34d6dae..0000000 --- a/views/audit.ejs +++ /dev/null @@ -1,174 +0,0 @@ - - - - - Журнал аудита — IP WhiteList - - - - - - -
- - - - - - - - - - | - Журнал аудита - - ← Список адресов - Управление лимитами - Выйти (<%= user.email %>) - -
- -
- - <% if (error) { %>
<%= error %>
<% } %> - - -
-
- Фильтр -
-
-
- - - <% if (selectedCompanyId) { %> - Сбросить - <% } %> - - Показано: <%= rows.length %> записей (макс 500) - -
-
-
- - -
-
Записи журнала
- <% if (rows.length === 0) { %> -
Нет записей в журнале аудита
- <% } else { %> -
- - - - - - - - - - - - <% rows.forEach(r => { %> - - - - - - - - - - - - <% }) %> - -
КогдаКтоКомпанияДействиеЗначение
- <%= new Date(r.created_at).toLocaleString('ru', { - day: '2-digit', month: '2-digit', year: 'numeric', - hour: '2-digit', minute: '2-digit' - }) %> - <%= r.user_email %> - <%= r.company_name %>
- <%= r.client_id %> -
- <%= r.action %> - - <% if (r.old_value && r.new_value) { %> - <%= r.old_value %> - - <%= r.new_value %> - <% } else if (r.new_value) { %> - <%= r.new_value %> - <% } else if (r.old_value) { %> - <%= r.old_value %> - <% } else { %> - - <% } %> -
-
- <% } %> -
- -
-
v<%= appVersion %>
- - diff --git a/views/dev-login.ejs b/views/dev-login.ejs deleted file mode 100644 index be93c56..0000000 --- a/views/dev-login.ejs +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Dev-вход — IP WhiteList - - - - - - - - - -
v<%= appVersion %>
- - diff --git a/views/index.ejs b/views/index.ejs deleted file mode 100644 index 382bce9..0000000 --- a/views/index.ejs +++ /dev/null @@ -1,409 +0,0 @@ - - - - - Белые списки IP — Nubes - - - - - -
- - - - - - - - - - | - Белые списки IP - - - <% if (isAdmin) { %> - Аудит - Лимиты - <% } %> - Выйти (<%= user.email %>) - -
- -
- - <% if (message) { %>
<%= message %>
<% } %> - <% if (error) { %>
<%= error %>
<% } %> - - <% - // Для admin: selectedCompany — выбранная компания (объект из getAllCompanies). - // Для обычного пользователя: selectedCompany — их компания (из getOrCreateCompany). - // company_id — числовой PK для передачи в скрытые поля форм. - const companyPk = selectedCompany ? selectedCompany.id : null; - %> - - - <% if (isAdmin && companies) { %> -
-
-
- Компания: - - - → Аудит этой компании - → Лимиты - - Режим: Администратор - -
-
-
- <% } %> - - -
-
-
-
-
<%= used %> / <%= limit %>
-
записей
-
-
- -
<%= selectedCompany ? selectedCompany.client_id : user.clientId %>
-
компания
-
-
-
<%= user.email %>
-
пользователь
-
-
-
-
- - -
-
Добавить адрес
-
-
- <% - // Передаём числовой PK компании в скрытом поле. - // Для admin: server.js возьмёт его из req.body.company_id. - // Для обычного пользователя: server.js игнорирует это поле - // и использует clientId из токена — защита от подмены. - %> - - <%# CSRF-токен: защита от межсайтовой подделки запроса (double-submit cookie) %> - -
-
- - = limit ? 'disabled' : '' %>> -
-
- - -
- -
-
-
-
- - -
-
Доверенные адреса
- <% if (entries.length === 0) { %> -
Нет добавленных адресов
- <% } else { %> -
- - - - - - - - - - - - - <% entries.forEach(e => { %> - - - - - - - - - - <% }) %> - -
Адрес / ПодсетьКомментарийДобавилДатаИзменёнДействия
<%= e.value_cidr %><%= e.comment || '—' %><%= e.created_by %><%= new Date(e.created_at).toLocaleDateString('ru', {day:'numeric',month:'short',year:'numeric',hour:'2-digit',minute:'2-digit'}) %> - <%= e.updated_at - ? new Date(e.updated_at).toLocaleDateString('ru', {day:'numeric',month:'short',hour:'2-digit',minute:'2-digit'}) - : '—' %> - - <% - // data-* атрибуты для JS-заполнения modal без inline-onclick с параметрами. - // Так как комментарий может содержать кавычки — EJS экранирует их в HTML. - // Но в data-атрибуте JSON::stringify безопаснее. - %> - - - -
- - <%# CSRF-токен: одно значение на всю страницу, сгенерировано сервером %> - - -
-
-
- <% } %> -
- -
- - - - - - - -
v<%= appVersion %>
- - diff --git a/views/login.ejs b/views/login.ejs deleted file mode 100644 index d64a334..0000000 --- a/views/login.ejs +++ /dev/null @@ -1,85 +0,0 @@ - - - - - Вход — IP WhiteList - - - - - - - - - -