def signup(self): # Create the user object email_verification_code = random_code(5) # new_user_uuid = uuid.uuid4().hex new_user_uuid = str(ObjectId()) new_user = { "_id": new_user_uuid, 'creation_date': datetime.datetime.utcnow(), "username": request.args.get('username'), "email": request.args.get('email'), "password": pbkdf2_sha256.hash(request.args.get('password')), "email_verified": False, "email_verification_code": email_verification_code, "email_verification_code_timestamp": time.time(), "products": [], "profile_picture": '', } print(new_user) # Check for existing verified email address if db.users.find_one({"email": new_user['email']}): return jsonify({"error": "Email adress is already in use, \nplease sign-in"}), 403 # Enter new user in DB if db.users.insert_one(new_user): # Send email confirmation code Email().sendConfirmEmail(request.args.get('email'), email_verification_code) return jsonify({ "status": "Account successfully created!", "userid": new_user_uuid }), 200 return jsonify({"error": "Signup failed."}), 400
def init_data(self): #default test user demo = User(first_name=u'demo', last_name=u'demo', user_name=u'demo', password=u'123456', role_code=ADMIN, status_code=ACTIVE, user_settings=UserSettings(sex_code=MALE, phone='555-555-5555', bio=u'just a demo guy')) email = Email(address="*****@*****.**", is_primary=True, status_code=VERIFIED) demo.add_email(email) db.session.add(demo) db.session.add(email) db.session.commit() """Add in post categories""" for c in CATEGORIES: hashtag = Hashtag(name=c) db.session.add(hashtag) db.session.commit() self.demo_user = demo '''Add in circles''' ucla = Circle(name=u'ucla', description=u'ucla.edu emails only') ucla.add_member(demo) db.session.add(ucla) db.session.commit()
def test_by_user(self): user = self.demo_user user.add_email(self.good_email) user.add_email(self.diff_email) db.session.add(self.good_email) db.session.add(self.diff_email) db.session.commit() self.assertEqual(user.emails.all(), Email.by_user(user))
def initdb(): """Init/reset database.""" db.drop_all(bind=None) db.create_all(bind=None) admin = User(first_name=u'admin', last_name=u'admin', user_name=u'admin', password=u'gFcPU5XB', role_code=ADMIN, status_code=ACTIVE, user_settings=UserSettings(sex_code=MALE, age=10, phone='555-555-5555', bio=u'')) email = Email(address="*****@*****.**", is_primary=True, status_code=VERIFIED) admin.add_email(email) db.session.add(admin) db.session.add(email) db.session.commit() hashtag = None """Add in all post hashtag""" for (key, id) in CATEGORIES.iteritems(): hashtag = Hashtag(id=id, name=key) db.session.add(hashtag) db.session.commit() #Add in ucla circle ucla = Circle(name=u'ucla', description=u'ucla.edu emails only') ucla.add_member(admin) db.session.add(ucla) db.session.commit() ucla_info = CollegeInfo(circle_id=ucla.id, domain=u'ucla.edu', fb_group_id=267279833349705, fb_sell_id=267375200006835) db.session.add(ucla_info) db.session.commit()
def __init__(self, *args, **kwargs): super(TestUserModel, self).__init__(*args, **kwargs) self.correct_password = u'123456' self.good_guy = User(first_name=u'good', last_name=u'guy', user_name=u'test', password=self.correct_password, role_code=USER, status_code=ACTIVE, user_settings=UserSettings(sex_code=MALE)) self.good_girl = User(first_name=u'good', last_name='girl', user_name=u'crazy_girl', password=self.correct_password, role_code=USER, status_code=INACTIVE, user_settings=UserSettings(sex_code=FEMALE)) self.good_girl_email = Email(address="*****@*****.**", is_primary=False, status_code=VERIFIED)
def send_code(self): email = request.args.get('email') if not email: return jsonify({"error": "Email address missing"}), 400 userid = request.args.get('userid') if userid: user = db.users.find_one({"_id" : userid}) else: user = db.users.find_one({"email" : email}) if not user: return jsonify({"error": "Can't find user"}), 400 email_verification_code = random_code(5) if userid: db.users.update_one( {"_id" : userid}, {"$set": { "email_verification_code": email_verification_code, "email_verification_code_timestamp": time.time() } }) else: db.users.update_one( {"email" : email}, {"$set": { "email_verification_code": email_verification_code, "email_verification_code_timestamp": time.time() } }) Email().sendConfirmEmail(request.args.get('email'), email_verification_code) return jsonify({ "status": "Email verification code sent!", "userid": user['_id'] }), 200
def test_by_id(self): user = self.demo_user email_id = user.primary_email.id self.assertEqual(user.primary_email, Email.by_id(email_id))
def __init__(self, *args, **kwargs): super(TestEmailModel, self).__init__(*args, **kwargs) self.good_email = Email(address="*****@*****.**", is_primary=False) self.same_email = Email(address="*****@*****.**", is_primary=False) self.diff_email = Email(address="*****@*****.**", is_primary=False)
def test_is_email_taken(self): self.demo_user.add_email(self.good_email) db.session.commit() self.assertTrue(Email.is_email_taken(self.same_email.address)) self.assertFalse(Email.is_email_taken(self.diff_email.address))
def initdb(): """Init/reset database.""" db.drop_all(bind=None) db.create_all(bind=None) admin = User(first_name=u'admin', last_name=u'admin', user_name=u'admin', password=u'123456', role_code=ADMIN, status_code=ACTIVE, user_settings=UserSettings( sex_code=MALE, age=10, phone='555-555-5555', bio=u'admin Guy is ... hmm ... just a admin guy.')) email = Email(address="*****@*****.**", is_primary=True, status_code=VERIFIED) admin.add_email(email) db.session.add(admin) db.session.add(email) db.session.commit() hashtag = None """Add in all post hashtag""" for (key, id) in CATEGORIES.iteritems(): hashtag = Hashtag(id=id, name=key) db.session.add(hashtag) db.session.commit() #generate 1000 random post ''' for x in range(0,1000): post = Post(name='test-'+str(x), price=10, description='AOH LALAL') post.user_id = admin.id post.add_hashtag(hashtag) db.session.add(post) db.session.commit() chat = Chat(buyer= admin) msg = ChatMessage(body = "TEST MESSAGE", created_by = admin.id) post.add_chat(chat) chat.add_message(msg) db.session.commit() db.session.commit() ''' #Add in ucla circle ucla = Circle(name=u'ucla', description=u'ucla.edu emails only') ucla.add_member(admin) db.session.add(ucla) db.session.commit() ucla_info = CollegeInfo(circle_id=ucla.id, domain=u'ucla.edu', fb_group_id=267279833349705, fb_sell_id=267375200006835) db.session.add(ucla_info) db.session.commit()