summaryrefslogtreecommitdiffstats
path: root/pyload/webui/app/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/webui/app/utils.py')
-rw-r--r--pyload/webui/app/utils.py124
1 files changed, 0 insertions, 124 deletions
diff --git a/pyload/webui/app/utils.py b/pyload/webui/app/utils.py
deleted file mode 100644
index 5663c6f58..000000000
--- a/pyload/webui/app/utils.py
+++ /dev/null
@@ -1,124 +0,0 @@
-# -*- coding: utf-8 -*-
-# @author: RaNaN, vuolter
-
-import os
-
-import bottle
-
-from pyload.Api import has_permission, PERMS, ROLE
-from pyload.webui import env, THEME
-
-
-def render_to_response(file, args={}, proc=[]):
- for p in proc:
- args.update(p())
- path = "tml/" + file
- return env.get_template(path).render(**args)
-
-
-def parse_permissions(session):
- perms = dict((x, False) for x in dir(PERMS) if not x.startswith("_"))
- perms['ADMIN'] = False
- perms['is_admin'] = False
-
- if not session.get("authenticated", False):
- return perms
-
- if session.get("role") == ROLE.ADMIN:
- for k in perms.iterkeys():
- perms[k] = True
-
- elif session.get("perms"):
- p = session.get("perms")
- get_permission(perms, p)
-
- return perms
-
-
-def permlist():
- return [x for x in dir(PERMS) if not x.startswith("_") and x != "ALL"]
-
-
-def get_permission(perms, p):
- """Returns a dict with permission key
-
- :param perms: dictionary
- :param p: bits
- """
- for name in permlist():
- perms[name] = has_permission(p, getattr(PERMS, name))
-
-
-def set_permission(perms):
- """generates permission bits from dictionary
-
- :param perms: dict
- """
- permission = 0
- for name in dir(PERMS):
- if name.startswith("_"):
- continue
-
- if name in perms and perms[name]:
- permission |= getattr(PERMS, name)
-
- return permission
-
-
-def set_session(request, info):
- s = request.environ.get('beaker.session')
- s['authenticated'] = True
- s['user_id'] = info['id']
- s['name'] = info['name']
- s['role'] = info['role']
- s['perms'] = info['permission']
- s['template'] = info['template']
- s.save()
-
- return s
-
-
-def parse_userdata(session):
- return {"name" : session.get("name", "Anonymous"),
- "is_admin" : session.get("role", 1) == 0,
- "is_authenticated": session.get("authenticated", False)}
-
-
-def login_required(perm=None):
-
- def _dec(func):
-
- def _view(*args, **kwargs):
- s = request.environ.get('beaker.session')
- if s.get("name", None) and s.get("authenticated", False):
- if perm:
- perms = parse_permissions(s)
- if perm not in perms or not perms[perm]:
- if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
- return bottle.HTTPError(403, "Forbidden")
- else:
- return bottle.redirect("/nopermission")
-
- return func(*args, **kwargs)
- else:
- if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
- return bottle.HTTPError(403, "Forbidden")
- else:
- return bottle.redirect("/login")
-
- return _view
-
- return _dec
-
-
-def toDict(obj):
- return dict((att, getattr(obj, att)) for att in obj.__slots__)
-
-
-class CherryPyWSGI(ServerAdapter):
-
- def run(self, handler):
- from wsgiserver import CherryPyWSGIServer
-
- server = CherryPyWSGIServer((self.host, self.port), handler)
- server.start()