def add_or_get_auth_user(ucid, name): """ Obtains the AuthUser corresponding to the given UCID and name (or creates one if one does not exist) """ existing_user = ( DB.session.query(models.AuthUser) .filter(func.lower(models.AuthUser.ucid) == func.lower(ucid)) .first() ) if existing_user: user_info = models.UserInfo( id=existing_user.id, ucid=existing_user.ucid, role=models.UserRole(existing_user.role), name=existing_user.name, ) else: new_user = models.AuthUser( ucid=ucid, auth_type=models.AuthUserType.GOOGLE, role=models.UserRole.STUDENT, name=name, ) DB.session.add(new_user) DB.session.flush() user_info = models.UserInfo( id=new_user.id, ucid=new_user.ucid, role=models.UserRole(new_user.role), name=new_user.name, ) DB.session.commit() return user_info
def create_user(db: Session, user: schemas.UserCreate): hashed_password = bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt()) db_user = models.UserInfo(username=user.username, password=hashed_password.decode('utf-8'), fullname=user.fullname) db.add(db_user) db.commit() db.refresh(db_user) return db_user
def update_user_role(user_id, role): """ Obtains the User corresponding to the given ID and updates its role with the provided value """ assert all( [ isinstance(user_id, int), isinstance(role, models.UserRole), ] ) existing_user = ( DB.session.query(models.AuthUser) .filter(models.AuthUser.id == user_id) .first() ) if not existing_user: DB.session.commit() return None existing_user.role = role.value DB.session.commit() return models.UserInfo( id=user_id, name=existing_user.name, ucid=existing_user.ucid, role=role, )
def setUp(self): self.feedback_test_user = models.FeedbackLog( 'Jay Amin', 'I learned a lot about politics') self.quiz_test_question = models.QuizQuestions( 'Test question for unit test', 'test group', -32) self.test_user = models.UserInfo("*****@*****.**", "Test McTestface", "http://this-is-a-fake-url.com") self.test_quiz_score = models.QuizScore("*****@*****.**", -99)
def create_user(db: Session, user: schemas.UserCreate): fake_hashed_password = user.password + "notreallyhashed" db_user = models.UserInfo(username=user.username, password=fake_hashed_password, fullname=user.fullname) db.add(db_user) db.commit() db.refresh(db_user) return db_user
def create_user(db: Session, user: schema.CreateUser): hashed_password = bcrypt.hashpw(user.password.encode("utf-8"), bcrypt.gensalt()) db_user = models.UserInfo(username=user.username, password=hashed_password, firstname=user.firstname, lastname=user.lastname) db.add(db_user) db.commit() db.refresh(db_user) return db_user
def get_all_user_objs(as_dicts=False): """ Obtains all AuthUsers and returns them as UserInfo objects or dictionaries """ users = DB.session.query(models.AuthUser).order_by(models.AuthUser.name).all() user_objs = [ models.UserInfo( id=user.id, ucid=user.ucid, role=user.role, name=user.name, ) for user in users ] DB.session.commit() if as_dicts: return [user._asdict() for user in user_objs] return user_objs
def add_user_info_list(request): try: user_name = request.POST.get('NAME') user_sex = request.POST.get('SEX') user_type = request.POST.get('TYPE') new_user = models.UserInfo(id=make_uuid_without_hypen(), name=user_name, sex=user_sex, type=user_type) new_user.save() print json.dumps(model_to_dict(new_user)) return HttpResponse(json.dumps(model_to_dict(new_user)), content_type='application/json') except: traceback.print_exc() raise Http404
def get_user_obj_from_id(user_id, as_dict=False): """ Obtains the AuthUser corresponding to the given ID and returns it as a UserInfo object or dictionary """ user = ( DB.session.query(models.AuthUser).filter(models.AuthUser.id == user_id).first() ) if not user: DB.session.commit() return None user_obj = models.UserInfo( id=user.id, ucid=user.ucid, role=user.role, name=user.name, ) DB.session.commit() if as_dict: return user_obj._asdict() return user_obj
def user_profile(self): user = users.get_current_user() userinfo = ndb.Key(models.UserInfo, user.user_id()).get() if userinfo is None: userinfo = models.UserInfo( id=users.get_current_user().user_id(), nickname=self.request.get('nickname'), email=self.request.get('email'), phoneNumber=self.request.get('phone_number'), meetPoint=self.request.get('meet_point')) userinfo.put() Notification = "Creation succesfully" else: userinfo.nickname = self.request.get('nickname') userinfo.email = self.request.get('email') userinfo.phoneNumber = self.request.get('phone_number') userinfo.meetPoint = self.request.get('meet_point') userinfo.put() Notification = "Updated succesfully" self.buildUserProfilePage(notification=Notification)
def on_connect(userProfile): """ User's profile validating """ global user_sids socketId = request.sid name = userProfile['name'] email = userProfile['email'] image = userProfile['imageUrl'] # if user doesn't exist in DB, add user if db.session.query(models.UserInfo).filter( models.UserInfo.email == email).first() is None: db.session.add(models.UserInfo(email, name, image)) db.session.commit() user_sids[socketId] = email socketio.emit('new connection', { "user": name, "userEmail": email, "userImage": image }, room=socketId)
role=models.UserRole.PROFESSOR, name="Johnny Appleseed", ), 3: models.AuthUser( ucid="lr123", auth_type=models.AuthUserType.GOOGLE, role=models.UserRole.LIBRARIAN, name="Libra Rian", ), } MOCK_USER_INFOS = { 1: models.UserInfo( id=1, ucid="jd123", role=models.UserRole.STUDENT, name="John Doe", ), 2: models.UserInfo( id=2, ucid="johnny.appleseed", role=models.UserRole.LIBRARIAN, name="Johnny Appleseed", ), 3: models.UserInfo( id=3, ucid="lr123", role=models.UserRole.LIBRARIAN, name="Libra Rian",
def create_user(db: Session, user: schemas.UserCreate): db_user = models.UserInfo(name=user.name, email=user.email,message=user.message) db.add(db_user) db.commit() db.refresh(db_user) return db_user