def _revoke_apps(db, appid): email = get_user() if email is None: return {'result': 'error'} apps = db.query(ApplicationUser).filter_by(email=email, appid=appid) apps.delete() return {'result': 'OK'}
def myapps(db): email = get_user() if email is None: apps = [] else: apps = db.query(Application).filter_by(email=email) return {'title': 'Mozilla Presence', 'session': request.environ.get('beaker.session'), 'apps': apps}
def post_app(db): email = get_user() if email is None: abort(401, "Authorization required") # XXX CRSF protection etc.. data = dict(request.POST) data['email'] = email app = Application(**data) db.add(app) redirect('/myapps')
def myapps(db): email = get_user() if email is None: apps = [] else: apps = db.query(Application).filter_by(email=email) return { 'title': 'Mozilla Presence', 'session': request.environ.get('beaker.session'), 'apps': apps }
def activate_app(db): email = get_user() if email is None: abort(401, "Authorization required") # XXX CRSF protection etc.. name = request.POST['name'] app = db.query(Application).filter_by(email=email, name=name) app = app.first() if app is not None: app.notified = 'activate' in request.POST redirect('/myapps')
def post_grant(appid, db): email = get_user() if email is None: abort(401, "Authorization required") redirect_url = request.POST['redirect'] if 'allow' in request.POST: app_user = ApplicationUser(appid, email) db.add(app_user) uid = app_user.uid redirect_url += '?' + 'Presence-UID=%s' % str(uid) code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302 response = HTTPResponse("", status=code, Location=redirect_url) raise response
def _get_apps(db): email = get_user() if email is not None: # XXX will do a join or something app_ids = [app.appid for app in db.query(ApplicationUser).filter_by(email=email)] if app_ids == []: apps = [] else: in_ = Application.__table__.c.uid.in_ apps = db.query(Application).filter(in_(app_ids)) else: apps = [] return [{'name': app.name, 'uid': app.uid} for app in apps]
def _get_apps(db): email = get_user() if email is not None: # XXX will do a join or something app_ids = [ app.appid for app in db.query(ApplicationUser).filter_by(email=email) ] if app_ids == []: apps = [] else: in_ = Application.__table__.c.uid.in_ apps = db.query(Application).filter(in_(app_ids)) else: apps = [] return [{'name': app.name, 'uid': app.uid} for app in apps]