code.gitea.io/gitea@v1.22.3/templates/user/settings/keys_ssh.tmpl (about)

     1  <h4 class="ui top attached header">
     2  	{{ctx.Locale.Tr "settings.manage_ssh_keys"}}
     3  	<div class="ui right">
     4  		<button id="add-ssh-button" class="ui primary tiny show-panel toggle button" data-panel="#add-ssh-key-panel">
     5  			{{ctx.Locale.Tr "settings.add_key"}}
     6  		</button>
     7  	</div>
     8  </h4>
     9  <div class="ui attached segment">
    10  	<div class="{{if not .HasSSHError}}tw-hidden{{end}} tw-mb-4" id="add-ssh-key-panel">
    11  		<form class="ui form" action="{{.Link}}" method="post">
    12  			{{.CsrfTokenHtml}}
    13  			<div class="field {{if .Err_Title}}error{{end}}">
    14  				<label for="ssh-key-title">{{ctx.Locale.Tr "settings.key_name"}}</label>
    15  				<input id="ssh-key-title" name="title" value="{{.title}}" autofocus required maxlength="50">
    16  			</div>
    17  			<div class="field {{if .Err_Content}}error{{end}}">
    18  				<label for="ssh-key-content">{{ctx.Locale.Tr "settings.key_content"}}</label>
    19  				<textarea id="ssh-key-content" name="content" placeholder="{{ctx.Locale.Tr "settings.key_content_ssh_placeholder"}}" required>{{.content}}</textarea>
    20  			</div>
    21  			<input name="type" type="hidden" value="ssh">
    22  			<button class="ui primary button">
    23  				{{ctx.Locale.Tr "settings.add_key"}}
    24  			</button>
    25  			<button id="cancel-ssh-button" class="ui hide-panel button" data-panel="#add-ssh-key-panel">
    26  				{{ctx.Locale.Tr "cancel"}}
    27  			</button>
    28  		</form>
    29  	</div>
    30  	<div id="keys-ssh" class="flex-list">
    31  		<div class="flex-item">
    32  			<p>
    33  				{{ctx.Locale.Tr "settings.ssh_desc"}}<br>
    34  				{{ctx.Locale.Tr "settings.ssh_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh"}}
    35  			</p>
    36  		</div>
    37  		{{if .DisableSSH}}
    38  			<div class="flex-item">
    39  				{{ctx.Locale.Tr "settings.ssh_signonly"}}
    40  			</div>
    41  		{{end}}
    42  		{{range $index, $key := .Keys}}
    43  			<div class="flex-item">
    44  				<div class="flex-item-leading">
    45  					<span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{ctx.Locale.Tr "settings.key_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span>
    46  				</div>
    47  				<div class="flex-item-main">
    48  						{{if .Verified}}
    49  							<div class="flex-item-title flex-text-block" data-tooltip-content="{{ctx.Locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}}{{ctx.Locale.Tr "settings.ssh_key_verified"}}</div>
    50  						{{end}}
    51  						<div class="flex-item-title">{{.Name}}</div>
    52  						<div class="flex-item-body">
    53  								{{.Fingerprint}}
    54  						</div>
    55  						<div class="flex-item-body">
    56  								<i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix)}} —	{{svg "octicon-info"}} {{if .HasUsed}}{{ctx.Locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="text green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{ctx.Locale.Tr "settings.no_activity"}}{{end}}</i>
    57  						</div>
    58  				</div>
    59  				<div class="flex-item-trailing">
    60  					<button class="ui red tiny button delete-button{{if index $.ExternalKeys $index}} disabled{{end}}" data-modal-id="delete-ssh" data-url="{{$.Link}}/delete?type=ssh" data-id="{{.ID}}"{{if index $.ExternalKeys $index}} title="{{ctx.Locale.Tr "settings.ssh_externally_managed"}}"{{end}}>
    61  						{{ctx.Locale.Tr "settings.delete_key"}}
    62  					</button>
    63  					{{if and (not .Verified) (ne $.VerifyingFingerprint .Fingerprint)}}
    64  						<a class="ui primary tiny button" href="?verify_ssh={{.Fingerprint}}">{{ctx.Locale.Tr "settings.ssh_key_verify"}}</a>
    65  					{{end}}
    66  				</div>
    67  			</div>
    68  			{{if and (not .Verified) (eq $.VerifyingFingerprint .Fingerprint)}}
    69  				<div class="ui segment">
    70  					<h4>{{ctx.Locale.Tr "settings.ssh_token_required"}}</h4>
    71  					<form class="ui form{{if $.HasSSHVerifyError}} error{{end}}" action="{{$.Link}}" method="post">
    72  						{{$.CsrfTokenHtml}}
    73  						<input type="hidden" name="title" value="none">
    74  						<input type="hidden" name="content" value="{{.Content}}">
    75  						<input type="hidden" name="fingerprint" value="{{.Fingerprint}}">
    76  						<div class="field">
    77  							<label for="token">{{ctx.Locale.Tr "settings.ssh_token"}}</label>
    78  							<input readonly="" value="{{$.TokenToSign}}">
    79  							<div class="help">
    80  								<p>{{ctx.Locale.Tr "settings.ssh_token_help"}}</p>
    81  								<p><code>{{printf "echo -n '%s' | ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey" $.TokenToSign}}</code></p>
    82  							</div>
    83  							<br>
    84  						</div>
    85  						<div class="field">
    86  							<label for="signature">{{ctx.Locale.Tr "settings.ssh_token_signature"}}</label>
    87  							<textarea id="ssh-key-signature" name="signature" placeholder="{{ctx.Locale.Tr "settings.key_signature_ssh_placeholder"}}" required>{{$.signature}}</textarea>
    88  						</div>
    89  						<input name="type" type="hidden" value="verify_ssh">
    90  						<button class="ui primary button">
    91  							{{ctx.Locale.Tr "settings.ssh_key_verify"}}
    92  						</button>
    93  						<a class="ui red button" href="{{$.Link}}">
    94  							{{ctx.Locale.Tr "settings.cancel"}}
    95  						</a>
    96  					</form>
    97  				</div>
    98  			{{end}}
    99  		{{end}}
   100  	</div>
   101  	<div class="ui g-modal-confirm delete modal" id="delete-ssh">
   102  		<div class="header">
   103  			{{svg "octicon-trash"}}
   104  			{{ctx.Locale.Tr "settings.ssh_key_deletion"}}
   105  		</div>
   106  		<div class="content">
   107  			<p>{{ctx.Locale.Tr "settings.ssh_key_deletion_desc"}}</p>
   108  		</div>
   109  		{{template "base/modal_actions_confirm" .}}
   110  	</div>
   111  </div>