Add feature to revoke sessions (#4259)

This commit is contained in:
Yamagishi Kazutoshi 2017-07-19 11:59:04 +09:00 committed by Eugen Rochko
parent a5a07da892
commit 716f4cb11c
4 changed files with 25 additions and 0 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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]