summaryrefslogtreecommitdiffstats
path: root/module/web/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/utils.py')
-rw-r--r--module/web/utils.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/module/web/utils.py b/module/web/utils.py
deleted file mode 100644
index b5a933b26..000000000
--- a/module/web/utils.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import re
-from bottle import request, HTTPError, redirect
-
-from webinterface import PYLOAD, SETUP
-
-
-def set_session(request, user):
- s = request.environ.get('beaker.session')
- s["uid"] = user.uid
- s.save()
- return s
-
-def get_user_api(s):
- if s:
- uid = s.get("uid", None)
- if (uid is not None) and (PYLOAD is not None):
- return PYLOAD.withUserContext(uid)
- return None
-
-def is_mobile():
- if request.get_cookie("mobile"):
- if request.get_cookie("mobile") == "True":
- return True
- else:
- return False
- mobile_ua = request.headers.get('User-Agent', '').lower()
- if mobile_ua.find('opera mini') > 0:
- return True
- if mobile_ua.find('windows') > 0:
- return False
- if request.headers.get('Accept', '').lower().find('application/vnd.wap.xhtml+xml') > 0:
- return True
- if re.search('(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)', mobile_ua) is not None:
- return True
- mobile_ua = mobile_ua[:4]
- mobile_agents = ['w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac','blaz','brew','cell','cldc','cmd-',
- 'dang','doco','eric','hipt','inno','ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
- 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-','newt','noki','palm','pana','pant',
- 'phil','play','port','prox','qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar','sie-',
- 'siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda',
- 'wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda ','xda-']
- if mobile_ua in mobile_agents:
- return True
- return False
-
-
-def login_required(perm=None):
- def _dec(func):
- def _view(*args, **kwargs):
-
- # In case of setup, no login methods can be accessed
- if SETUP is not None:
- redirect("/setup")
-
- s = request.environ.get('beaker.session')
- api = get_user_api(s)
- if api is not None:
- if perm:
- if api.user.hasPermission(perm):
- if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
- return HTTPError(403, "Forbidden")
- else:
- return redirect("/nopermission")
-
- kwargs["api"] = api
- return func(*args, **kwargs)
- else:
- if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
- return HTTPError(403, "Forbidden")
- else:
- return redirect("/login")
-
- return _view
-
- return _dec