Ejemplo n.º 1
0
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'}
Ejemplo n.º 2
0
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'}
Ejemplo n.º 3
0
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')
Ejemplo n.º 5
0
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')
Ejemplo n.º 8
0
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')
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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]
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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]