def set_permission(): while True: name = input_string('请输入要删除的用户名', name=True) if not utils.checkpath(USER_FILE % (name, name)): logger.warning('用户%s不存在!' % name) return params = {'mode': 'r', 'file_path': USER_FILE % (name, name)} user_info = utils.file_handler(**params) action_menu = { '1': ['admin', '管理员'], '2': ['user', '普通用户'], } print('=' * 30) for k, v in action_menu.items(): print('%-6s %-10s' % (k, v[1])) print('=' * 30) code = input_string('请输入操作编码') if code in action_menu: permission = action_menu[code][0] else: logger('操作编码非法!') continue if permission == 'admin': user_info['permission'] = 'admin' if permission == 'user': user_info['permission'] = 'user' params = { 'mode': 'r', 'file_path': USER_FILE % (name, name), 'data': user_info } utils.file_handler(**params) logger.info('设置用户%s权限为%s成功!' % (name, permission)) return True
def login(): ''' Function login to login shopping mall :return: True or None ''' global CURRENT_USER, COOKIES while True: name = input_string('用户名', name=True) if not utils.checkpath(settings.USER_FILE % (name, name)): logger.warning('用户%s没有注册,请您先注册!' % name) break if name in COOKIES: logger.info('用户%s已经是登陆状态!' % name) CURRENT_USER = name return True password = input_string('密码') params = {'file_path': settings.USER_FILE % (name, name), 'mode': 'r'} user_info = utils.file_handler(**params) if password != user_info['password']: logger.warning('用户%s密码错误!' % name) continue logger.info('用户%s登陆成功!' % name) CURRENT_USER = name COOKIES[name] = { 'balance': user_info['balance'], 'credit_balance': user_info['credit_balance'], 'credit_limit': user_info['credit_limit'], 'bill': user_info['bill'] } load_user_shopping_cart(name) return True
def register(credit_limit=50000): ''' Funtion register to user register :param credit_limit: user's credit limit :return: True or None ''' name = input_string('用户名', name=True) if utils.checkpath(settings.USER_FILE % (name, name)): logger.warning('用户%s已经注册,请直接登陆!' % name) return password = input_string('密码', register=True) params = { 'file_path': settings.USER_FILE % (name, name), 'mode': 'w', 'data': { 'name': name, 'password': password, 'permission': 'user', # admin: 管理员 user: 普通用户 'status': 0, # 0:正常 1: 锁定用户 'balance': 0, 'credit_balance': credit_limit, 'credit_limit': credit_limit, # 0 冻结 'bill': 0 } } if utils.file_handler(**params): logger.info('用户%s注册成功!' % name) return True
def get_shopping_orders(month=None): if not month: month = datetime.datetime.now().strftime('%Y%m') order_dir = settings.ORDER_DIR % (CURRENT_USER, month) if utils.checkpath(order_dir): file_list = os.listdir(order_dir) print('=' * 50) print('%s 订单信息:' % month) for f in file_list: params = {'mode': 'r', 'file_path': os.path.join(order_dir, f)} data = utils.file_handler(**params) print(data) print('=' * 50)
def lock_user(): name = input_string('请输入要锁定的用户名', name=True) if not utils.checkpath(USER_FILE % (name, name)): logger.warning('用户%s不存在!' % name) return params = {'mode': 'r', 'file_path': USER_FILE % (name, name)} user_info = utils.file_handler(**params) user_info['status'] = 1 params = { 'mode': 'r', 'file_path': USER_FILE % (name, name), 'data': user_info } utils.file_handler(**params) logger.info('锁定用户%s成功!' % name) return True
def remove_user(): name = input_string('请输入要删除的用户名', name=True) if not utils.checkpath(USER_FILE % (name, name)): logger.warning('用户%s不存在!' % name) return params = {'mode': 'r', 'file_path': USER_FILE % (name, name)} user_info = utils.file_handler(**params) if user_info['bill'] > 0: logger.warning('用户%s本期账单未还清,无法删除用户!' % name) return if user_info['credit_balance'] < user_info['credit_limit']: logger.warning('用户%s信用卡有未出账账单,无法删除用户!' % name) return if user_info['balance'] > 0: logger.warning('用户%s有账户余额未消费,无法删除用户!' % name) return os.remove(os.path.join(USER_DIR, name)) logger.info('删除用户%s完成!' % name) return True