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)
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
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('用户不存在')
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('用户不存在')
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('密码错误!')
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('用户创建成功')