aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-02-27 19:20:55 +0000
committerGitHub <noreply@github.com>2020-02-27 16:20:55 -0300
commit90919bb37e2bcc62440e393439825fe0e1e1f343 (patch)
tree1e89ce6ec5a3c90399a1621e6d11dae2417c11ef /templates
parent858aebc2d8561803c4dc3f8a427ca82662ee96c7 (diff)
downloadgitea-90919bb37e2bcc62440e393439825fe0e1e1f343.tar.gz
gitea-90919bb37e2bcc62440e393439825fe0e1e1f343.zip
Show Signer in commit lists and add basic trust (#10425)
* 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
Diffstat (limited to 'templates')
-rw-r--r--templates/repo/commit_page.tmpl71
-rw-r--r--templates/repo/commits_list.tmpl32
-rw-r--r--templates/repo/view_list.tmpl27
3 files changed, 83 insertions, 47 deletions
diff --git a/templates/repo/commit_page.tmpl b/templates/repo/commit_page.tmpl
index 0c3430c6ac..1cfd0944d5 100644
--- a/templates/repo/commit_page.tmpl
+++ b/templates/repo/commit_page.tmpl
@@ -2,7 +2,22 @@
<div class="repository diff">
{{template "repo/header" .}}
<div class="ui container {{if .IsSplitStyle}}fluid padded{{end}}">
- <div class="ui top attached info clearing segment {{if .Commit.Signature}} isSigned {{if .Verification.Verified }} isVerified {{end}}{{end}}">
+ {{$class := ""}}
+ {{if .Commit.Signature}}
+ {{$class = (printf "%s%s" $class " isSigned")}}
+ {{if .Verification.Verified}}
+ {{if eq .Verification.TrustStatus "trusted"}}
+ {{$class = (printf "%s%s" $class " isVerified")}}
+ {{else if eq .Verification.TrustStatus "untrusted"}}
+ {{$class = (printf "%s%s" $class " isVerifiedUntrusted")}}
+ {{else}}
+ {{$class = (printf "%s%s" $class " isVerifiedUnmatched")}}
+ {{end}}
+ {{else if .Verification.Warning}}
+ {{$class = (printf "%s%s" $class " isWarning")}}
+ {{end}}
+ {{end}}
+ <div class="ui top attached info clearing segment {{$class}}">
<a class="ui floated right blue tiny button" href="{{EscapePound .SourcePath}}">
{{.i18n.Tr "repo.diff.browse_source"}}
</a>
@@ -12,15 +27,15 @@
{{end}}
<span class="text grey">{{svg "octicon-git-branch" 16}}{{.BranchName}}</span>
</div>
- <div class="ui attached info segment {{if .Commit.Signature}} isSigned {{if .Verification.Verified }} isVerified {{end}}{{end}}">
+ <div class="ui attached info segment {{$class}}">
<div class="ui stackable grid">
<div class="nine wide column">
{{if .Author}}
<img class="ui avatar image" src="{{.Author.RelAvatarLink}}" />
{{if .Author.FullName}}
- <a href="{{.Author.HomeLink}}"><strong>{{.Author.FullName}}</strong></a> {{if .IsSigned}}<{{.Commit.Author.Email}}>{{end}}
+ <a href="{{.Author.HomeLink}}"><strong>{{.Author.FullName}}</strong> {{if .IsSigned}}&lt;{{.Commit.Author.Email}}&gt;{{end}}</a>
{{else}}
- <a href="{{.Author.HomeLink}}"><strong>{{.Commit.Author.Name}}</strong></a> {{if .IsSigned}}<{{.Commit.Author.Email}}>{{end}}
+ <a href="{{.Author.HomeLink}}"><strong>{{.Commit.Author.Name}}</strong> {{if .IsSigned}}&lt;{{.Commit.Author.Email}}&gt;{{end}}</a>
{{end}}
{{else}}
<img class="ui avatar image" src="{{AvatarLink .Commit.Author.Email}}" />
@@ -30,7 +45,7 @@
<span> </span>
{{if ne .Verification.CommittingUser.ID 0}}
<img class="ui avatar image" src="{{.Verification.CommittingUser.RelAvatarLink}}" />
- <a href="{{.Verification.CommittingUser.HomeLink}}"><strong>{{.Commit.Committer.Name}}</strong></a> <{{.Commit.Committer.Email}}>
+ <a href="{{.Verification.CommittingUser.HomeLink}}"><strong>{{.Commit.Committer.Name}}</strong> &lt;{{.Commit.Committer.Email}}&gt;</a>
{{else}}
<img class="ui avatar image" src="{{AvatarLink .Commit.Committer.Email}}" />
<strong>{{.Commit.Committer.Name}}</strong>
@@ -58,40 +73,42 @@
</div><!-- end grid -->
</div>
{{if .Commit.Signature}}
- {{if .Verification.Verified }}
- <div class="ui bottom attached positive message">
+ <div class="ui bottom attached message {{$class}}">
+ {{if .Verification.Verified }}
{{if ne .Verification.SigningUser.ID 0}}
- <i class="green lock icon"></i>
- <span>{{.i18n.Tr "repo.commits.signed_by"}}:</span>
+ <i class="lock icon"></i>
+ {{if eq .Verification.TrustStatus "trusted"}}
+ <span class="ui text">{{.i18n.Tr "repo.commits.signed_by"}}:</span>
+ {{else if eq .Verification.TrustStatus "untrusted"}}
+ <span class="ui text">{{.i18n.Tr "repo.commits.signed_by_untrusted_user"}}:</span>
+ {{else}}
+ <span class="ui text">{{.i18n.Tr "repo.commits.signed_by_untrusted_user_unmatched"}}:</span>
+ {{end}}
<img class="ui avatar image" src="{{.Verification.SigningUser.RelAvatarLink}}" />
- <a href="{{.Verification.SigningUser.HomeLink}}"><strong>{{.Verification.SigningUser.Name}}</strong></a> <{{.Verification.SigningEmail}}>
- <span class="pull-right"><span>{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> {{.Verification.SigningKey.KeyID}}</span>
+ <a href="{{.Verification.SigningUser.HomeLink}}"><strong>{{.Verification.SigningUser.Name}}</strong> <{{.Verification.SigningEmail}}></a>
+ <span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> {{.Verification.SigningKey.KeyID}}</span>
{{else}}
<i class="icons" title="{{.i18n.Tr "gpg.default_key"}}">
- <i class="green lock icon"></i>
+ <i class="lock icon"></i>
<i class="tiny inverted cog icon centerlock"></i>
</i>
- <span>{{.i18n.Tr "repo.commits.signed_by"}}:</span>
+ <span class="ui text">{{.i18n.Tr "repo.commits.signed_by"}}:</span>
<img class="ui avatar image" src="{{AvatarLink .Verification.SigningEmail}}" />
<strong>{{.Verification.SigningUser.Name}}</strong> <{{.Verification.SigningEmail}}>
- <span class="pull-right"><span>{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="cogs icon" title="{{.i18n.Tr "gpg.default_key"}}"></i>{{.Verification.SigningKey.KeyID}}</span>
+ <span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="cogs icon" title="{{.i18n.Tr "gpg.default_key"}}"></i>{{.Verification.SigningKey.KeyID}}</span>
{{end}}
- </div>
- {{else if .Verification.Warning}}
- <div class="ui bottom attached message">
- <i class="red unlock icon"></i>
- <span class="red text">{{.i18n.Tr .Verification.Reason}}</span>
- <span class="pull-right"><span class="red text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="red warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
- </div>
- {{else}}
- <div class="ui bottom attached message">
- <i class="grey unlock icon"></i>
+ {{else if .Verification.Warning}}
+ <i class="unlock icon"></i>
+ <span class="ui text">{{.i18n.Tr .Verification.Reason}}</span>
+ <span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
+ {{else}}
+ <i class="unlock icon"></i>
{{.i18n.Tr .Verification.Reason}}
{{if and .Verification.SigningKey (ne .Verification.SigningKey.KeyID "")}}
- <span class="pull-right"><span class="red text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="red warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
+ <span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
{{end}}
- </div>
- {{end}}
+ {{end}}
+ </div>
{{end}}
{{if .Note}}
<div class="ui top attached info segment message git-notes">
diff --git a/templates/repo/commits_list.tmpl b/templates/repo/commits_list.tmpl
index 01096f2085..5dc12c642b 100644
--- a/templates/repo/commits_list.tmpl
+++ b/templates/repo/commits_list.tmpl
@@ -28,7 +28,13 @@
{{if .Signature}}
{{$class = (printf "%s%s" $class " isSigned")}}
{{if .Verification.Verified}}
- {{$class = (printf "%s%s" $class " isVerified")}}
+ {{if eq .Verification.TrustStatus "trusted"}}
+ {{$class = (printf "%s%s" $class " isVerified")}}
+ {{else if eq .Verification.TrustStatus "untrusted"}}
+ {{$class = (printf "%s%s" $class " isVerifiedUntrusted")}}
+ {{else}}
+ {{$class = (printf "%s%s" $class " isVerifiedUnmatched")}}
+ {{end}}
{{else if .Verification.Warning}}
{{$class = (printf "%s%s" $class " isWarning")}}
{{end}}
@@ -38,20 +44,22 @@
{{else}}
<span class="{{$class}}">
{{end}}
- {{ShortSha .ID.String}}
+ <span class="shortsha">{{ShortSha .ID.String}}</span>
{{if .Signature}}
<div class="ui detail icon button">
{{if .Verification.Verified}}
- {{if ne .Verification.SigningUser.ID 0}}
- <i title="{{.Verification.Reason}}" class="lock green icon"></i>
- {{else}}
- <i title="{{.Verification.Reason}}" class="icons">
- <i class="green lock icon"></i>
- <i class="tiny inverted cog icon centerlock"></i>
- </i>
- {{end}}
- {{else if .Verification.Warning}}
- <i title="{{$.i18n.Tr .Verification.Reason}}" class="red unlock icon"></i>
+ <div title="{{if eq .Verification.TrustStatus "trusted"}}{{else if eq .Verification.TrustStatus "untrusted"}}{{$.i18n.Tr "repo.commits.signed_by_untrusted_user"}}: {{else}}{{$.i18n.Tr "repo.commits.signed_by_untrusted_user_unmatched"}}: {{end}}{{.Verification.Reason}}">
+ {{if ne .Verification.SigningUser.ID 0}}
+ <i class="lock icon"></i>
+ <img class="ui signature avatar image" src="{{.Verification.SigningUser.RelAvatarLink}}" />
+ {{else}}
+ <i title="{{.Verification.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 .Verification.SigningEmail}}" />
+ {{end}}
+ </div>
{{else}}
<i title="{{$.i18n.Tr .Verification.Reason}}" class="unlock icon"></i>
{{end}}
diff --git a/templates/repo/view_list.tmpl b/templates/repo/view_list.tmpl
index e8163787f5..c296eb7bee 100644
--- a/templates/repo/view_list.tmpl
+++ b/templates/repo/view_list.tmpl
@@ -15,16 +15,27 @@
<strong>{{.LatestCommit.Author.Name}}</strong>
{{end}}
{{end}}
- <a rel="nofollow" class="ui sha label {{if .LatestCommit.Signature}} isSigned {{if .LatestCommitVerification.Verified }} isVerified {{end}}{{end}}" href="{{.RepoLink}}/commit/{{.LatestCommit.ID}}">
- {{ShortSha .LatestCommit.ID.String}}
+ <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}}
- <div class="ui detail icon button">
- {{if .LatestCommitVerification.Verified}}
- <i title="{{.LatestCommitVerification.Reason}}" class="lock green icon"></i>
- {{else}}
+ {{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>
- {{end}}
- </div>
+ </div>
+ {{end}}
{{end}}
</a>
{{template "repo/commit_status" .LatestCommitStatus}}