Repository URL to install this package:
|
Version:
0.1.2 ▾
|
# frozen_string_literal: true
require 'delegate'
require 'gem_config'
require 'sinatra/base'
require 'sinatra/impersonate/impersonator'
require 'sinatra/impersonate/version'
# Sinatra module
module Sinatra
# Allow impersonation of users by other users
module Impersonate
include GemConfig::Base
with_configuration do
has :permission, classes: Symbol
end
def self.registered(app) # rubocop:disable Metrics/AbcSize
app.get '/impersonate/stop' do
@logged_in_user.stop_impersonating
redirect back
end
app.post '/impersonate' do
halt 403 if params[:username].nil?
halt 403 unless @logged_in_user.can_impersonate?(params[:username])
@logged_in_user.impersonate params[:username]
redirect back
end
end
end
register Impersonate
end