security.py 578 Bytes
from .models.ziggurat import (
    User,
    UserGroup,
    )


def group_finder(login, request):
    q = request.dbsession.query(User).filter_by(id=login)
    u = q.first()
    if not u or not u.status:
        return  # None means logout
    r = []
    q = request.dbsession.query(UserGroup).filter_by(user_id=u.id)
    for ug in q:
        acl_name = f'group:{ug.group_id}'
        r.append(acl_name)
    return r


def get_user(request):
    uid = request.authenticated_userid
    if uid:
        q = request.dbsession.query(User).filter_by(id=uid)
        return q.first()