feat: Ability for super admin to impersonate a user (#6382)
This commit is contained in:
@@ -13,8 +13,7 @@ class Platform::Api::V1::UsersController < PlatformController
|
||||
end
|
||||
|
||||
def login
|
||||
encoded_email = ERB::Util.url_encode(@resource.email)
|
||||
render json: { url: "#{ENV.fetch('FRONTEND_URL', nil)}/app/login?email=#{encoded_email}&sso_auth_token=#{@resource.generate_sso_auth_token}" }
|
||||
render json: { url: @resource.generate_sso_link }
|
||||
end
|
||||
|
||||
def show; end
|
||||
|
||||
@@ -15,6 +15,11 @@ module SsoAuthenticatable
|
||||
::Redis::Alfred.get(sso_token_key(token)).present?
|
||||
end
|
||||
|
||||
def generate_sso_link
|
||||
encoded_email = ERB::Util.url_encode(email)
|
||||
"#{ENV.fetch('FRONTEND_URL', nil)}/app/login?email=#{encoded_email}&sso_auth_token=#{generate_sso_auth_token}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sso_token_key(token)
|
||||
|
||||
8
app/views/super_admin/users/_impersonate.erb
Normal file
8
app/views/super_admin/users/_impersonate.erb
Normal file
@@ -0,0 +1,8 @@
|
||||
<section class="main-content__body">
|
||||
<hr/>
|
||||
<div class="form-actions">
|
||||
<p class="text-color-red">Caution: Any actions executed after impersonate will appear as if performed by the impersonated user - [<%= page.resource.name %> ]</p>
|
||||
<a class='button' target='_blank' href='<%= page.resource.generate_sso_link %>'>Impersonate user </a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -85,3 +85,5 @@ as well as a link to its edit page.
|
||||
<% end %>
|
||||
|
||||
</section>
|
||||
|
||||
<%= render partial: "impersonate", locals: {page: page} %>
|
||||
|
||||
Reference in New Issue
Block a user