mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-16 16:08:04 +00:00
90919bb37e
* Show Signer in commit lists and add basic trust Show the avatar of the signer in the commit list pages as we do not enforce that the signer is an author or committer. This makes it clearer who has signed the commit. Also display commits signed by non-members differently from members and in particular make it clear when a non-member signer is different from the committer to help reduce the risk of spoofing. Signed-off-by: Andrew Thornton <art27@cantab.net> * ensure orange text and background is available Signed-off-by: Andrew Thornton <art27@cantab.net> * Update gpg_key.go * Update models/gpg_key.go * Apply suggestions from code review * Require team collaborators to have access to UnitTypeCode * as per @6543 * fix position of sha as per @silverwind * as per @guillep2k
108 lines
5.2 KiB
Cheetah
108 lines
5.2 KiB
Cheetah
<table id="repo-files-table" class="ui single line table">
|
|
<thead>
|
|
<tr class="commit-list">
|
|
<th colspan="2">
|
|
{{if .LatestCommitUser}}
|
|
<img class="ui avatar image img-12" src="{{.LatestCommitUser.RelAvatarLink}}" />
|
|
{{if .LatestCommitUser.FullName}}
|
|
<a href="{{AppSubUrl}}/{{.LatestCommitUser.Name}}"><strong>{{.LatestCommitUser.FullName}}</strong></a>
|
|
{{else}}
|
|
<a href="{{AppSubUrl}}/{{.LatestCommitUser.Name}}"><strong>{{if .LatestCommit.Author}}{{.LatestCommit.Author.Name}}{{else}}{{.LatestCommitUser.Name}}{{end}}</strong></a>
|
|
{{end}}
|
|
{{else}}
|
|
{{if .LatestCommit.Author}}
|
|
<img class="ui avatar image img-12" src="{{AvatarLink .LatestCommit.Author.Email}}" />
|
|
<strong>{{.LatestCommit.Author.Name}}</strong>
|
|
{{end}}
|
|
{{end}}
|
|
<a rel="nofollow" class="ui sha label {{if .LatestCommit.Signature}} isSigned {{if .LatestCommitVerification.Verified }} isVerified{{if eq .LatestCommitVerification.TrustStatus "trusted"}}{{else if eq .LatestCommitVerification.TrustStatus "untrusted"}}Untrusted{{else}}Unmatched{{end}}{{else if .LatestCommitVerification.Warning}} isWarning{{end}}{{end}}" href="{{.RepoLink}}/commit/{{.LatestCommit.ID}}">
|
|
<span class="shortsha">{{ShortSha .LatestCommit.ID.String}}</span>
|
|
{{if .LatestCommit.Signature}}
|
|
{{if .LatestCommitVerification.Verified}}
|
|
<div class="ui detail icon button" title="{{if eq .LatestCommitVerification.TrustStatus "trusted"}}{{else if eq .LatestCommitVerification.TrustStatus "untrusted"}}{{.i18n.Tr "repo.commits.signed_by_untrusted_user"}}: {{else}}{{.i18n.Tr "repo.commits.signed_by_untrusted_user_unmatched"}}: {{end}}{{.LatestCommitVerification.Reason}}">
|
|
{{if ne .LatestCommitVerification.SigningUser.ID 0}}
|
|
<i class="lock icon"></i>
|
|
<img class="ui signature avatar image" src="{{.LatestCommitVerification.SigningUser.RelAvatarLink}}" />
|
|
{{else}}
|
|
<i title="{{.LatestCommitVerification.Reason}}" class="icons">
|
|
<i class="lock icon"></i>
|
|
<i class="tiny inverted cog icon centerlock"></i>
|
|
</i>
|
|
<img class="ui signature avatar image" src="{{AvatarLink .LatestCommitVerification.SigningEmail}}" />
|
|
{{end}}
|
|
</div>
|
|
{{else}}
|
|
<div class="ui detail icon button">
|
|
<i title="{{$.i18n.Tr .LatestCommitVerification.Reason}}" class="unlock icon"></i>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
</a>
|
|
{{template "repo/commit_status" .LatestCommitStatus}}
|
|
{{ $commitLink:= printf "%s/commit/%s" .RepoLink .LatestCommit.ID }}
|
|
<span class="grey has-emoji commit-summary" title="{{.LatestCommit.Summary}}"><span class="message-wrapper">{{RenderCommitMessageLinkSubject .LatestCommit.Message $.RepoLink $commitLink $.Repository.ComposeMetas}}</span>
|
|
{{if IsMultilineCommitMessage .LatestCommit.Message}}
|
|
<button class="basic compact mini ui icon button commit-button"><i class="ellipsis horizontal icon"></i></button>
|
|
<pre class="commit-body" style="display: none;">{{RenderCommitBody .LatestCommit.Message $.RepoLink $.Repository.ComposeMetas}}</pre>
|
|
{{end}}
|
|
</span>
|
|
</th>
|
|
<th class="text grey right age">{{if .LatestCommit.Author}}{{TimeSince .LatestCommit.Author.When $.Lang}}{{end}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{if .HasParentPath}}
|
|
<tr class="has-parent">
|
|
<td colspan="3">{{svg "octicon-mail-reply" 16}}<a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td>
|
|
</tr>
|
|
{{end}}
|
|
{{range $item := .Files}}
|
|
{{$entry := index $item 0}}
|
|
{{$commit := index $item 1}}
|
|
<tr>
|
|
{{if $entry.IsSubModule}}
|
|
<td>
|
|
<span class="truncate">
|
|
{{svg "octicon-file-submodule" 16}}
|
|
{{$refURL := $commit.RefURL AppUrl $.BranchLink}}
|
|
{{if $refURL}}
|
|
<a href="{{$refURL}}">{{$entry.Name}}</a> @ <a href="{{$refURL}}/commit/{{$commit.RefID}}">{{ShortSha $commit.RefID}}</a>
|
|
{{else}}
|
|
{{$entry.Name}} @ {{ShortSha $commit.RefID}}
|
|
{{end}}
|
|
</span>
|
|
</td>
|
|
{{else}}
|
|
<td class="name four wide">
|
|
<span class="truncate">
|
|
{{if $entry.IsDir}}
|
|
{{$subJumpablePathName := $entry.GetSubJumpablePathName}}
|
|
{{$subJumpablePath := SubJumpablePath $subJumpablePathName}}
|
|
{{svg "octicon-file-directory" 16}}
|
|
<a href="{{EscapePound $.TreeLink}}/{{EscapePound $subJumpablePathName}}" title="{{$subJumpablePathName}}">
|
|
{{if eq (len $subJumpablePath) 2}}
|
|
<span class="jumpable-path">{{index $subJumpablePath 0}}</span>{{index $subJumpablePath 1}}
|
|
{{else}}
|
|
{{index $subJumpablePath 0}}
|
|
{{end}}
|
|
</a>
|
|
{{else}}
|
|
{{svg (printf "octicon-%s" (EntryIcon $entry)) 16}}
|
|
<a href="{{EscapePound $.TreeLink}}/{{EscapePound $entry.Name}}" title="{{$entry.Name}}">{{$entry.Name}}</a>
|
|
{{end}}
|
|
</span>
|
|
</td>
|
|
{{end}}
|
|
<td class="message nine wide">
|
|
<span class="truncate has-emoji">
|
|
<a href="{{$.RepoLink}}/commit/{{$commit.ID}}" title="{{$commit.Summary}}">{{$commit.Summary}}</a>
|
|
</span>
|
|
</td>
|
|
<td class="text right age three wide">{{TimeSince $commit.Committer.When $.Lang}}</td>
|
|
</tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
{{if .ReadmeExist}}
|
|
{{template "repo/view_file" .}}
|
|
{{end}}
|