Add feature to revoke sessions (#4259)
parent
a5a07da892
commit
716f4cb11c
|
@ -0,0 +1,17 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class Settings::SessionsController < ApplicationController
|
||||||
|
before_action :set_session, only: :destroy
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
@session.destroy!
|
||||||
|
flash[:notice] = I18n.t('sessions.revoke_success')
|
||||||
|
redirect_to edit_user_registration_path
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_session
|
||||||
|
@session = current_user.session_activations.find(params[:id])
|
||||||
|
end
|
||||||
|
end
|
|
@ -7,6 +7,7 @@
|
||||||
%th= t 'sessions.browser'
|
%th= t 'sessions.browser'
|
||||||
%th= t 'sessions.ip'
|
%th= t 'sessions.ip'
|
||||||
%th= t 'sessions.activity'
|
%th= t 'sessions.activity'
|
||||||
|
%td
|
||||||
%tbody
|
%tbody
|
||||||
- @sessions.each do |session|
|
- @sessions.each do |session|
|
||||||
%tr
|
%tr
|
||||||
|
@ -22,3 +23,6 @@
|
||||||
= t 'sessions.current_session'
|
= t 'sessions.current_session'
|
||||||
- else
|
- else
|
||||||
%time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
|
%time.time-ago{ datetime: session.updated_at.iso8601, title: l(session.updated_at) }= l(session.updated_at)
|
||||||
|
%td
|
||||||
|
- if request.session['auth_id'] != session.session_id
|
||||||
|
= table_link_to 'times', t('sessions.revoke'), settings_session_path(session), method: :delete
|
||||||
|
|
|
@ -397,6 +397,8 @@ en:
|
||||||
windows: Windows
|
windows: Windows
|
||||||
windows_mobile: Windows Mobile
|
windows_mobile: Windows Mobile
|
||||||
windows_phone: Windows Phone
|
windows_phone: Windows Phone
|
||||||
|
revoke: Revoke
|
||||||
|
revoke_success: Session successfully revoked
|
||||||
title: Sessions
|
title: Sessions
|
||||||
settings:
|
settings:
|
||||||
authorized_apps: Authorized apps
|
authorized_apps: Authorized apps
|
||||||
|
|
|
@ -74,6 +74,8 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
resource :follower_domains, only: [:show, :update]
|
resource :follower_domains, only: [:show, :update]
|
||||||
resource :delete, only: [:show, :destroy]
|
resource :delete, only: [:show, :destroy]
|
||||||
|
|
||||||
|
resources :sessions, only: [:destroy]
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :media, only: [:show]
|
resources :media, only: [:show]
|
||||||
|
|
Loading…
Reference in New Issue