Example #1
0
 def change_password():
     '''
     修改密码函数
     :return: 无
     '''
     flag = True
     while flag:
         customer = shopping.get_crurrent_customer()
         if not customer:
             input('您还没有登录,不能修改密码,请先登录,按任意键继续')
             flag = False
             continue
         # 获取用户输入的旧密码
         # old_password = input('原密码(输入r返回上级菜单): ').strip()
         # old_password = mylib.validate_input('\d', 'dafdsf', is_pass=True)
         old_password = mylib.validate_input(r'^.{6,15}$',
                                             '原密码: ',
                                             '输入提示: 输入r返回上级菜单',
                                             is_pass=True)
         # 判断用户输入的是否是r,如果是r退出循环
         if old_password == 'r':
             flag = False
             continue
         # 获取用户输入的新密码及确认密码
         # new_password = input('新密码: ').strip()
         new_password = mylib.validate_input(
             r'^.{6,15}$',
             '密码: ',
             '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单',
             is_pass=True)
         # confirm_password = input('确认密码: ').strip()
         confirm_password = mylib.validate_input(
             r'^.{6,15}$',
             '确认密码: ',
             '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单',
             is_pass=True)
         old_password = mylib.jiami(old_password)
         # 判断旧密码是否正确
         if old_password == customer['password']:
             # 判断新密码是否和确认密码一致
             if new_password == confirm_password:
                 new_password = mylib.jiami(new_password)
                 # 判断新密码是否和旧密码不一样
                 if new_password != old_password:
                     # 修改密码
                     customer['password'] = new_password
                     res, msg = cu.update_customer(customer)
                     input('密码%s,按任意键返回上级菜单' % msg)
                     logger.info('用户%s修改密码,%s' %
                                 (customer['username'], msg))
                     flag = False
                 else:
                     input('新密码和旧密码不能一样,按任意键继续')
             else:
                 input('新密码和确认密码不一致,按任意键继续')
         else:
             input('原密码错误,按任意键继续')
Example #2
0
 def change_password():
     '''
     修改密码函数
     :return: 无
     '''
     flag = True
     while flag:
         account = atm.get_crurrent()
         # 获取用户输入的旧密码
         # old_password = input('原密码(输入r返回上级菜单): ').strip()
         # old_password = mylib.validate_input('\d', 'dafdsf', is_pass=True)
         old_password = mylib.validate_input(r'^.{6,15}$',
                                             '原密码: ',
                                             '输入提示: 输入r返回上级菜单',
                                             is_pass=True)
         # 判断用户输入的是否是r,如果是r退出循环
         if old_password == 'r':
             flag = False
             continue
         # 获取用户输入的新密码及确认密码
         # new_password = input('新密码: ').strip()
         new_password = mylib.validate_input(
             r'^.{6,15}$',
             '密码: ',
             '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单',
             is_pass=True)
         # confirm_password = input('确认密码: ').strip()
         confirm_password = mylib.validate_input(
             r'^.{6,15}$',
             '确认密码: ',
             '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单',
             is_pass=True)
         old_password = mylib.jiami(old_password)
         # 判断旧密码是否正确
         if old_password == account['password']:
             # 判断新密码是否和确认密码一致
             if new_password == confirm_password:
                 new_password = mylib.jiami(new_password)
                 # 判断新密码是否和旧密码不一样
                 if new_password != old_password:
                     # 修改密码
                     account['password'] = new_password
                     res, msg = ac.update_account(account)
                     input('密码%s,按任意键返回上级菜单' % msg)
                     logger.info('atm_main:%s修改密码,%s' %
                                 (atm.get_crurrent()['cardid'], msg))
                     flag = False
                 else:
                     input('新密码和旧密码不能一样,按任意键继续')
             else:
                 input('新密码和确认密码不一致,按任意键继续')
         else:
             input('原密码错误,按任意键继续')
