# -*- coding: utf-8 -*-

paytor_roles = [
    # WARNING! Mind the order!
    "paytor_admin",
    "paytor_staff",
    "paytor_operator",
    "paytor_guest"
]

def get_paytor_role():
    """ Get current highest paytor user role """
    for r in paytor_roles:
        if r in auth.user_groups.values():
            return r[7:]

manager = 'manager'

if db(db.auth_group.role==manager).count()==0:
    manager_id = auth.add_group(
        manager,
        """Members of this group has access to the app configurations"""
    )
else:
    manager_id = db(db.auth_group.role==manager).select(db.auth_group.id).first().id

if current.development:
    guest = auth.get_or_create_user(
        keys = dict(
            email = "guest@nowhere.com",
            first_name = "guest",
            last_name = "guest",
            password = db.auth_user.password.validate('guest')[0]
        ),
        update_fields = [],
        login = False
    )
    mymanager = auth.get_or_create_user(
        keys = dict(
            email = "manager@somewhere.com",
            first_name = "manager",
            last_name = "manager",
            password = db.auth_user.password.validate('Manager')[0]
        ),
        update_fields = [],
        login = False
    )
    if not auth.has_membership(user_id=mymanager.id, role=manager):
        auth.add_membership(manager_id, mymanager.id)

if current.development and auth.user_id is None:
    auth.login_user(mymanager)

