class TestUserModel(): @classmethod def setup_class(self): self.model = UserModel(FakeConnTool()) def test_get_user_info_by_email(self): email = '*****@*****.**' expect = { 'name': 'name', 'email': '*****@*****.**', 'uid': 'KDD0wVZh0Rb6eLFb2KeWBgKMjiH2' } info = self.model.get_user_info_by_email(email) assert (info, expect) def test_get_user_info_by_uid(self): uid = 'KDD0wVZh0Rb6eLFb2KeWBgKMjiH2' expect = { 'name': 'name', 'email': '*****@*****.**', 'uid': 'KDD0wVZh0Rb6eLFb2KeWBgKMjiH2' } info = self.model.get_user_info_by_uid(uid) assert (info, expect)
def create_user(): session = current_app.db.session body = request.get_json() from src.serializers.create_user_schema import create_user_schema request_errors = create_user_schema.validate(body) if request_errors: return { "msg": "Invalid or missing User request fields." }, HTTPStatus.UNPROCESSABLE_ENTITY user_name = body["name"] email = body["email"] password = body["password"] try: new_user = UserModel(name=user_name, email=email) new_user.password = password session.add(new_user) session.commit() except sqlalchemy.exc.IntegrityError: return { "msg": "Name or email is already taken." }, HTTPStatus.UNPROCESSABLE_ENTITY serialized_user = user_model_schema.dump(new_user) return serialized_user, HTTPStatus.CREATED
def test_update_collaborator(self): self.model.add_project('test_update_collaborator') pid = self.get_pid_by_name('test_update_collaborator') data, code = self.model.update_collaborator(pid, '*****@*****.**', 'add') update_pro = self.model._db.collection('projects').document( pid).get().to_dict() userModel = UserModel(FakeConnTool()) print(update_pro['collaborator']) assert update_pro['collaborator'] == [ userModel.get_user_info_by_email('*****@*****.**')[0]['uid'] ] self.model.delete_project( self.get_pid_by_name('test_update_collaborator'))
class BaseUserController(BaseController): model = UserModel() get_form = UserGetForm put_form = UserPutForm signup_form = UserSignupForm login_form = UserLoginForm auth_form = AuthDataForm reset_password_form = UserResetPasswordForm
def useradd(username, password): try: validate_username(username) validate_password(username, password) except ValueError as error: raise return UserModel(username, password)
def login(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 username = request_data.get("username") password = request_data.get("password") password_md5 = generate_md5_by_str(password) user_data = UserModel.find_username_password(username=username, password=password_md5) if not user_data: return jsonify({ "message": "Không tìm thấy thông tin tài khoản!", "code": 413 }), 413 ma = None if user_data.Quyen == "giaovien": ma = TeacherModel.get_magvhd_by_id(int(user_data.LienKet)) data = { "username": username, "permission": user_data.Quyen, "lienket": user_data.LienKet, "iddetai": "", "id_gvhd": "", "ma": ma } if user_data.Quyen == "sinhvien": student_data = StudentModel.get_student_by_id( student_id=user_data.LienKet) if student_data: data["ma"] = student_data.MaSV if student_data.IDDeTai: data["iddetai"] = student_data.IDDeTai if student_data.MaGVHD: teacher_id = TeacherModel.get_id_by_ma(student_data.MaGVHD) if teacher_id: data["id_gvhd"] = teacher_id check = int(user_data.LienKet) i = check // 3 if check >= 6 else check if check < 3 else check - 3 if int(i) == 0: data["start_time_do_an"] = "01/05/2021" if int(i) == 1: data["start_time_do_an"] = "19/03/2021" if int(i) == 2: data["start_time_do_an"] = "25/12/2020" return jsonify({ "message": "Đăng nhập thành công!", "data": data, "code": 200 }), 200
def test_get_project_setting(self): data = {'repositories': {'action': 'remove', 'Github': [182191121]}} self.model.add_project('test_get_project_setting') pid = self.get_pid_by_name('test_get_project_setting') data, code = self.model.get_project_setting(pid) setting = Setting('test_get_project_setting', [], UserModel(FakeConnTool())).to_dict() assert (setting, status_code.OK) == (data, code) self.model.delete_project(self.get_pid_by_name('test_remove_repo'))
def execute(self, i, o): """ Executes the command. :type i: cleo.inputs.input.Input :type o: cleo.outputs.output.Output """ # Read parameters user = UserModel.getByUsername(i.get_argument('username')) user.delete()
def execute(self, i, o): """ Executes the command. :type i: cleo.inputs.input.Input :type o: cleo.outputs.output.Output """ # Read parameters username = i.get_argument('username') password = i.get_argument('password') user = UserModel.getByAttributeSingle('username', username) user.save() token = user.generateToken(password) token.save() print token
def login(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 username = request_data.get("username") password = request_data.get("password") password_md5 = generate_md5_by_str(password) user_data = UserModel.find_username_password(username=username, password=password_md5) if not user_data: return jsonify({ "message": "Không tìm thấy thông tin tài khoản!", "code": 413 }), 413 data = { "username": username, "permission": user_data.Quyen, "lienket": user_data.LienKet, "iddetai": "", "id_gvhd": "", } if user_data.Quyen == "sinhvien": student_data = StudentModel.get_student_by_id( student_id=user_data.LienKet) if student_data: if student_data.IDDeTai: data["iddetai"] = student_data.IDDeTai if student_data.MaGVHD: teacher_id = TeacherModel.get_id_by_ma(student_data.MaGVHD) if teacher_id: data["id_gvhd"] = teacher_id return jsonify({ "message": "Đăng nhập thành công!", "data": data, "code": 200 }), 200
def execute(self, i, o): """ Executes the command. :type i: cleo.inputs.input.Input :type o: cleo.outputs.output.Output """ UsersDB.getInstance().reset() user = UserModel() user.username = '******' user.email = '*****@*****.**' user.setPassword('admin') user.role = 'admin' user.status = 'active' user.project = 'ReLDI' user.requests_limit = 1000 user.requests_made = 0 user.save() user = UserModel() user.username = '******' user.email = '*****@*****.**' user.setPassword('user') user.role = 'user' user.status = 'active' user.project = 'ReLDI' user.requests_limit = 1000 user.requests_made = 0 user.save() user = UserModel() user.username = '******' user.email = '*****@*****.**' user.setPassword('user') user.role = 'user' user.status = 'pending' user.project = 'ReLDI' user.requests_limit = 1000 user.requests_made = 0 user.save() user = UserModel() user.username = '******' user.email = '*****@*****.**' user.setPassword('user') user.role = 'user' user.status = 'blocked' user.project = 'ReLDI' user.requests_limit = 1000 user.requests_made = 0 user.save()
def register(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 username = request_data.get("username") password = request_data.get("password") permission = request_data.get("permission", "sinhvien") password_md5 = generate_md5_by_str(password) check_user_name = UserModel.find_username(username=username) if check_user_name: return jsonify({ "message": f"Tài khoản {username} đã tồn tại!", "code": 413 }), 413 lienket = None if permission == "sinhvien": student_data = { "Ten": request_data.get("ten"), "MaSV": request_data.get("masv"), "SDT": request_data.get("sdt", ""), "Email": request_data.get("email", ""), "IDLop": request_data.get("idlop", ""), "MaGVHD": "", "IDDeTai": "", "TrangThai": "TaoMoi", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } lienket = StudentModel.insert_one_student(data=student_data) if permission == "giaovien": teacher_data = { "Ten": request_data.get("ten"), "SoLuong": 0, "MaGV": request_data.get("magv"), "SDT": request_data.get("sdt"), "Email": request_data.get("email"), "ChucVu": request_data.get("chucvu") if request_data.get("chucvu") else "GiaoVien", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } lienket = TeacherModel.insert_many_teacher(teacher_data) user_data = { "TaiKhoan": username, "MatKhau": str(password_md5), "Quyen": permission, "LienKet": lienket, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data) if not user_id: return jsonify({ "message": "Tạo mới thông tin tài khoản thành công!", "code": 413 }), 413 data = {"username": username, "permission": permission} return jsonify({ "message": "Tạo mới tài khoản thành công!", "data": data, "code": 200 }), 200
def main(): from pprint import pprint from src.config import load_parser parser = load_parser() args, unknown = parser.parse_known_args() args = vars(args) args_to_print = {name: args[name] for name in args if not "files" in name} pprint(args_to_print) pprint(unknown) if args['data_header']: with open(args['data_header']) as f: data_header = f.readlines()[0].strip().split(",") if args['label_header']: with open(args['label_header']) as f: label_header = f.readlines()[0].strip().split(",") train_data_files = args['train_data_files'] train_image_files = args['train_image_files'] train_text_files = args['train_text_files'] train_label_files = args['train_label_files'] valid_data_files = args['valid_data_files'] valid_image_files = args['valid_image_files'] valid_text_files = args['valid_text_files'] valid_label_files = args['valid_label_files'] key = args['key'] seed = args['seed'] user_size = args['user_size'] text_size = args['text_size'] image_size = args['image_size'] dummy_user_vector = args['dummy_user_vector'] shuffle = args['shuffle'] batch_size = args['batch_size'] num_workers = args['num_workers'] micro_lambda = args['micro_lambda'] macro_lambda = args['macro_lambda'] max_epoch = args['epochs'] log_dir = args['log_dir'] checkpoint_file = args['checkpoint'] verbosity = args['verbosity'] save_frequency = args['save_frequency'] if args['align_files']: train_data_files, train_image_files, train_text_files, train_label_files = get_overlapping_data_files( train_data_files, train_image_files, train_text_files, train_label_files) if args['align_files']: valid_data_files, valid_image_files, valid_text_files, valid_label_files = get_overlapping_data_files( valid_data_files, valid_image_files, valid_text_files, valid_label_files) device = torch.device("cpu" if ( args['no_cuda'] or not torch.cuda.is_available()) else "cuda") if args['user_only'] and args['content_only']: raise NotImplementedError("What does user_only and content_only mean?") elif args['user_only']: from src.models.user_model import UserModel model = UserModel(user_size=args['user_size'], hidden_size=args['hidden_size'], joint_embedding_size=args['joint_embedding_size']) elif args['content_only']: from src.models.content_model import ContentModel model = ContentModel(image_embed_size=args['image_size'], text_embed_size=args['text_size'], hidden_size=args['hidden_size'], joint_embedding_size=args['joint_embedding_size']) else: from src.models.feature_model import FeatureModel model = FeatureModel(user_size=args['user_size'], image_embed_size=args['image_size'], text_embed_size=args['text_size'], hidden_size=args['hidden_size'], joint_embedding_size=args['joint_embedding_size']) if (torch.cuda.device_count() > 1) and args['all_gpu']: print("Using %d GPUS!" % torch.cuda.device_count()) model = nn.DataParallel(model) model = model.to(device) print(model) optimizer = optim.Adam(model.parameters(), lr=args['learning_rate']) trainer = Trainer( model=model, optimizer=optimizer, device=device, key=key, data_header=data_header, label_header=label_header, user_size=user_size, text_size=text_size, image_size=image_size, dummy_user_vector=dummy_user_vector, user_only=args['user_only'], content_only=args['content_only'], seed=seed, micro_lambda=micro_lambda, macro_lambda=macro_lambda, max_epoch=max_epoch, batch_size=batch_size, num_workers=num_workers, shuffle=shuffle, log_dir=log_dir, checkpoint_file=checkpoint_file, verbosity=verbosity, save_frequency=save_frequency, ) trainer.train(train_data_files, train_image_files, train_text_files, train_label_files, valid_data_files, valid_image_files, valid_text_files, valid_label_files)
def setup_class(self): self.model = UserModel(FakeConnTool())
def create_data(n=10): all_data = list() for i in range(1, n): email = f"sinhvien{i}[email protected]" password = generate_md5_by_str(default_pass) student_data = { "Ten": "Nguyen Van A " + str(i), "MaSV": "Ma101152" + str(i), "SDT": "03133312323" + str(i), "Email": email, "IDLop": 1, "MaGVHD": "", "IDDeTai": "", "Cap": random.randrange(1, 3, 1), "TrangThai": "TaoMoi", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } student_id = StudentModel.insert_one_student(student_data) user_data = { "TaiKhoan": email, "MatKhau": str(password), "Quyen": "sinhvien", "LienKet": student_id, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data) for i in range(1, n): email = f"giaovien{i}[email protected]" password = generate_md5_by_str(default_pass) teacher_data = { "Ten": "Le Van A" + str(i), "SoLuong": 0, "MaGV": f"Gv12983192{i}", "SDT": f"19831321312{i}", "Email": email, "ChucVu": "GiaoVien", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } teacher_id = TeacherModel.insert_one_teacher(teacher_data) user_data = { "TaiKhoan": email, "MatKhau": str(password), "Quyen": "giaovien", "LienKet": teacher_id, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data) email = f"*****@*****.**" password = generate_md5_by_str(default_pass) teacher_data = { "Ten": "Truong khoa", "SoLuong": 0, "MaGV": "Tk1231231", "SDT": "192831892313", "Email": email, "ChucVu": "TruongKhoa", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } teacher_id = TeacherModel.insert_one_teacher(teacher_data) user_data = { "TaiKhoan": email, "MatKhau": str(password), "Quyen": "truongkhoa", "LienKet": teacher_id, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data)
def execute(self, i, o): """ Executes the command. :type i: cleo.inputs.input.Input :type o: cleo.outputs.output.Output """ # Read parameters user = UserModel() user.username = i.get_argument('username') user.password = i.get_argument('password') user.project = i.get_argument('project') user.requests_limit = i.get_argument('requests_limit') user.requests_made = 0 user.status = 'active' user.role = i.get_argument('role') user.save()
class Meta: model = UserModel() exclude = ("password_hash", )