Example #3
0
        def wrapper(self,*args, **kwargs):

            if self.__current_account: # 判断是否已经登录
                return funce(self, *args, **kwargs)
            while True: # 如果没有登录执行循环
                cardid = mylib.validate_input(r'^\d{9}$','卡号(输入quit退出认证): ', back_str = 'quit')
                if cardid == 'quit':
                    msg = '认证失败'
                    break
                password = getpass.getpass('密码: ').strip()
                res,msg = self.__account.find_by_id(cardid)
                if not res:
                    input('卡号或密码错误!!请重新输入,按任意键继续。')
                    continue
                if res.get('status') != '正常':
                    input('您的账户已经%s,请联系银行客服:95588' %res.get('status'))
                    continue
                if mylib.jiami(password) == res.get('password'):
                    input('认证成功,按任意键继续')
                    self.__current_account = res
                    return funce(self, *args, **kwargs)
                else:
                    res['error_count'] += 1 #登陆失败次数加1

                    if res['error_count'] == conf.MAX_ERROR_COUNT: # 判断是否错误次数是否达到阀值
                        #锁定用户
                        res['status'] = '锁定'
                        input('您的账户已被锁定,请联系银行客服:95588')
                    else:
                        input('卡号或密码错误!!请重新输入,按任意键继续。')
                    self.__account.update_account(res) # 保存用户信息,主要是修改次数累加和状态
Example #4
0
        def wrapper(self, *args, **kwargs):

            if self.__current_account:  # 判断是否已经登录
                return funce(self, *args, **kwargs)
            while True:  # 如果没有登录执行循环
                # accounts = self.__account.get_accounts()
                cardid = mylib.validate_input(r"^\d{9}$", "卡号(输入quit退出认证): ", back_str="quit")
                if cardid == "quit":
                    msg = "认证失败"
                    # return False, msg
                    break
                password = getpass.getpass("密码: ").strip()
                # password = input('密码: ').strip()
                res, msg = self.__account.find_by_id(cardid)

                if not res:
                    input("卡号或密码错误!!请重新输入,按任意键继续。")
                    continue
                if res.get("status") != "正常":
                    input("您的账户已经%s,请联系银行客服:95588" % res.get("status"))
                    continue
                if mylib.jiami(password) == res.get("password"):
                    input("认证成功,按任意键继续")
                    self.__current_account = res
                    return funce(self, *args, **kwargs)
                else:
                    res["error_count"] += 1  # 登陆失败次数加1

                    if res["error_count"] == conf.MAX_ERROR_COUNT:  # 判断是否错误次数是否达到阀值
                        # 锁定用户
                        res["status"] = "锁定"
                        input("您的账户已被锁定,请联系银行客服:95588")
                    else:
                        input("卡号或密码错误!!请重新输入,按任意键继续。")
                    self.__account.update_account(res)  # 保存用户信息,主要是修改次数累加和状态
    def insert_customer(self, username, password, name, tel, mail, address):
        '''
        创建用户类
        :param username: 用户名
        :param password: 密码
        :param name: 姓名
        :param tel: 联系电话
        :param mail: 电子邮件
        :param address: 地址
        :return: 成功返回True,失败返回Fasle
        '''
        if self.__check_user(username):
            # 判断用户是否存在
            msg = '用户名'
            return False, msg

        customer_info = {
            "address": address,
            "password": mylib.jiami(password),
            "username": username,
            "name": name,
            "mail": mail,
            "tel": tel,
            "cart": []
        }
        self.__customers.append(customer_info)
        if self.__save_customers():
            msg = '创建用户成功'
            return True, msg
        else:
            msg = '创建用户失败'
            self.__customers.remove(customer_info) # 保存用户失败的话,将用户从self.__accounts删除,保证文件与内存的一致
            return False, msg
