예제 #1
0
    def inner(user_state, access_log, *args, **kwargs):
        count = 0
        if not user_state['is_login']:
            while count < 3:
                inp_card_id = input('请输入卡号[q退出]:')
                if inp_card_id == 'q':
                    break
                inp_password = input('请输入密码:')
                user_data = account_manage.account_load(
                    inp_card_id, 'common_user')
                if user_data:
                    user_state['is_login'] = auth(user_data, inp_password)
                    if user_state['is_login']:
                        user_state['user_data'] = user_data
                        func()
                        access_log.info('%s is login' % inp_card_id)
                        return user_state
                    else:
                        print('密码错误!')
                        count += 1
                        access_log.warning(
                            '%s try to login, but the password wrong' %
                            inp_card_id)
                    if count == 3:
                        user_data['state'] = 'inactive'
                        account_manage.account_save(user_data, 'common_user')
                        print('由于输入次数过多,账户已被冻结')
                        access_log.info('% has been locked' % inp_card_id)
                        break
                else:
                    print('用户不存在')

        else:
            func(*args, **kwargs)
예제 #2
0
def create_admin(username, password):
    '''
    创建管理员账号
    :param username:管理员账号
    :param password: 管理员密码
    :return:
    '''
    admin_obj = admin.admin_action(username, password)
    account_manage.account_save(admin_obj, 'admin')
    return True
예제 #3
0
파일: admin.py 프로젝트: cs4224485/ATM
 def freeze():
     """ 冻结账户 """
     card_id = input('请输入用冻结的id:')
     user_data = account_manage.account_load(card_id.strip(), 'common_user')
     if user_data:
         user_data['state'] = 'inactive'
         account_manage.account_save(user_data, 'common_user')
         print('用户已被冻结')
     else:
         print('用户不存在')
예제 #4
0
파일: admin.py 프로젝트: cs4224485/ATM
 def change_credit():
     ''' 调整信用额度 '''
     card_id = input('请输入要修改的ID:')
     change_amount = input('请输入要增加的金额:')
     user_data = account_manage.account_load(card_id.strip(), 'common_user')
     if user_data:
         user_data['credit_limit'] += int(change_amount)
         user_data['balance'] += int(change_amount)
         account_manage.account_save(user_data, 'common_user')
         print('修改成功!')
     else:
         print('用户不存在')
예제 #5
0
파일: main.py 프로젝트: cs4224485/ATM
def modify_password(user_data, *args):
    ''' 修改密码 '''
    before_password = input('请输入原密码:')
    before_passwd_hash = hashlib.md5()
    before_passwd_hash.update(before_password.encode('utf8'))
    if before_passwd_hash.hexdigest() == user_data['password']:
        change_password = input('请输入新密码: ')
        change_passwd_hash = hashlib.md5()
        change_passwd_hash.update(change_password.encode('utf8'))
        user_data['password'] = change_passwd_hash.hexdigest()
        account_manage.account_save(user_data, 'common_user')
        print('\033[32m密码修改成功\033[0m')
    else:
        print('密码错误!')
예제 #6
0
파일: admin.py 프로젝트: cs4224485/ATM
    def create_user():
        '''
        建立用户信息
        :return:
        '''

        # 生成创建时间和到期时间
        date = datetime.datetime.now()
        create_date = '%s-%s-%s' % (date.year, date.month, date.day)
        end_time = date.replace(date.year + 10)
        expire_date = '%s-%s-%s' % (end_time.year, end_time.month, end_time.day)

        # 生成随机ID
        number = []
        for i in range(10):
            num = str(random.randint(0, 9))
            number.append(num)
        number = ''.join(number)

        passwd = input('请设置密码:')
        md5_obj = hashlib.md5()
        md5_obj.update(bytes(passwd, encoding='utf8'))

        user_data = {
            'id': number,
            'password': md5_obj.hexdigest(),   # 初始化密码
            'create_date': create_date,
            'expire_date': expire_date,
            'credit_limit': 15000,
            'balance': 15000,
            'history_list': [],
            'state': 'active'
        }

        # 存储用户信息
        is_saved = account_manage.account_save(user_data, 'common_user')
        if is_saved:
            print('用户创建成功')