added @login_requried, fixes #6

main
Mark Cotton 2023-08-20 22:05:48 -05:00
parent fb10657e60
commit b02ba38eea
1 changed files with 40 additions and 42 deletions

82
app.py
View File

@ -15,6 +15,7 @@ from io import BytesIO
import logging
logger = logging.getLogger()
from functools import wraps
from EagleEyev3 import *
from settings import config
@ -67,6 +68,15 @@ Session(app)
# switch_account GET /switch_account
def login_required(f):
@wraps(f)
def decorated_function(*args, **kwargs):
if 'een' not in session:
return redirect(url_for('landing'))
return f(*args, **kwargs)
return decorated_function
@app.route('/landing')
@ -86,13 +96,10 @@ def landing():
@app.route('/')
@login_required
def index():
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
session['een'] = een
een = session['een']
# using current_user as a proxy for an established valid session
if een.access_token == None:
@ -146,10 +153,9 @@ def login_callback():
# This is getting the ?code= querystring value from the HTTP request.
code = request.args.get('code')
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
# create a new een object and store it in their session
een = EagleEyev3(config)
session['een'] = een
if (code):
@ -161,6 +167,7 @@ def login_callback():
@app.route('/logout')
@login_required
def logout():
if 'een' in session:
een = session['een']
@ -172,11 +179,10 @@ def logout():
@app.route('/cameras')
@login_required
def cameras():
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
een = session['een']
logging.debug(een.get_list_of_cameras())
@ -192,11 +198,10 @@ def cameras():
@app.route('/accounts')
@login_required
def accounts():
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
een = session['een']
een.get_list_of_accounts()
@ -210,15 +215,12 @@ def accounts():
@app.route('/switch_account')
@login_required
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)
een = session['een']
if (account):
# switch into account
@ -231,11 +233,10 @@ def switch_account():
@app.route('/camera/<esn>/preview_image')
def camera__preivew_image(esn=None):
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
@login_required
def camera__preivew_image(esn=None):
een = session['een']
camera = een.get_camera_by_id(esn)
res = camera.get_live_preview()
@ -247,11 +248,10 @@ def camera__preivew_image(esn=None):
@app.route('/camera/<esn>/preview')
def camera_live_preivew(esn=None):
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
@login_required
def camera_live_preivew(esn=None):
een = session['een']
camera = een.get_camera_by_id(esn)
@ -265,11 +265,10 @@ def camera_live_preivew(esn=None):
@app.route("/camera/<esn>/events/<int:days>")
@app.route('/camera/<esn>/events')
def camera_detail(esn=None, days=DAYS_OF_HISTORY):
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
@login_required
def camera_detail(esn=None, days=DAYS_OF_HISTORY):
een = session['een']
camera = een.get_camera_by_id(esn)
now = een.time_now()
@ -289,12 +288,11 @@ def camera_detail(esn=None, days=DAYS_OF_HISTORY):
@app.route('/camera/<esn>/status_plot')
def camera_status_plot(esn=None):
if 'een' in session:
een = session['een']
else:
een = EagleEyev3(config)
@login_required
def camera_status_plot(esn=None):
een = session['een']
cam = een.get_camera_by_id(esn)
logging.debug(cam.events['status'][0])