Example #6
0
    def insert_customer(self, username, password, name, tel, mail, address):
        '''
        创建用户类
        :param username: 用户名
        :param password: 密码
        :param name: 姓名
        :param tel: 联系电话
        :param mail: 电子邮件
        :param address: 地址
        :return: 成功返回True,失败返回Fasle
        '''
        if self.__check_user(username):
            # 判断用户是否存在
            msg = '用户名'
            return False, msg

        customer_info = {
            "address": address,
            "password": mylib.jiami(password),
            "username": username,
            "name": name,
            "mail": mail,
            "tel": tel,
            "cart": []
        }
        self.__customers.append(customer_info)
        if self.__save_customers():
            msg = '创建用户成功'
            return True, msg
        else:
            msg = '创建用户失败'
            self.__customers.remove(customer_info) # 保存用户失败的话,将用户从self.__accounts删除,保证文件与内存的一致
            return False, msg
Example #7
0
        def wrapper(self, *args, **kwargs):

            if self.__current_account:  # 判断是否已经登录
                return funce(self, *args, **kwargs)
            while True:  # 如果没有登录执行循环
                cardid = mylib.validate_input(r'^\d{9}$',
                                              '卡号(输入quit退出认证): ',
                                              back_str='quit')
                if cardid == 'quit':
                    msg = '认证失败'
                    break
                password = getpass.getpass('密码: ').strip()
                res, msg = self.__account.find_by_id(cardid)
                if not res:
                    input('卡号或密码错误!!请重新输入,按任意键继续。')
                    continue
                if res.get('status') != '正常':
                    input('您的账户已经%s,请联系银行客服:95588' % res.get('status'))
                    continue
                if mylib.jiami(password) == res.get('password'):
                    input('认证成功,按任意键继续')
                    self.__current_account = res
                    return funce(self, *args, **kwargs)
                else:
                    res['error_count'] += 1  #登陆失败次数加1

                    if res['error_count'] == conf.MAX_ERROR_COUNT:  # 判断是否错误次数是否达到阀值
                        #锁定用户
                        res['status'] = '锁定'
                        input('您的账户已被锁定,请联系银行客服:95588')
                    else:
                        input('卡号或密码错误!!请重新输入,按任意键继续。')
                    self.__account.update_account(res)  # 保存用户信息,主要是修改次数累加和状态
 def change_password():
     '''
     修改密码函数
     :return: 无
     '''
     flag = True
     while flag:
         customer = shopping.get_crurrent_customer()
         if not customer:
             input('您还没有登录,不能修改密码,请先登录,按任意键继续')
             flag = False
             continue
         # 获取用户输入的旧密码
         # old_password = input('原密码(输入r返回上级菜单): ').strip()
         # old_password = mylib.validate_input('\d', 'dafdsf', is_pass=True)
         old_password = mylib.validate_input(r'^.{6,15}$', '原密码: ', '输入提示: 输入r返回上级菜单', is_pass=True)
         # 判断用户输入的是否是r,如果是r退出循环
         if old_password == 'r':
             flag = False
             continue
         # 获取用户输入的新密码及确认密码
         # new_password = input('新密码: ').strip()
         new_password = mylib.validate_input(r'^.{6,15}$', '密码: ', '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单', is_pass=True)
         # confirm_password = input('确认密码: ').strip()
         confirm_password = mylib.validate_input(r'^.{6,15}$', '确认密码: ', '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单', is_pass=True)
         old_password = mylib.jiami(old_password)
         # 判断旧密码是否正确
         if old_password == customer['password']:
             # 判断新密码是否和确认密码一致
             if new_password == confirm_password:
                 new_password = mylib.jiami(new_password)
                 # 判断新密码是否和旧密码不一样
                 if new_password != old_password:
                     # 修改密码
                     customer['password'] = new_password
                     res, msg = cu.update_customer(customer)
                     input('密码%s,按任意键返回上级菜单' %msg)
                     logger.info('用户%s修改密码,%s' %(customer['username'], msg))
                     flag = False
                 else:
                     input('新密码和旧密码不能一样,按任意键继续')
             else:
                input('新密码和确认密码不一致,按任意键继续')
         else:
             input('原密码错误,按任意键继续')
 def change_password():
     '''
     修改密码函数
     :return: 无
     '''
     flag = True
     while flag:
         account = atm.get_crurrent()
         # 获取用户输入的旧密码
         # old_password = input('原密码(输入r返回上级菜单): ').strip()
         # old_password = mylib.validate_input('\d', 'dafdsf', is_pass=True)
         old_password = mylib.validate_input(r'^.{6,15}$', '原密码: ', '输入提示: 输入r返回上级菜单', is_pass=True)
         # 判断用户输入的是否是r,如果是r退出循环
         if old_password == 'r':
             flag = False
             continue
         # 获取用户输入的新密码及确认密码
         # new_password = input('新密码: ').strip()
         new_password = mylib.validate_input(r'^.{6,15}$', '密码: ', '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单', is_pass=True)
         # confirm_password = input('确认密码: ').strip()
         confirm_password = mylib.validate_input(r'^.{6,15}$', '确认密码: ', '输入提示: 密码长度介于6~15个字符,输入r返回上级菜单', is_pass=True)
         old_password = mylib.jiami(old_password)
         # 判断旧密码是否正确
         if old_password == account['password']:
             # 判断新密码是否和确认密码一致
             if new_password == confirm_password:
                 new_password = mylib.jiami(new_password)
                 # 判断新密码是否和旧密码不一样
                 if new_password != old_password:
                     # 修改密码
                     account['password'] = new_password
                     res, msg = ac.update_account(account)
                     input('密码%s,按任意键返回上级菜单' %msg)
                     logger.info('atm_main:%s修改密码,%s' %(atm.get_crurrent()['cardid'], msg))
                     flag = False
                 else:
                     input('新密码和旧密码不能一样,按任意键继续')
             else:
                input('新密码和确认密码不一致,按任意键继续')
         else:
             input('原密码错误,按任意键继续')
