Exemplo n.º 1
0
    def pwd_modified():
        f = open(settings.STUDENT_LIST, mode='rb')
        f1 = open(settings.STUDENT_LIST1, mode='ab')
        while True:
            pwd = input('请输入旧密码(N/n):').strip()
            if pwd.upper() == 'N':
                f.close()
                f1.close()
                os.remove(settings.STUDENT_LIST)
                os.rename(settings.STUDENT_LIST1, settings.STUDENT_LIST)
                return
            pwd = get_md5.get_md5(pwd)
            if pwd == settings.PWD:
                break
            else:
                print('密码输入有误,请重新输入')
                continue

        while True:
            try:
                v = pickle.load(f)
                if v.name == settings.USER:
                    while True:
                        settings.USER = v.name
                        pwd = input('请输入新密码(N/n):').strip()
                        if pwd.upper() == 'N':
                            f.close()
                            f1.close()
                            os.remove(settings.STUDENT_LIST)
                            os.rename(settings.STUDENT_LIST1,
                                      settings.STUDENT_LIST)
                            return
                        pwd2 = input('请确认新密码:').strip()
                        if pwd != pwd2:
                            continue
                        pwd = get_md5.get_md5(pwd)
                        val = student.Student(v.name, pwd)
                        pickle.dump(val, f1)
                        print('密码修改成功')
                        break
                else:
                    pickle.dump(v, f1)
            except:
                f.close()
                f1.close()
                os.remove(settings.STUDENT_LIST)
                os.rename(settings.STUDENT_LIST1, settings.STUDENT_LIST)
                break
Exemplo n.º 2
0
    def login():
        flag = False
        if not os.path.exists(settings.STUDENT_LIST) or os.path.getsize(
                settings.STUDENT_LIST) == 0:
            return flag

        f = open(settings.STUDENT_LIST, mode='rb')
        name = input('请输入账号:').strip()
        if name.upper() == 'N':
            return
        pwd = input('请输入密码:').strip()
        pwd = get_md5.get_md5(pwd)
        while True:
            try:
                v = pickle.load(f)
                if v.name == name and v.pwd == pwd:
                    print('登陆成功')
                    settings.USER = name
                    settings.PWD = pwd
                    flag = True
                    return flag
            except:
                f.close()
                break
        if not flag:
            print('用户名或密码错误,请重新登陆')
            login()
Exemplo n.º 3
0
    def creat_student():
        while True:
            name = input('please input the user name(N/n): ')
            if name.upper() == 'N':
                break
            pwd = get_md5.get_md5('123')
            val = student.Student(name, pwd)

            """
            先判断用户是否存在,存在则不再创建
            """
            if not os.path.exists(settings.STUDENT_LIST):
                with open(settings.STUDENT_LIST, mode='ab') as f:
                    pickle.dump(val, f)
                continue

            f = open(settings.STUDENT_LIST, mode='rb')

            flag = False
            while True:
                try:
                    v = pickle.load(f)
                    if v.name == name:
                        flag = True
                        print('学生信息已存在,请重新输入')
                        break
                except:
                    break
            f.close()
            if not flag:
                with open(settings.STUDENT_LIST, mode='ab') as f:
                    pickle.dump(val, f)
Exemplo n.º 4
0
    def login(self):
        while True:
            dic = self.obj.my_recv()
            if dic['user_name'] == 'Q': return
            flag = False
            with open(settings.USER_INFO, 'rb') as f:
                try:
                    while True:
                        user_dic = pickle.load(f)
                        if dic['user_name'] == user_dic['user_name'] and get_md5.get_md5(dic) == user_dic['user_pwd']:
                            flag = True
                            settings.USER_DIR = os.path.join(settings.SER_DIR, user_dic['user_name'])
                            if user_dic['ident'] == 'vip':
                                VIP_L.add(user_dic['user_name'])
                            break
                except:pass

            dic = {'operator': flag}
            self.obj.my_send(dic)
            if flag: return flag
Exemplo n.º 5
0
    def register(self):
        dic = self.obj.my_recv()
        flag = True
        with open(settings.USER_INFO, 'rb') as f:
            try:
                while True:
                    user_dic = pickle.load(f)
                    if dic['user_name'] == user_dic['user_name']:
                        flag = False
            except:pass

        if not flag:
            """用户名已存在"""
            status_dic = {'operator': flag}
            self.obj.my_send(status_dic)
        else:
            """把用户名、密码和身份信息写入user_info文件"""
            with open(settings.USER_INFO, 'ab') as f:
                pickle.dump({'user_name': dic['user_name'],
                             'user_pwd': get_md5.get_md5(dic), 'ident': 'ordinary'}, f)
                settings.USER_DIR = os.path.join(settings.SER_DIR, dic['user_name'])
                if not os.path.exists(settings.USER_DIR): os.makedirs(settings.USER_DIR)
                status_dic = {'operator': flag}
                self.obj.my_send(status_dic)