Merge pull request #14854 from netchampfaris/bench-browse-login-as-user

fix: login as user with browse command
This commit is contained in:
Faris Ansari 2021-11-02 17:12:18 +05:30 committed by GitHub
commit 2f8a6491f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -659,10 +659,14 @@ def publish_realtime(context, event, message, room, user, doctype, docname, afte
@click.command('browse')
@click.argument('site', required=False)
@click.option('--user', required=False, help='Login as user')
@pass_context
def browse(context, site):
def browse(context, site, user=None):
'''Opens the site on web browser'''
from frappe.auth import LoginManager
from frappe.auth import CookieManager
import webbrowser
site = context.sites[0] if context.sites else site
if not site:
@ -672,7 +676,24 @@ def browse(context, site):
site = site.lower()
if site in frappe.utils.get_sites():
webbrowser.open(frappe.utils.get_site_url(site), new=2)
frappe.init(site=site)
frappe.connect()
sid = ''
if user:
if frappe.conf.developer_mode or user == "Administrator":
frappe.utils.set_request(path="/")
frappe.local.cookie_manager = CookieManager()
frappe.local.login_manager = LoginManager()
frappe.local.login_manager.login_as(user)
sid = f'/app?sid={frappe.session.sid}'
else:
print("Please enable developer mode to login as a user")
url = f'{frappe.utils.get_site_url(site)}{sid}'
if user == "Administrator":
print(f'Login URL: {url}')
webbrowser.open(url, new=2)
else:
click.echo("\nSite named \033[1m{}\033[0m doesn't exist\n".format(site))