Example #10
0
 def login(self, username, password):
     res, msg = self.__customer.find_by_username(username)
     #print(customer)
     if res and res['password'] == mylib.jiami(password):
         self.__current_customer = res
         if self.__tmp_cart:
             for item in self.__tmp_cart:
                 self.add_to_shopping_cart(item, item['num'])
                 self.__tmp_cart = []
             self.__customer.update_customer(self.__current_customer)
         return True
     else:
         return False
 def login(self, username, password):
     res, msg = self.__customer.find_by_username(username)
     #print(customer)
     if res and res['password'] == mylib.jiami(password):
         self.__current_customer = res
         if self.__tmp_cart:
             for item in self.__tmp_cart:
                 self.add_to_shopping_cart(item, item['num'])
                 self.__tmp_cart = []
             self.__customer.update_customer(self.__current_customer)
         return True
     else:
         return False
Example #12
0
    def insert_account(self, cardid, name, tel, mail, address, max_balance=0):
        '''
        创建用户类
        :param cardid: 卡号
        :param name: 账户名
        :param tel: 联系电话
        :param mail: 电子邮件
        :param address: 地址
        :param max_balance: 最大可用额度,默认值为配置文件中的MAX_BALANCE值
        :return: 成功返回True,失败返回Fasle
        '''
        if self.__check_user(cardid):
            # 判断用户是否存在
            msg = '卡号已经存在'
            return False, msg

        if max_balance == 0:
            max_balance = conf.MAX_BALANCE
        account_info = {
            "cardid": cardid,  # 卡号
            "password": mylib.jiami(conf.DEFAULT_PASSWORD),  # 密码
            "name": name,  # 持卡人姓名
            "tel": tel,  # 持卡人电话
            "mail": mail,  # 持卡人邮件,可以考虑邮件发送账单
            "address": address,  # 持卡人地址
            "max_balance": max_balance,  # 最高可用余额
            "balance": max_balance,  # 当前余额
            "cash": max_balance / 2,  # 提现余额
            "arrearage": 0,  # 欠款,用来判断是否还清欠款
            "arrearage_sum": 0,  # 欠款总额,用来计算利息
            "is_arrearage": False,
            "bill": {  # 账单
            },
            "transaction_detail": [],
            "status": "正常",  #账户状态正常、锁定、冻结
            "error_count": 0  #密码输入错误次数
        }
        self.__accounts.append(account_info)
        #accounts = self.__read_accounts()
        #accounts.append(account_info)
        #filestr = json.dumps(account_info, self.__account_file)
        #print(json.dumps(accounts))
        if self.__save_accounts():
            msg = '创建用户成功'
            return True, msg
        else:
            msg = '创建用户失败'
            self.__accounts.remove(
                account_info)  # 保存用户失败的话,将用户从self.__accounts删除,保证文件与内存的一致
            return False, msg
