示例#1
0
def acc_auth_ordinary(account, password):
    """
    普通认证接口,局限于文件处理  #  下面的 acc_auth() 已进行优化,可拓展 链接数据库
    :param account: credit account number
    :param password: credit card password
    :return: if passed the authentication , return the account object, otherwise ,return None
           : 如果通过认证,返回从文件加载的用户数据;否则返回空
    """
    db_path = db_handler.db_handler(settings.DATABASE)  # 用户账户路径
    account_file = '%s%s.json' % (db_path, account)  # 用户文件
    if os.path.isfile(account_file):  # 如果本地有该用户数据文件(已经注册的用户)
        with open(account_file, 'r') as f:
            account_data = json.load(f)
            if account_data['password'] == password:
                # 信用卡过期时间
                Expire_Time = time.mktime(
                    time.strptime(account_data['Expire Date'], '%Y-%m-%d'))
                if time.time() > Expire_Time:  # 信用卡失效
                    print('\033[31;1m账号 [%s] 已经失效, 请与联系银行办理新的信用卡!\033[0m' %
                          account)
                else:  # 通过认证则返回存储在本地的用户账户数据
                    return account_data
            else:
                print('\033[31;1m账号或密码错误!\033[0m')
    else:
        print('\033[31;1m账户 [%s] 不存在!\033[0m' % account)
示例#2
0
def acc_login_v(account, password, log_obj):
    """
    登录验证
    :param account:
    :param password:
    :param log_obj:
    :return:
    """

    db_path = r'%s/%s' % (db_handler(DATABASE), account)
    if os.path.exists(db_path):
        with open(db_path, 'r') as acc_f:
            account_data = json.load(acc_f)
        if account_data['acc_status'] != 0:
            log_obj.info(
                'user {0} login failed, account is locked '.format(account))
            return False
        else:
            if account_data['password'] == password:
                log_obj.info('user {0} login success'.format(account))
                # print(type(account_data), account_data)
                del account_data['password']
                return account_data
            else:
                log_obj.info(
                    'user {0} login failed, wrong password'.format(account))
                return False
    else:
        log_obj.info('user {0} login failed, no such account'.format(account))
        return False
示例#3
0
def load_current_balance(account_id):
    """
    # 返回当前账户信息
    return account balance and other basic info
    :param account_id:
    :return:
    """
    db_api = db_handler.db_handler()
    data = db_api('select * from account where account=%s' % account_id)
    return data
示例#4
0
def dump_account(account_data):
    """
    # 更新事务或帐户数据后,将其转储回文件db
    after updated transaction or account data , dump it back to file db
    :param account_data:
    :return:
    """
    db_api = db_handler.db_handler()
    data = db_api("update user where account=%s" % account_data['Account'],
                  account_data=account_data)

    return True
示例#5
0
def change_user_data(account, **kwargs):
    """
    修改用户信息并返回用户新信息
    :param account:
    :param kwargs:
    :return:
    """
    db_path = r'%s/%s' % (db_handler( DATABASE ), account)
    with open( db_path, 'r' ) as acc_f:
        account_data = json.load(acc_f)
    if kwargs != {}:
        for i in kwargs:
            account_data[i] = kwargs.get(i)
        with open( db_path, 'w' ) as acc_f:
            json.dump(account_data, acc_f)
    del account_data['password']
    return account_data
示例#6
0
def acc_auth(account, password):
    """
    优化认证接口,可拓展数据库
    :param account: credit account number
    :param password: credit card password
    :return: if passed the authentication , return the account object, otherwise ,return None
           : 如果通过认证,返回从文件加载的用户数据;否则返回空
    """
    db_api = db_handler.db_handler()
    data = db_api('select * from account where account=%s' % account)
    if data['Password'] == password:
        Expire_Time = time.mktime(
            time.strptime(data['Expire Date'], '%Y-%m-%d'))
        if time.time() > Expire_Time:
            print('\033[31;1m账号 [%s] 已经失效, 请与联系银行办理新的信用卡!\033[0m' % account)
        else:
            return data
    else:
        print('\033[31;1m账号或密码错误!\033[0m')