removed use of ref var for code readability
added some more defensive code to throw an error, rather than crash if missing pref, referrers, etc. fix use of SetFELog with log_level="error" => level="danger"
This commit is contained in:
37
states.py
37
states.py
@@ -62,10 +62,9 @@ class States(PA):
|
|||||||
# this is any next/prev or noo, grouping, etc. change (so use referrer to work out what to do with this)
|
# this is any next/prev or noo, grouping, etc. change (so use referrer to work out what to do with this)
|
||||||
# because this can happen on a view, or files_up, etc. change this FIRST
|
# because this can happen on a view, or files_up, etc. change this FIRST
|
||||||
if 'change_file_opts' in request.path:
|
if 'change_file_opts' in request.path:
|
||||||
ref=request.referrer
|
|
||||||
base=request.base_url
|
base=request.base_url
|
||||||
base=base.replace("change_file_opts", "")
|
base=base.replace("change_file_opts", "")
|
||||||
self.url = "/"+ref.replace(base, "" )
|
self.url = "/"+request.referrer.replace(base, "" )
|
||||||
|
|
||||||
# if view_list, then we really are a view, and view_eid should be in the form
|
# if view_list, then we really are a view, and view_eid should be in the form
|
||||||
if 'view_list' in request.path:
|
if 'view_list' in request.path:
|
||||||
@@ -82,16 +81,18 @@ class States(PA):
|
|||||||
else:
|
else:
|
||||||
# GET's occur on redirect, and we don't have a form, so get it from pref
|
# GET's occur on redirect, and we don't have a form, so get it from pref
|
||||||
st=self.url[8:]
|
st=self.url[8:]
|
||||||
ref=request.referrer
|
if request.referrer and 'search' in request.referrer:
|
||||||
if 'search' in ref:
|
st=re.sub( '.+/search/', '', request.referrer )
|
||||||
st=re.sub( '.+/search/', '', ref )
|
|
||||||
else:
|
else:
|
||||||
st=''
|
st=''
|
||||||
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid,PA_UserState.orig_search_term==st).first()
|
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid,PA_UserState.orig_search_term==st).first()
|
||||||
if not pref:
|
if not pref:
|
||||||
SetFELog( message=f"ERROR: pref not found - DONT CLOSE THIS!!! dn={current_user.dn}, st={st}, s={self}????" , log_level="error", persistent=True, cant_close=True )
|
SetFELog( message=f"ERROR: pref not found - dn={current_user.dn}, st={st}, s={self}????" , level="danger", persistent=True, cant_close=True )
|
||||||
redirect("/")
|
redirect("/")
|
||||||
else:
|
else:
|
||||||
|
if not hasattr( pref, 'orig_url' ):
|
||||||
|
SetFELog( message=f"ERROR: orig_url not in pref - dn={current_user.dn}, st={st}, self={self}, pref={pref}????" , level="danger", persistent=True, cant_close=True )
|
||||||
|
redirect("/")
|
||||||
self.url = pref.orig_url
|
self.url = pref.orig_url
|
||||||
|
|
||||||
if 'files_ip' in self.url or 'file_list_ip' in self.url:
|
if 'files_ip' in self.url or 'file_list_ip' in self.url:
|
||||||
@@ -123,22 +124,28 @@ class States(PA):
|
|||||||
elif 'view' in self.url:
|
elif 'view' in self.url:
|
||||||
# use url to get eid of viewed entry
|
# use url to get eid of viewed entry
|
||||||
self.view_eid = self.url[6:]
|
self.view_eid = self.url[6:]
|
||||||
self.path_type="View"
|
# force this to be a search so rest of code won't totally die, but also not return anything
|
||||||
|
self.path_type="Search"
|
||||||
self.orig_url=self.url
|
self.orig_url=self.url
|
||||||
elif 'change_file_opts' not in self.url:
|
elif 'change_file_opts' not in self.url:
|
||||||
SetFELog( message=f"ERROR: DDP messed up, failed to match URL {self.url} for settings this will fail, redirecting to home" , log_level="error", persistent=True, cant_close=True )
|
SetFELog( message=f"ERROR: DDP messed up, failed to match URL {self.url} for settings this will fail, redirecting to home" , level="danger", persistent=True, cant_close=True )
|
||||||
SetFELog( message=f"referrer={request.referrer}" , log_level="error",
|
SetFELog( message=f"referrer={request.referrer}" , level="danger", persistent=True, cant_close=True )
|
||||||
persistent=True, cant_close=True )
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.path_type == 'View':
|
if self.path_type == 'View':
|
||||||
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid,PA_UserState.orig_search_term==self.orig_search_term).first()
|
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid,PA_UserState.orig_search_term==self.orig_search_term).first()
|
||||||
|
if not hasattr( self, 'orig_ptype' ):
|
||||||
|
self.orig_ptype='View'
|
||||||
|
self.orig_url=''
|
||||||
|
SetFELog( message=f"ERROR: No orig ptype? s={self} - pref={pref}, redirecting to home" , level="danger", persistent=True, cant_close=True )
|
||||||
|
SetFELog( message=f"referrer={request.referrer}" , level="danger", persistent=True, cant_close=True )
|
||||||
|
redirect("/")
|
||||||
|
|
||||||
# should find original path or search for this view (if not a search, search_term='')
|
# should find original path or search for this view (if not a search, search_term='')
|
||||||
orig_pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.orig_ptype,PA_UserState.orig_search_term==self.orig_search_term).first()
|
orig_pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.orig_ptype,PA_UserState.orig_search_term==self.orig_search_term).first()
|
||||||
if not orig_pref:
|
if not orig_pref:
|
||||||
SetFELog( message=f"ERROR: DDP messed up 2, failed to find orig_pref for a view pt={self.path_type} for search={self.orig_search_term}" , log_level="error", persistent=True, cant_close=True )
|
SetFELog( message=f"ERROR: DDP messed up 2, failed to find orig_pref for a view pt={self.path_type} for search={self.orig_search_term}" , level="danger", persistent=True, cant_close=True )
|
||||||
SetFELog( message=f"referrer={request.referrer}" , log_level="error",
|
SetFELog( message=f"referrer={request.referrer}" , level="danger", persistent=True, cant_close=True )
|
||||||
persistent=True, cant_close=True )
|
|
||||||
return
|
return
|
||||||
elif self.path_type == 'Search':
|
elif self.path_type == 'Search':
|
||||||
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.orig_search_term==self.orig_search_term).first()
|
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.orig_search_term==self.orig_search_term).first()
|
||||||
@@ -255,8 +262,8 @@ class States(PA):
|
|||||||
self.offset += int(self.how_many)
|
self.offset += int(self.how_many)
|
||||||
else:
|
else:
|
||||||
# should be impossible now, but leave jic
|
# should be impossible now, but leave jic
|
||||||
SetFELog( message=f"WARNING: next image requested, but would go past end of list? - ignore this" , log_level="warning", persistent=True, cant_close=True )
|
SetFELog( message=f"WARNING: next image requested, but would go past end of list? - ignore this" , level="warning", persistent=True, cant_close=True )
|
||||||
SetFELog( message=f"DDP - offset={self.offset} + how_many={self.how_many} > num_entries={self.num_entries}" , log_level="error", persistent=True, cant_close=True )
|
SetFELog( message=f"DDP - offset={self.offset} + how_many={self.how_many} > num_entries={self.num_entries}" , level="danger", persistent=True, cant_close=True )
|
||||||
if 'current' in request.form:
|
if 'current' in request.form:
|
||||||
self.current = int(request.form['current'])
|
self.current = int(request.form['current'])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user