2017-04-26 15:10:43 +02:00
<h4 class="ui top attached header">
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.manage_gpg_keys" }}
2017-11-20 21:43:00 -08:00
<div class="ui right">
2023-09-25 10:56:50 +02:00
<button class="ui primary tiny show-panel toggle button" data-panel="#add-gpg-key-panel"> {{ ctx .Locale .Tr "settings.add_key" }} </button>
2017-11-20 21:43:00 -08:00
</div>
2017-04-26 15:10:43 +02:00
</h4>
<div class="ui attached segment">
2024-03-24 19:23:38 +01:00
<div class=" {{ if not .HasGPGError }} tw-hidden {{ end }} tw-mb-4" id="add-gpg-key-panel">
2021-10-28 12:55:48 +02:00
<form class="ui form {{ if .HasGPGError }} error {{ end }} " action=" {{ .Link }} " method="post">
{{ .CsrfTokenHtml }}
<input type="hidden" name="title" value="none">
<div class="field {{ if .Err_Content }} error {{ end }} ">
2024-02-16 15:59:48 +02:00
<label for="gpg-key-content"> {{ ctx .Locale .Tr "settings.key_content" }} </label>
2023-09-25 10:56:50 +02:00
<textarea id="gpg-key-content" name="content" placeholder=" {{ ctx .Locale .Tr "settings.key_content_gpg_placeholder" }} " required> {{ .content }} </textarea>
2021-10-28 12:55:48 +02:00
</div>
{{ if .Err_Signature }}
<div class="ui error message">
2023-09-25 10:56:50 +02:00
<p> {{ ctx .Locale .Tr "settings.gpg_token_required" }} </p>
2021-10-28 12:55:48 +02:00
</div>
<div class="field">
2023-09-25 10:56:50 +02:00
<label for="token"> {{ ctx .Locale .Tr "settings.gpg_token" }} </label>
2021-10-28 12:55:48 +02:00
<input readonly="" value=" {{ .TokenToSign }} ">
<div class="help">
2023-09-25 10:56:50 +02:00
<p> {{ ctx .Locale .Tr "settings.gpg_token_help" }} </p>
2024-03-14 00:24:34 +08:00
<p><code> {{ printf ` echo "%s" | gpg - a - - default-key % s - - detach-sig ` .TokenToSign .PaddedKeyID }} </code></p>
2021-10-28 12:55:48 +02:00
</div>
</div>
<div class="field">
2024-02-16 15:59:48 +02:00
<label for="gpg-key-signature"> {{ ctx .Locale .Tr "settings.gpg_token_signature" }} </label>
2023-09-25 10:56:50 +02:00
<textarea id="gpg-key-signature" name="signature" placeholder=" {{ ctx .Locale .Tr "settings.key_signature_gpg_placeholder" }} " required> {{ .signature }} </textarea>
2021-10-28 12:55:48 +02:00
</div>
{{ end }}
<input name="type" type="hidden" value="gpg">
2023-09-19 00:05:31 +02:00
<button class="ui primary button">
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.add_key" }}
2021-10-28 12:55:48 +02:00
</button>
<button class="ui hide-panel button" data-panel="#add-gpg-key-panel">
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "cancel" }}
2021-10-28 12:55:48 +02:00
</button>
</form>
</div>
2023-08-01 00:13:42 +02:00
<div class="flex-list">
<div class="flex-item">
2023-09-07 09:13:11 +08:00
<p>
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.gpg_desc" }} <br>
2024-02-23 02:05:47 +08:00
{{ ctx .Locale .Tr "settings.gpg_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/about-commit-signature-verification#gpg-commit-signature-verification" }}
2023-09-07 09:13:11 +08:00
</p>
2017-11-20 21:43:00 -08:00
</div>
{{ range .GPGKeys }}
2023-08-01 00:13:42 +02:00
<div class="flex-item">
<div class="flex-item-leading">
2023-03-23 11:24:16 +08:00
<span class="text {{ if or .ExpiredUnix .IsZero ( $ .PageStartTime .Before .ExpiredUnix .AsTime ) }} green {{ end }} "> {{ svg "octicon-key" 3 2 }} </span>
2020-05-14 19:59:18 +02:00
</div>
2023-08-01 00:13:42 +02:00
<div class="flex-item-main">
2021-07-13 14:28:07 +01:00
{{ if .Verified }}
2023-09-25 10:56:50 +02:00
<span class="flex-text-block" data-tooltip-content=" {{ ctx .Locale .Tr "settings.gpg_key_verified_long" }} "> {{ svg "octicon-verified" }} <strong> {{ ctx .Locale .Tr "settings.gpg_key_verified" }} </strong></span>
2021-07-13 14:28:07 +01:00
{{ end }}
2023-12-04 22:48:42 +01:00
{{ if .Emails }}
2023-09-25 10:56:50 +02:00
<span class="flex-text-block" data-tooltip-content=" {{ ctx .Locale .Tr "settings.gpg_key_matched_identities_long" }} "> {{ svg "octicon-mail" }} {{ ctx .Locale .Tr "settings.gpg_key_matched_identities" }} {{ range .Emails }} <strong> {{ .Email }} </strong> {{ end }} </span>
2021-07-13 14:28:07 +01:00
{{ end }}
2023-08-01 00:13:42 +02:00
<div class="flex-item-body">
2023-09-25 10:56:50 +02:00
<b> {{ ctx .Locale .Tr "settings.key_id" }} :</b> {{ .PaddedKeyID }}
<b> {{ ctx .Locale .Tr "settings.subkeys" }} :</b> {{ range .SubsKey }} {{ .PaddedKeyID }} {{ end }}
2017-11-20 21:43:00 -08:00
</div>
2023-08-01 00:13:42 +02:00
<div class="flex-item-body">
2024-02-23 01:02:33 +08:00
<i> {{ ctx .Locale .Tr "settings.added_on" ( DateTime "short" .AddedUnix ) }} </i>
2017-11-20 21:43:00 -08:00
-
2024-02-23 01:02:33 +08:00
<i> {{ if not .ExpiredUnix .IsZero }} {{ ctx .Locale .Tr "settings.valid_until_date" ( DateTime "short" .ExpiredUnix ) }} {{ else }} {{ ctx .Locale .Tr "settings.valid_forever" }} {{ end }} </i>
2017-11-20 21:43:00 -08:00
</div>
</div>
2023-08-01 00:13:42 +02:00
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-gpg" data-url=" {{ $ .Link }} /delete?type=gpg" data-id=" {{ .ID }} ">
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.delete_key" }}
2023-08-01 00:13:42 +02:00
</button>
{{ if and ( not .Verified ) ( ne $ .VerifyingID .KeyID ) }}
2024-03-20 13:56:42 +08:00
<a class="ui primary tiny button" href="?verify_gpg= {{ .KeyID }} "> {{ ctx .Locale .Tr "settings.gpg_key_verify" }} </a>
2023-08-01 00:13:42 +02:00
{{ end }}
</div>
2017-11-20 21:43:00 -08:00
</div>
2021-07-13 14:28:07 +01:00
{{ if and ( not .Verified ) ( eq $ .VerifyingID .KeyID ) }}
<div class="ui segment">
2023-09-25 10:56:50 +02:00
<h4> {{ ctx .Locale .Tr "settings.gpg_token_required" }} </h4>
2021-07-13 14:28:07 +01:00
<form class="ui form {{ if $ .HasGPGVerifyError }} error {{ end }} " action=" {{ $ .Link }} " method="post">
{{ $ .CsrfTokenHtml }}
<input type="hidden" name="title" value="none">
<input type="hidden" name="content" value=" {{ .KeyID }} ">
<input type="hidden" name="key_id" value=" {{ .KeyID }} ">
<div class="field">
2023-09-25 10:56:50 +02:00
<label for="token"> {{ ctx .Locale .Tr "settings.gpg_token" }} </label>
2021-07-13 14:28:07 +01:00
<input readonly="" value=" {{ $ .TokenToSign }} ">
<div class="help">
2023-09-25 10:56:50 +02:00
<p> {{ ctx .Locale .Tr "settings.gpg_token_help" }} </p>
2024-03-14 00:24:34 +08:00
<p><code> {{ printf ` echo "%s" | gpg - a - - default-key % s - - detach-sig ` $ .TokenToSign .PaddedKeyID }} </code></p>
2021-07-13 14:28:07 +01:00
</div>
<br>
</div>
<div class="field">
2023-09-25 10:56:50 +02:00
<label for="signature"> {{ ctx .Locale .Tr "settings.gpg_token_signature" }} </label>
<textarea id="gpg-key-signature" name="signature" placeholder=" {{ ctx .Locale .Tr "settings.key_signature_gpg_placeholder" }} " required> {{ $ .signature }} </textarea>
2021-07-13 14:28:07 +01:00
</div>
<input name="type" type="hidden" value="verify_gpg">
2023-09-19 00:05:31 +02:00
<button class="ui primary button">
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.gpg_key_verify" }}
2021-07-13 14:28:07 +01:00
</button>
<a class="ui red button" href=" {{ $ .Link }} ">
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.cancel" }}
2021-07-13 14:28:07 +01:00
</a>
</form>
</div>
{{ end }}
2017-11-20 21:43:00 -08:00
{{ end }}
</div>
2023-09-07 09:13:11 +08:00
<div class="ui g-modal-confirm delete modal" id="delete-gpg">
<div class="header">
{{ svg "octicon-trash" }}
2023-09-25 10:56:50 +02:00
{{ ctx .Locale .Tr "settings.gpg_key_deletion" }}
2023-09-07 09:13:11 +08:00
</div>
<div class="content">
2023-09-25 10:56:50 +02:00
<p> {{ ctx .Locale .Tr "settings.gpg_key_deletion_desc" }} </p>
2023-09-07 09:13:11 +08:00
</div>
{{ template "base/modal_actions_confirm" . }}
2017-04-26 15:10:43 +02:00
</div>
</div>