Follow up #37327. See the comments. * Root problem: the design of OAuth2 providers is a mess, the display name is used as provider's name and used in the URL directly * The regressions: * When trying to fix https://github.com/go-gitea/gitea/issues/36409 , it introduced inconsistent URL escaping for the "path" part. * This fix: always use "path escaping" for the path part, add more tests to cover all escaping cases. Now, frontend "pathEscape" and "pathEscapeSegments" generate exactly the same result as backend.
63 lines
2.0 KiB
Handlebars
63 lines
2.0 KiB
Handlebars
{{/* No account links, no way to add account links: Menu will not be shown. */}}
|
|
{{if or .AccountLinks .OrderedOAuth2Names}}
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "settings.manage_account_links"}}
|
|
{{if .OrderedOAuth2Names}}
|
|
<div class="ui right">
|
|
<div class="ui dropdown">
|
|
<div class="ui primary tiny button">{{ctx.Locale.Tr "settings.link_account"}}</div>
|
|
<div class="menu">
|
|
{{range $key := .OrderedOAuth2Names}}
|
|
{{$provider := index $.OAuth2Providers $key}}
|
|
<a class="item" href="{{AppSubUrl}}/user/oauth2/{{$key | PathEscape}}">
|
|
{{$provider.IconHTML 20}}
|
|
{{$provider.DisplayName}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</h4>
|
|
|
|
<div class="ui attached segment">
|
|
<div class="flex-list">
|
|
<div class="flex-item">
|
|
{{ctx.Locale.Tr "settings.manage_account_links_desc"}}
|
|
</div>
|
|
{{range $loginSource, $provider := .AccountLinks}}
|
|
<div class="flex-item">
|
|
{{$providerData := index $.OAuth2Providers $loginSource.Name}}
|
|
<div class="flex-item-leading">
|
|
{{$providerData.IconHTML 20}}
|
|
</div>
|
|
<div class="flex-item-main">
|
|
<span class="flex-item-title" data-tooltip-content="{{$provider}}">
|
|
{{$loginSource.Name}}
|
|
</span>
|
|
{{if $loginSource.IsActive}}
|
|
<span class="flex-text-body tw-text-primary">{{ctx.Locale.Tr "repo.settings.active"}}</span>
|
|
{{end}}
|
|
</div>
|
|
<div class="flex-item-trailing">
|
|
<button class="ui red tiny button delete-button" data-modal-id="delete-account-link" data-url="{{AppSubUrl}}/user/settings/security/account_link" data-id="{{$loginSource.ID}}">
|
|
{{ctx.Locale.Tr "settings.delete_key"}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
|
|
<div class="ui g-modal-confirm delete modal" id="delete-account-link">
|
|
<div class="header">
|
|
{{svg "octicon-trash"}}
|
|
{{ctx.Locale.Tr "settings.remove_account_link"}}
|
|
</div>
|
|
<div class="content">
|
|
<p>{{ctx.Locale.Tr "settings.remove_account_link_desc"}}</p>
|
|
</div>
|
|
{{template "base/modal_actions_confirm" .}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|