Example #13
0
 def auth(self, user_input):
     '''
     认证方法
     :param user_input: 用户输入命令
     :return:
     '''
     username = input('username: '******'password: '******'auth|%s|%s' % (username, mylib.jiami(password)))) # 调用服务端的认证方法,验证用户名密码
     res = mylib.b2s(self.__sk.recv(100)) # 获取验证结果
     print(res)
     if res == 'ok': # 如果验证成功,修改当前用户名和登录状态
         self.__current_user = username
         self.__is_login = True
    def insert_account(self, cardid, name, tel, mail, address, max_balance = 0):
        '''
        创建用户类
        :param cardid: 卡号
        :param name: 账户名
        :param tel: 联系电话
        :param mail: 电子邮件
        :param address: 地址
        :param max_balance: 最大可用额度,默认值为配置文件中的MAX_BALANCE值
        :return: 成功返回True,失败返回Fasle
        '''
        if self.__check_user(cardid):
            # 判断用户是否存在
            msg = '卡号已经存在'
            return False, msg

        if max_balance == 0:
            max_balance = conf.MAX_BALANCE
        account_info = {
            "cardid" : cardid, # 卡号
            "password" : mylib.jiami(conf.DEFAULT_PASSWORD), # 密码
            "name" : name, # 持卡人姓名
            "tel" : tel, # 持卡人电话
            "mail" : mail, # 持卡人邮件,可以考虑邮件发送账单
            "address" : address, # 持卡人地址
            "max_balance" : max_balance, # 最高可用余额
            "balance" : max_balance, # 当前余额
            "cash" : max_balance / 2,# 提现余额
            "arrearage" : 0, # 欠款,用来判断是否还清欠款
            "arrearage_sum" : 0, # 欠款总额,用来计算利息
            "is_arrearage" : False,
            "bill" : {# 账单
                },
            "transaction_detail" : [],
            "status" : "正常", #账户状态正常、锁定、冻结
            "error_count" : 0 #密码输入错误次数
            }
        self.__accounts.append(account_info)
        #accounts = self.__read_accounts()
        #accounts.append(account_info)
        #filestr = json.dumps(account_info, self.__account_file)
        #print(json.dumps(accounts))
        if self.__save_accounts():
            msg = '创建用户成功'
            return True, msg
        else:
            msg = '创建用户失败'
            self.__accounts.remove(account_info) # 保存用户失败的话,将用户从self.__accounts删除,保证文件与内存的一致
            return False, msg
Example #15
0
 def wrapper(self, *args, **kwargs):
     if self.__admin_login:
         return funce(self, *args, **kwargs)
     while True:  # 如果没有登录执行循环
         username = input('用户名(输入quit退出):').strip()
         if username == 'quit':
             break
         password = getpass.getpass('密码: ').strip()
         if username != conf.ADMIN_USER:
             input('用户名或密码错误,按任意键继续')
             continue
         if mylib.jiami(password) == conf.ADMIN_PASSWORD:
             input('认证成功,按任意键继续')
             self.__admin_login = True
             return funce(self, *args, **kwargs)
         else:
             input('用户名或密码错误,按任意键继续')
