def auth(db_type):
def deco(func):
def wrapper(*args, **kwargs):
name = input("your name: ").strip()
pwd = input("your password: ").strip()
if db_type == 'file':
print('from file')
if name == 'SEPIA' and pwd == '123':
print('login successful')
res = func(*args, **kwargs)
return res
else:
print('user or password error')
elif db_type == 'mysql':
print('from mysql')
if name == 'SEPIA' and pwd == '123':
print('login successful')
res = func(*args, **kwargs)
return res
else:
print('user or password error')
elif db_type == 'ldap':
print('from ldap')
if name == 'SEPIA' and pwd == '123':
print('login successful')
res = func(*args, **kwargs)
return res
else:
print('user or password error')
else:
print('not supported db_type: ', db_type)
return wrapper
return deco
@auth(db_type='file')
def index(x, y):
print('index==>%s %s' % (x, y))
@auth(db_type='mysql')
def home(name):
print('name==>%s ' % name)
@auth(db_type='ldap')
def transfer(name):
print('transfer==>%s ' % name)
index(1, 2)
home('sa')
transfer('kk')