view wikked/api/user.py @ 455:b478eb51c4d5

wk: PEP8/pyflakes cleanup.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 10 Jan 2018 21:21:25 -0800
parents 6cd51ea6dfcf
children 6c8f90e47338
line wrap: on
line source

from flask import jsonify, abort, request
from flask.ext.login import logout_user, current_user
from wikked.web import app, get_wiki
from wikked.webimpl.admin import do_login_user


@app.route('/api/user/login', methods=['POST'])
def api_user_login():
    if do_login_user():
        username = request.form.get('username')
        result = {'username': username, 'logged_in': 1}
        return jsonify(result)
    abort(401)


@app.route('/api/user/is_logged_in')
def api_user_is_logged_in():
    if current_user.is_authenticated():
        result = {'logged_in': True}
        return jsonify(result)
    abort(401)


@app.route('/api/user/logout', methods=['POST'])
def api_user_logout():
    logout_user()
    result = {'ok': 1}
    return jsonify(result)


@app.route('/api/user/info')
def api_current_user_info():
    user = current_user
    if user.is_authenticated():
        result = {
            'user': {
                'username': user.username,
                'groups': user.groups
            }
        }
        return jsonify(result)
    return jsonify({'user': False})


@app.route('/api/user/info/<name>')
def api_user_info(name):
    wiki = get_wiki()
    user = wiki.auth.getUser(name)
    if user is not None:
        result = {
            'user': {
                'username': user.username,
                'groups': user.groups
            }
        }
        return jsonify(result)
    abort(404)