Sign part 2

This commit is contained in:
alexey
2025-03-21 23:15:46 +03:00
parent c6a89e7be1
commit e6d3a90231
17 changed files with 485 additions and 12 deletions

View File

@@ -1,3 +1,60 @@
<%= erb :header %>
<div class="container">
<h2 class="text-bg-danger text-center rounded-3 mb-3">Отсуствуют ключи для подписи</h2>
<p class="text-danger">Важный момент - сохраните файл ~/.rpmmacros, т.к. он будет перезаписан командой <span
class="text-success">install-key</span></p>
<p>Для создания ключа, необходимо запустить скрипт <span class="text-success">install-key</span> из каталога
gen-scripts</p>
<div class="card">
<div class="card-header">
Параметры запуска скрипта
</div>
<div class="card-body">
<blockquote class="blockquote mb-0">
<p class="font-monospace">bash install-key UserName Email TimeToExpireInSecondsFromCurrentTime
PhassPhrase</p>
<footer class="blockquote-footer">
<p>Где:</p>
<ul>
<li>UserName - имя вадельца ключа</li>
<li>Email - почта владельца ключа</li>
<li>TimeToExpireInSecondsFromCurrentTime - время в секундах до истечения срока давности
ключа</li>
<li>PhassPhrase - пароль для ключа</li>
</ul>
</footer>
</blockquote>
</div>
</div>
<p>После генерации ключа пароль будет сохранен:</p>
<div class="card text-bg-light mb-3">
<div class="card-header">Сохранение пароля в файл (да, небезопасно, но пока так) в каталог keys</div>
<div class="card-body">
<h5 class="card-title">каталог keys/save</h5>
<p class="card-text">Храните файл как зеницу ока!</p>
</div>
</div>
<p>Примеры генерации ключа:</p>
<div class="card text-bg-light mb-3">
<div class="card-header">Создание ключа на один год</div>
<div class="card-body">
<h5 class="card-title">В сеундах: 366 * 24 * 60 * 60 = 31622400</h5>
<p class="card-text">./install-key RpmKeeper rpmkeeper@test.example.ru 31622400 12345678</p>
</div>
</div>
<div class="card text-bg-light mb-3">
<div class="card-header">Создание ключа на 10 лет</div>
<div class="card-body">
<h5 class="card-title">В сеундах: 366 * 10 * 24 * 60 * 60 = 316224000</h5>
<p class="card-text">./install-key RpmKeeper rpmkeeper@test.example.ru 316224000 12345678</p>
</div>
</div>
<div class="card text-bg-light mb-3">
<div class="card-header">Создание ключа на 5 лет</div>
<div class="card-body">
<h5 class="card-title">В сеундах: 366 * 5 * 24 * 60 * 60 = 1581120000</h5>
<p class="card-text">./install-key RpmKeeper rpmkeeper@test.example.ru 158112000 12345678</p>
</div>
</div>
</div>
<%= erb :footer %>

View File

@@ -46,9 +46,10 @@
class="bi bi-list"></i><span class="ms-2">Список сборок проекта</span></a>
<a href="/prjsign/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-pencil-square"></i><span class="ms-2">Подписать</span></a>
<a href="/prjpub/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-nut"></i><span class="ms-2">Опубликовать во
внешний репозиторий</span></a>
<a href="/prjsignview/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-file-earmark-diff"></i><span class="ms-2">Просмотр подписанного репозитория</span></a>
<a href="/prjremoteaddr/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-pin-map-fill"></i><span class="ms-2">Установить адрес подписаннго репозитория</span></a>
<a href="/prjdelete/<%= ERB::Util.url_encode(@proj_id) %>" class="list-group-item list-group-item-action list-group-item-dark icon-link"><i
class="bi bi-trash"></i><span class="ms-2">Удалить проект</span></a>
</div>

18
views/projremote.erb Normal file
View File

@@ -0,0 +1,18 @@
<%= erb :header %>
<div class="container">
<h2 class="text-center">Подтвердите подпись пакетов проекта <%= @proj_name %></h2>
<form action="/prjremoteaddr/<%= ERB::Util.url_encode(@proj_id) %>" method="post">
<div class="form-check form-switch text-center pb-3">
<input class="form-check-input" type="text" role="switch" id="address" name="address" value="<%= @address %>">
<label class="form-check-label" for="address">
Укажите адресс удаленного репозитория:
</label>
</div>
<div class="mb-3 text-center">
<button type="submit" class="btn btn-primary" name="cancel" value="cancel">Отменить</button>
<button type="submit" class="btn btn-danger" name="reset" value="reset">Сбросить адрес</button>
<button type="submit" class="btn btn-info" name="addr" value="addr">Установить адрес</button>
</div>
</form>
</div>
<%= erb :footer %>

View File

@@ -7,6 +7,13 @@
<% end %>
<a href="/gitpackages/<%= ERB::Util.url_encode(@repo_id) %>"><i class="bi bi-git"></i></a>
</div>
<div>
<% if @rpm_data[:sign] == 1 %>
Пакет подписан
<% else %>
Пакет не подписан
<% end %>
</div>
<div class="accordion" id="rpmInfo">
<div class="accordion-item">
<h2 class="accordion-header">
@@ -56,7 +63,7 @@
<div class="vstack gap-1">
<% @pkg_info.changelog.each do |entry| %>
<div class="p-1 text-warning-emphasis border">
<p><%= entry.time %> <%= entry.name %></p>
<p><%= entry.name %></p>
<p><%= entry.text %></p>
</div>
<% end %>

22
views/signconfirm.erb Normal file
View File

@@ -0,0 +1,22 @@
<%= erb :header %>
<div class="container">
<h2 class="text-center">Подтвердите подпись пакетов проекта <%= @proj_name %></h2>
<form action="/prjsign/<%= ERB::Util.url_encode(@proj_id) %>" method="post">
<div class="form-check form-switch text-center pb-3">
<div class="pb-5">
Подписать пакеты проекта?
</div>
<% if @pass_exists.nil? || @pass_exists.strip == "" %>
<label class="form-check-label" for="password">
Введите пароль для ключа для подписывания:
</label>
<input type="password" class="form-control" id="password" name="password">
<% end %>
</div>
<div class="mb-3 text-center">
<button type="submit" class="btn btn-primary" name="cancel" value="cancel">Отменить</button>
<button type="submit" class="btn btn-danger" name="sign" value="sign">Подписать</button>
</div>
</form>
</div>
<%= erb :footer %>