feat: Ability for super admin to impersonate a user (#6382)

This commit is contained in:
Sojan Jose
2023-02-07 00:30:08 +05:30
committed by GitHub
parent 0a2d3130e0
commit 6b839a0442
6 changed files with 46 additions and 4 deletions

View File

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

View File

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

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

View File

@@ -85,3 +85,5 @@ as well as a link to its edit page.
<% end %>
</section>
<%= render partial: "impersonate", locals: {page: page} %>