From 939553b4a58c7ebd820940d2c23c80b2d6bc8a0f Mon Sep 17 00:00:00 2001 From: Mark Cotton Date: Thu, 10 Aug 2023 13:05:23 -0600 Subject: [PATCH] added UI for handing Reseller user, allows switch, requires EagleEyev3 == 0.0.10 --- app.py | 43 ++++++++++++++++++++++++++++++++- requirements.txt | 2 +- templates/accounts_partial.html | 27 +++++++++++++++++++++ templates/index.html | 4 +++ 4 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 templates/accounts_partial.html diff --git a/app.py b/app.py index d054688..5c96306 100644 --- a/app.py +++ b/app.py @@ -91,10 +91,13 @@ def index(): een.get_list_of_cameras() + een.get_list_of_accounts() values = { "current_user": een.current_user, - "cameras": een.cameras + "cameras": een.cameras, + "accounts": een.accounts, + "active_account": een.active_account } return render_template('index.html', template_values=values) @@ -147,6 +150,44 @@ def cameras(): return render_template('cameras_partial.html', template_values=values) +@app.route('/accounts') +def accounts(): + if 'een' in session: + een = session['een'] + else: + een = EagleEyev3(config) + + een.get_list_of_accounts() + + values = { + "current_user": een.current_user, + "accounts": een.accounts, + "active_account": een.active_account + } + + return render_template('accounts_partial.html', template_values=values) + + +@app.route('/switch_account') +def switch_account(): + # This is getting the ?account= querystring value from the HTTP request. + account = request.args.get('account') + + if 'een' in session: + een = session['een'] + else: + een = EagleEyev3(config) + + + if (account): + # use the include code parameter to complete login process + een.login_from_reseller(target_account_id=account) + + + return redirect(url_for('index')) + + + @app.route('/camera//preview_image') def camera__preivew_image(esn=None): if 'een' in session: diff --git a/requirements.txt b/requirements.txt index e5e6449..9b7c318 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ Werkzeug==2.3.6 gunicorn==20.1.0 cachelib==0.10.2 Flask-Session==0.5.0 -EagleEyev3>=0.0.8 +EagleEyev3>=0.0.10 tqdm pandas numpy diff --git a/templates/accounts_partial.html b/templates/accounts_partial.html new file mode 100644 index 0000000..87425e3 --- /dev/null +++ b/templates/accounts_partial.html @@ -0,0 +1,27 @@ + + +
+
+

+ {% for account in template_values['accounts'] %} + {% if account.id == template_values['active_account'] %} + {{ account.name }} + {% endif %} + {% endfor %} +

+
+
+ + +
+
diff --git a/templates/index.html b/templates/index.html index 32e90eb..da0955b 100644 --- a/templates/index.html +++ b/templates/index.html @@ -126,6 +126,10 @@ {% block main %} +{% if template_values['accounts']|count > 1 %} + {% include 'accounts_partial.html' %} +{% endif %} +