Merge branch 'origin/main' into session-management

Conflict resolutions:
- models/migrations/v1_26/v328.go: kept origin/main's TokenPermissions
  migration; moved AddUserSessionTable to v1_27/v332.go (1.26.0 closed
  at migration 330; 1.27 starts at 331).
- models/migrations/migrations.go: registered session migration as 332
  using v1_27.AddUserSessionTable.
- tests/integration/api_admin_test.go: adopted new DecodeJSON return
  style; cron count is 30 (added cleanup_user_sessions task).

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
This commit is contained in:
silverwindandClaude committed 2026-05-08 08:48:32 +02:00
commit c1ac754bf3
1841 files changed
+83555 -29241

No files matched your search

@@ -9,7 +9,7 @@
<div class="menu">
{{range $key := .OrderedOAuth2Names}}
{{$provider := index $.OAuth2Providers $key}}
<a class="item" href="{{AppSubUrl}}/user/oauth2/{{$key}}">
<a class="item" href="{{AppSubUrl}}/user/oauth2/{{$key | PathEscape}}">
{{$provider.IconHTML 20}}
{{$provider.DisplayName}}
</a>
@@ -21,25 +21,25 @@
</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
<div class="flex-divided-list items-with-main">
<div class="item">
{{ctx.Locale.Tr "settings.manage_account_links_desc"}}
</div>
{{range $loginSource, $provider := .AccountLinks}}
<div class="flex-item">
<div class="item">
{{$providerData := index $.OAuth2Providers $loginSource.Name}}
<div class="flex-item-leading">
<div class="item-leading">
{{$providerData.IconHTML 20}}
</div>
<div class="flex-item-main">
<span class="flex-item-title" data-tooltip-content="{{$provider}}">
<div class="item-main">
<span class="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">
<div class="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>
+7 -7
View File
@@ -2,19 +2,19 @@
{{ctx.Locale.Tr "settings.manage_openid"}}
</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
<div class="flex-divided-list items-with-main">
<div class="item">
{{ctx.Locale.Tr "settings.openid_desc"}}
</div>
{{range .OpenIDs}}
<div class="flex-item tw-items-center">
<div class="flex-item-leading">
<div class="item tw-items-center">
<div class="item-leading">
{{svg "fontawesome-openid" 20}}
</div>
<div class="flex-item-main">
<div class="flex-item-title">{{.URI}}</div>
<div class="item-main">
<div class="item-title">{{.URI}}</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
<form action="{{AppSubUrl}}/user/settings/security/openid/toggle_visibility" method="post">
<input name="id" type="hidden" value="{{.ID}}">
{{if .Show}}
@@ -1,4 +1,4 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings security")}}
{{template "user/settings/layout_head" (dict "pageClass" "user settings security")}}
{{if not ($.UserDisabledFeatures.Contains "manage_mfa" "manage_credentials")}}
<div class="user-setting-content">
@@ -1,4 +1,4 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings twofa")}}
{{template "user/settings/layout_head" (dict "pageClass" "user settings twofa")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
{{ctx.Locale.Tr "settings.twofa_enroll"}}
@@ -3,19 +3,19 @@
<p>{{ctx.Locale.Tr "settings.webauthn_desc" "https://w3c.github.io/webauthn/#webauthn-authenticator"}}</p>
<p>{{ctx.Locale.Tr "settings.webauthn_key_loss_warning"}} {{ctx.Locale.Tr "settings.webauthn_alternative_tip"}}</p>
{{template "user/auth/webauthn_error" .}}
<div class="flex-list">
<div class="flex-divided-list items-with-main">
{{range .WebAuthnCredentials}}
<div class="flex-item">
<div class="flex-item-leading">
<div class="item">
<div class="item-leading">
{{svg "octicon-key" 32}}
</div>
<div class="flex-item-main">
<div class="flex-item-title">{{.Name}}</div>
<div class="flex-item-body">
<div class="item-main">
<div class="item-title">{{.Name}}</div>
<div class="item-body">
<i>{{ctx.Locale.Tr "settings.added_on" (DateUtils.AbsoluteShort .CreatedUnix)}}</i>
</div>
</div>
<div class="flex-item-trailing">
<div class="item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-registration" data-url="{{$.Link}}/webauthn/delete" data-id="{{.ID}}">
{{ctx.Locale.Tr "settings.delete_key"}}
</button>