impersonate_admin_user_of_subsite

Impersonate Admin User of Subsite

Super Site Admin should be able to login as admin of subsite. Once logged in he/she should have all the privileges of a subsite admin.

Design

The subsites can be on a subdomain or a separate domain. Because of this, using cookie for impersonation is not possible as cookies are not shared across domain.

Login Process-

  • Check if the email provided is the super site admin. This is done by comparing it with the value in application.yml(default_company/admin_user_email).
  • If the email is super site admin's and if the site is not default one proceed to next step. If the site is default then normal log-in process will happen.
  • Validate the email and password provided. If valid then continue with the next step else show a message that the validation failed.
  • Retrieve the details of the sites admin and then create a session.
  • If the session creation fails ( example - the admin has not yet activated his email etc), then show an error message
  • If the session is created, then the super admin will be logged into the site as site admin.

constraints imposed because of the above design

  • Super site admin email has to be unique in the database. ie no site should have an user with the same email of super admin.
  • If there is a change in the email of the super site admin, then the application.yml file needs to be updated and the application needs to restarted.
impersonate_admin_user_of_subsite.txt · Last modified: 2018/08/31 16:16 (external edit)