def receive(self): # TODO: could do more w/ validation if not sms.validate(self.request): return self.text('') phone = util.cleanUSPhone(self.request('From')) message = self.request('Body') userId = mUser.findUserByPhone(self.db, phone) if (not phone or not message): log.error( "*** sms received but idea not created. missing phone or message" ) else: if (message.lower() == 'stop'): return mMessaging.stopSMS(self.db, phone) else: if (mIdea.createIdea(self.db, message, -1, 'sms', userId, None, phone)): mMessaging.sendSMSConfirmation(self.db, phone) return True else: return False
def newUnauthenticatedUser(self): if (self.request('main_text')): return False firstName = self.request('f_name') lastName = self.request('l_name') email = self.request('email') password = self.request('password') phone = util.cleanUSPhone(self.request('sms_phone')) code = self.request('beta_code') redirectLink = self.request('redirect_link') if (self.appMode == 'beta' and not self.verifyBetaCode(code)): log.error("*** beta user attempted register w/ invalid code") return False elif (len(firstName) == 0): log.error("*** error on user create: no first name") return False elif (len(lastName) == 0): log.error("*** error on user create: no last name") return False elif (len(email) == 0 or not util.validate_email(email)): log.error("*** error on user create: invalid email") return False elif (len(password) == 0): log.error("*** error on user create: no password") return False else: #create unauth data record and email user authGuid = uuid.uuid4() if (mUser.createUnauthenticatedUser(self.db, authGuid, email, password, firstName, lastName, phone, redirectLink=redirectLink)): return mMessaging.emailUnauthenticatedUser(email, authGuid) else: return False
def login_twitter_create(self): email = self.request('email') firstName = self.request('f_name') lastName = self.request('l_name') phone = util.cleanUSPhone(self.request('sms_phone')) s = SessionHolder.get_session() access_token = s.tw_access_token #access_token = self.request('twitter_data') if (len(firstName) == 0): log.error("no first name") return False elif (len(lastName) == 0): log.error("no last name") return False elif (len(email) == 0 or not util.validate_email(email)): log.error("invalid email") return False else: #userId = user.createUser(self.db, email, password, firstName, lastName, phone) userId = mUser.createUser(self.db, email, access_token['oauth_token_secret'], firstName, lastName, phone) self.db.insert('twitter_user', user_id = userId, twitter_username = access_token['screen_name'], twitter_id = access_token['user_id']) self.session.user_id = userId self.session.invalidate() #following 3 lines commented out for oauth dev #idea.attachIdeasByEmail(self.db, email) #if (phone and len(phone) > 0): # idea.attachIdeasByPhone(self.db, phone) return userId;
def newUnauthenticatedUser(self): if (self.request('main_text')): return False firstName = self.request('f_name') lastName = self.request('l_name') email = self.request('email') password = self.request('password') phone = util.cleanUSPhone(self.request('sms_phone')) code = self.request('beta_code') if (self.appMode == 'beta' and not self.verifyBetaCode(code)): log.error("*** beta user attempted register w/ invalid code") return False elif (len(firstName) == 0): log.error("*** error on user create: no first name") return False elif (len(lastName) == 0): log.error("*** error on user create: no last name") return False elif (len(email) == 0 or not util.validate_email(email)): log.error("*** error on user create: invalid email") return False elif (len(password) == 0): log.error("*** error on user create: no password") return False else: #create unauth data record and email user authGuid = uuid.uuid4() if (mUser.createUnauthenticatedUser(self.db, authGuid, email, password, firstName, lastName, phone)): return mMessaging.emailUnauthenticatedUser(email, authGuid) else: return False
def newUser(self): firstName = self.request('f_name') lastName = self.request('l_name') email = self.request('email') password = self.request('password') phone = util.cleanUSPhone(self.request('sms_phone')) code = self.request('beta_code') if (self.appMode == 'beta' and not self.verifyBetaCode(code)): log.error("*** beta user attempted register w/ invalid code") return False elif (len(firstName) == 0): log.error("*** error on user create: no first name") return False elif (len(lastName) == 0): log.error("*** error on user create: no last name") return False elif (len(email) == 0 or not util.validate_email(email)): log.error("*** error on user create: invalid email") return False elif (len(password) == 0): log.error("*** error on user create: no password") return False else: userId = mUser.createUser(self.db, email, password, firstName, lastName, phone) if (userId): # log in user self.session.user_id = userId self.session.invalidate() # set cbu_key for blog access web.setcookie('cbu_key', util.obfuscate(userId), domain=".changeby.us") if (self.appMode == 'beta'): self.expireBetaCode(code, userId) mIdea.attachIdeasByEmail(self.db, email) if (phone and len(phone) > 0): mIdea.attachIdeasByPhone(self.db, phone) return userId else: return False
def newUser(self): firstName = self.request('f_name') lastName = self.request('l_name') email = self.request('email') password = self.request('password') phone = util.cleanUSPhone(self.request('sms_phone')) code = self.request('beta_code') if (self.appMode == 'beta' and not self.verifyBetaCode(code)): log.error("*** beta user attempted register w/ invalid code") return False elif (len(firstName) == 0): log.error("*** error on user create: no first name") return False elif (len(lastName) == 0): log.error("*** error on user create: no last name") return False elif (len(email) == 0 or not util.validate_email(email)): log.error("*** error on user create: invalid email") return False elif (len(password) == 0): log.error("*** error on user create: no password") return False else: userId = mUser.createUser(self.db, email, password, firstName, lastName, phone) if (userId): # log in user self.session.user_id = userId self.session.invalidate() # set cbu_key for blog access web.setcookie('cbu_key', util.obfuscate(userId), domain = ".changeby.us") if (self.appMode == 'beta'): self.expireBetaCode(code, userId) mIdea.attachIdeasByEmail(self.db, email) if (phone and len(phone) > 0): mIdea.attachIdeasByPhone(self.db, phone) return userId else: return False
def getIdeas(self): try: phone = util.cleanUSPhone(self.request('sms_phone')) dataUser = mUser.findUserByPhone(self.db, phone) if (dataUser): return self.json(dict(sms_number_already_used = True)) data = mIdea.findIdeasByPhone(self.db, phone) if (data): return self.json(dict(sms_number_already_used = False, n_ideas = len(data))) else: return self.json(dict(sms_number_already_used = False, n_ideas = 0)) except Exception, e: log.error(e) return self.json(dict(sms_number_already_used = False, n_ideas = 0))
def getIdeas(self): try: phone = util.cleanUSPhone(self.request('sms_phone')) dataUser = mUser.findUserByPhone(self.db, phone) if (dataUser): return self.json(dict(sms_number_already_used=True)) data = mIdea.findIdeasByPhone(self.db, phone) if (data): return self.json( dict(sms_number_already_used=False, n_ideas=len(data))) else: return self.json(dict(sms_number_already_used=False, n_ideas=0)) except Exception, e: log.error(e) return self.json(dict(sms_number_already_used=False, n_ideas=0))
def receive(self): # TODO: could do more w/ validation if not sms.validate(self.request): return self.text('') phone = util.cleanUSPhone(self.request('From')) message = self.request('Body') userId = mUser.findUserByPhone(self.db, phone) if (not phone or not message): log.error("*** sms received but idea not created. missing phone or message") else: if (message.lower() == 'stop'): return mMessaging.stopSMS(self.db, phone) else: if (mIdea.createIdea(self.db, message, -1, 'sms', userId, None, phone)): mMessaging.sendSMSConfirmation(self.db, phone) return True else: return False
def login_twitter_create(self): email = self.request('email') firstName = self.request('f_name') lastName = self.request('l_name') phone = util.cleanUSPhone(self.request('sms_phone')) s = SessionHolder.get_session() access_token = s.tw_access_token #access_token = self.request('twitter_data') if (len(firstName) == 0): log.error("no first name") return False elif (len(lastName) == 0): log.error("no last name") return False elif (len(email) == 0 or not util.validate_email(email)): log.error("invalid email") return False else: #userId = user.createUser(self.db, email, password, firstName, lastName, phone) userId = mUser.createUser(self.db, email, access_token['oauth_token_secret'], firstName, lastName, phone) self.db.insert('twitter_user', user_id=userId, twitter_username=access_token['screen_name'], twitter_id=access_token['user_id']) self.session.user_id = userId self.session.invalidate() #following 3 lines commented out for oauth dev #idea.attachIdeasByEmail(self.db, email) #if (phone and len(phone) > 0): # idea.attachIdeasByPhone(self.db, phone) return userId
def test_cleanUSPhone(self): self.assertEqual(util.cleanUSPhone("2134567890"), "2134567890") self.assertEqual(util.cleanUSPhone("hel2134567890lo"), "2134567890") self.assertEqual(util.cleanUSPhone("(213) 456-7890"), "2134567890") self.assertEqual(util.cleanUSPhone("213-456-7890"), "2134567890") self.assertEqual(util.cleanUSPhone("123-456-7890"), None)