Files
gitea/templates/admin/user/sessions.tmpl
T
2026-05-08 00:34:07 -04:00

65 lines
2.7 KiB
Handlebars

{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user sessions")}}
<div class="admin-setting-content">
<h4 class="ui top attached header">
{{ctx.Locale.Tr "settings.sessions"}} — {{.User.Name}} ({{ctx.Locale.Tr "admin.total" (len .Sessions)}})
<div class="ui right">
{{if gt .ActiveCount 0}}
<form class="tw-inline" action="{{AppSubUrl}}/-/admin/users/{{.User.ID}}/sessions/revoke_all" method="post">
<button class="ui red tiny button">{{ctx.Locale.Tr "admin.settings.sessions.revoke_all"}}</button>
</form>
{{end}}
<a class="ui primary tiny button" href="{{AppSubUrl}}/-/admin/users/{{.User.ID}}">{{ctx.Locale.Tr "admin.users.details"}}</a>
</div>
</h4>
<div class="ui attached segment">
{{if .Sessions}}
<div class="flex-list">
{{range .Sessions}}
<div class="flex-item">
<div class="flex-item-leading">
{{svg "octicon-device-desktop" 32}}
</div>
<div class="flex-item-main">
<div class="flex-item-title">
{{StringUtils.EllipsisString .UserAgent 60}}
{{if .LogoutUnix}}
<span class="ui grey label">{{ctx.Locale.Tr "settings.sessions.ended"}}</span>
{{else}}
<span class="ui green label">{{ctx.Locale.Tr "settings.sessions.active"}}</span>
{{end}}
</div>
<div class="flex-item-body">
<span class="flex-text-inline">{{svg "octicon-globe"}} {{ctx.Locale.Tr "settings.sessions.login_ip"}}: {{.LoginIP}}</span>
{{if .LastIP}}
<span class="flex-text-inline">| {{ctx.Locale.Tr "settings.sessions.last_ip"}}: {{.LastIP}}</span>
{{end}}
{{if and .PrevIP (ne .PrevIP .LastIP) (ne .PrevIP .LoginIP)}}
<span class="flex-text-inline">| {{ctx.Locale.Tr "settings.sessions.prev_ip"}}: {{.PrevIP}}</span>
{{end}}
</div>
<div class="flex-item-body">
<span class="flex-text-inline">{{svg "octicon-key"}} {{.LoginMethod}}</span>
<span class="flex-text-inline">| {{svg "octicon-calendar"}} {{DateUtils.AbsoluteShort .CreatedUnix}}</span>
<span class="flex-text-inline">| {{ctx.Locale.Tr "settings.sessions.last_active"}}: {{DateUtils.TimeSince .LastAccessUnix}}</span>
</div>
</div>
{{if not .LogoutUnix}}
<div class="flex-item-trailing">
<form action="{{AppSubUrl}}/-/admin/users/{{$.User.ID}}/sessions/revoke" method="post">
<input type="hidden" name="session_id" value="{{.ID}}">
<button class="ui red tiny button">{{ctx.Locale.Tr "settings.sessions.revoke"}}</button>
</form>
</div>
{{end}}
</div>
{{end}}
</div>
{{else}}
<p>{{ctx.Locale.Tr "settings.sessions.none"}}</p>
{{end}}
</div>
</div>
{{template "admin/layout_footer" .}}