From d174d12c831989bf1d5d3ca54d4f26d28c2c8925 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 21 Jun 2021 17:07:30 +0200 Subject: Add authentication history (#16408) --- .../settings/login_activities/_login_activity.html.haml | 17 +++++++++++++++++ app/views/settings/login_activities/index.html.haml | 15 +++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 app/views/settings/login_activities/_login_activity.html.haml create mode 100644 app/views/settings/login_activities/index.html.haml (limited to 'app/views/settings') diff --git a/app/views/settings/login_activities/_login_activity.html.haml b/app/views/settings/login_activities/_login_activity.html.haml new file mode 100644 index 000000000..19a3cc3dd --- /dev/null +++ b/app/views/settings/login_activities/_login_activity.html.haml @@ -0,0 +1,17 @@ +- method_str = content_tag(:span, login_activity.omniauth? ? t(login_activity.provider, scope: 'auth.providers') : t(login_activity.authentication_method, scope: 'login_activities.authentication_methods'), class: 'target') +- ip_str = content_tag(:span, login_activity.ip, class: 'target') +- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: "#{login_activity.browser}"), platform: t("sessions.platforms.#{login_activity.platform}", default: "#{login_activity.platform}")), class: 'target') + +.log-entry + .log-entry__header + .log-entry__avatar + .indicator-icon{ class: login_activity.success? ? 'success' : 'failure' } + = fa_icon login_activity.success? ? 'check' : 'times' + .log-entry__content + .log-entry__title + - if login_activity.success? + = t('login_activities.successful_sign_in_html', method: method_str, ip: ip_str, browser: browser_str) + - else + = t('login_activities.failed_sign_in_html', method: method_str, ip: ip_str, browser: browser_str) + .log-entry__timestamp + %time.formatted{ datetime: login_activity.created_at.iso8601 } diff --git a/app/views/settings/login_activities/index.html.haml b/app/views/settings/login_activities/index.html.haml new file mode 100644 index 000000000..ce524fbef --- /dev/null +++ b/app/views/settings/login_activities/index.html.haml @@ -0,0 +1,15 @@ +- content_for :page_title do + = t 'login_activities.title' + +%p= t('login_activities.description_html') + +%hr.spacer/ + +- if @login_activities.empty? + %div.muted-hint.center-text + = t 'login_activities.empty' +- else + .announcements-list + = render partial: 'login_activity', collection: @login_activities + += paginate @login_activities -- cgit From 262c7bcb578919532bcec548938caf5094eee5a8 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 23 Jun 2021 16:42:23 +0200 Subject: Add full user agent in tooltips for login activities (#16428) Also adds timestamp in HTML itself to not rely on javascript --- app/views/settings/login_activities/_login_activity.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/views/settings') diff --git a/app/views/settings/login_activities/_login_activity.html.haml b/app/views/settings/login_activities/_login_activity.html.haml index 19a3cc3dd..0c2c7087d 100644 --- a/app/views/settings/login_activities/_login_activity.html.haml +++ b/app/views/settings/login_activities/_login_activity.html.haml @@ -1,6 +1,6 @@ - method_str = content_tag(:span, login_activity.omniauth? ? t(login_activity.provider, scope: 'auth.providers') : t(login_activity.authentication_method, scope: 'login_activities.authentication_methods'), class: 'target') - ip_str = content_tag(:span, login_activity.ip, class: 'target') -- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: "#{login_activity.browser}"), platform: t("sessions.platforms.#{login_activity.platform}", default: "#{login_activity.platform}")), class: 'target') +- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: "#{login_activity.browser}"), platform: t("sessions.platforms.#{login_activity.platform}", default: "#{login_activity.platform}")), class: 'target', title: login_activity.user_agent) .log-entry .log-entry__header @@ -14,4 +14,4 @@ - else = t('login_activities.failed_sign_in_html', method: method_str, ip: ip_str, browser: browser_str) .log-entry__timestamp - %time.formatted{ datetime: login_activity.created_at.iso8601 } + %time.formatted{ datetime: login_activity.created_at.iso8601 }= l(login_activity.created_at) -- cgit