Example #16
0
 def wrapper(self,*args, **kwargs):
     if self.__admin_login:
         return funce(self, *args, **kwargs)
     while True: # 如果没有登录执行循环
         username = input('用户名(输入quit退出):').strip()
         if username == 'quit':
             break
         password = getpass.getpass('密码: ').strip()
         if username != conf.ADMIN_USER:
             input('用户名或密码错误,按任意键继续')
             continue
         if mylib.jiami(password) == conf.ADMIN_PASSWORD:
             input('认证成功,按任意键继续')
             self.__admin_login  = True
             return funce(self, *args, **kwargs)
         else:
             input('用户名或密码错误,按任意键继续')
Example #17
0
 def login(self, username, password):
     '''
     登录方法
     :param username: 用户名
     :param password: 密码
     :return: 成功返回True否则返回False
     '''
     res, msg = self.__customer.find_by_username(username)
     if res and res['password'] == mylib.jiami(password):
         self.__current_customer = res
         if self.__tmp_cart:
             for item in self.__tmp_cart:
                 self.add_to_shopping_cart(item, item['num'])
                 self.__tmp_cart = []
             self.__customer.update_customer(self.__current_customer)
         return True
     else:
         return False
 def login(self, username, password):
     '''
     登录方法
     :param username: 用户名
     :param password: 密码
     :return: 成功返回True否则返回False
     '''
     res, msg = self.__customer.find_by_username(username)
     if res and res['password'] == mylib.jiami(password):
         self.__current_customer = res
         if self.__tmp_cart:
             for item in self.__tmp_cart:
                 self.add_to_shopping_cart(item, item['num'])
                 self.__tmp_cart = []
             self.__customer.update_customer(self.__current_customer)
         return True
     else:
         return False
Example #19
0
 def auth(self, user_input):
     '''
     认证方法
     :param user_input: 用户输入命令
     :return:
     '''
     if len(user_input) == 1:
         username = input('username: '******'password: '******'auth|{"username":"******", "password":"******"}' %
                 (username, mylib.jiami(password))))  # 调用服务端的认证方法,验证用户名密码
         res = mylib.b2s(self.__sk.recv(200))  # 获取验证结果
         print(self.__code_list[res])
         if res == '200':  # 如果验证成功,修改当前用户名和登录状态
             self.__current_user = username
             self.__is_login = True
     else:
         print(self.__code_list['401'])
Example #20
0
 def wrapper(self, *args, **kwargs):
     # if self.__current_account: # 判断是否已经登录
     #     return funce(self, *args, **kwargs)
     if self.__admin_login:
         return funce(self, *args, **kwargs)
     while True:  # 如果没有登录执行循环
         username = input("用户名(输入quit退出):").strip()
         if username == "quit":
             msg = "认证失败"
             # return False, msg
             break
         password = getpass.getpass("密码: ").strip()
         if username != conf.ADMIN_USER:
             input("用户名或密码错误,按任意键继续")
             continue
         if mylib.jiami(password) == conf.ADMIN_PASSWORD:
             input("认证成功,按任意键继续")
             self.__admin_login = True
             return funce(self, *args, **kwargs)
         else:
             input("用户名或密码错误,按任意键继续")
Example #21
0
 def auth(self, user_input):
     '''
     认证方法
     :param user_input: 用户输入命令
     :return:
     '''
     if len(user_input) ==1:
         username = input('username: '******'password: '******'auth|{"username":"******", "password":"******"}' % (username, mylib.jiami(password)))) # 调用服务端的认证方法,验证用户名密码
         res = mylib.b2s(self.__sk.recv(200)) # 获取验证结果
         print(self.__code_list[res])
         if res == '200': # 如果验证成功,修改当前用户名和登录状态
             self.__current_user = username
             self.__is_login = True
     else:
         print(self.__code_list['401'])