Example #1
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
Example #2
0
   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
Example #3
0
    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;
Example #4
0
    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
Example #5
0
    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
Example #6
0
    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
Example #7
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))
Example #8
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))
Example #9
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
Example #10
0
    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
Example #11
0
 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)