# This is a sample scripted auth implementation with a couple users with the password 'changeme'
from commonAuth import *

# Maps users to roles - All users must be lowercase
# Roles should be lowercase as well, but there's some uppercase for testing
umap = { 'scriptedadmin' : ['admin','user','foo'],
         'foobar' : ['user'],
         'upperuser' : ['UsEr'] }

def userLogin( args ):
    # Everyone's password is 'changeme'
    if args[USERNAME] in umap and args['password'] == 'changeme':
        print SUCCESS
    else:
        print FAILED

def getUserInfo( args ):
    # Use the same name for userId (deprecated), username, realname
    un = args[USERNAME]
    if un in umap:
        print SUCCESS + ' --userInfo=' + un + ';' + un + ';' + un + ';' + ':'.join(umap[un])
    else:
        print FAILED

def getUsers( args ):
    out = SUCCESS
    for u, r in umap.iteritems():
        out += ' --userInfo=' + u + ';' + u + ';' + u + ';' + ':'.join(r)

    print out

def getSearchFilter( args ):
    # Ignore search filters
    if args[USERNAME] in umap:
        print SUCCESS
    else:
        print FAILED

if __name__ == "__main__":
    callName = sys.argv[1]
    dictIn = readInputs()

    returnDict = {}
    if callName == "userLogin":
        userLogin( dictIn )
    elif callName == "getUsers":
        getUsers( dictIn )
    elif callName == "getUserInfo":
        getUserInfo( dictIn )
    elif callName == "getSearchFilter":
        getSearchFilter( dictIn )
    else:
        print "ERROR unknown function call: " + callName
