示例#1
0
    def get(self):
        session = get_current_session()
        
        if session.is_active():
            session.terminate()
        
        user = users.get_current_user()
        ca_user = CAUser.all().filter("google_user", user).fetch(1)
        
        if ca_user:
            logging.debug('User registered with Google account. Login successfull')
            ca_user = ca_user[0]
        else:
            ca_user = CAUser(google_user=user, type=0)
            ca_user.put()
            
        save_session_info(ca_user)
        
#        template_values = {
#            'session_status': True,
#            'user': session['active_user'],
#            'top_scorers': get_top_scorers(),
#            'top_users': get_top_users_global_ranking(),
#            'last_jackpot': get_last_jackpot()
#        }
#                
#        render_template(self, 'create_step1.html', template_values)
        self.redirect('/list/groups/ranking')
示例#2
0
    def get(self):
        session = get_current_session()
        
        if session.is_active():
            session.terminate()
        
        verification_code = self.request.get("code")
        
        args = dict(client_id=FACEBOOK_APP_ID,
                    redirect_uri=self.request.path_url)
        
        if verification_code:
            args["client_secret"] = FACEBOOK_APP_SECRET
            args["code"] = self.request.get("code")
            response = cgi.parse_qs(urllib.urlopen("https://graph.facebook.com/oauth/access_token?" +
                                                   urllib.urlencode(args)).read())
            
            access_token = response["access_token"][-1]

            # Download the user profile and cache a local instance of the
            # basic profile info
            profile = json.load(urllib.urlopen("https://graph.facebook.com/me?" + urllib.urlencode(dict(access_token=access_token))))

            user = CAFacebookUser(key_name=str(profile["id"]),
                                  id=str(profile["id"]),
                                  name=profile["name"],
                                  access_token=access_token)

            ca_user = CAUser.all().filter("facebook_user", user).fetch(1)
            
            if ca_user:
                logging.debug('User registered with Facebook account. Login successfull')
                ca_user = ca_user[0]
            else:
                user.put()
                ca_user = CAUser(facebook_user=user, type=1)
                ca_user.put()
                
            save_session_info(ca_user)
            
#            template_values = {
#                'session_status': True,
#                'user': session.get('active_user'),
#                'top_scorers': get_top_scorers(),
#                'top_users': get_top_users_global_ranking(),
#                'last_jackpot': get_last_jackpot()
#            }
        
            set_cookie(self.response, "fb_user",
                       str(profile["id"]),
                       expires=time.time() + 30 * 86400)
            
#            render_template(self, 'create_step1.html', template_values)

            self.redirect('/list/groups/ranking')
        else:
            self.redirect("https://graph.facebook.com/oauth/authorize?" +
                          urllib.urlencode(args))
示例#3
0
    def post(self):
        session = get_current_session()
        
        if session.is_active():
            session.terminate()
            
        accept = self.request.get('accept')
        google = self.request.get('google')
        
        """
        Login con autenticacion nativa
        """
        if accept:
            logging.debug('Login with native credentials')
            
            email = self.request.get('email')
            password = self.request.get('password')
            
            if email and password:
                logging.debug('Checking credentials')
                
                user = CANativeUser.all().filter("email =", email).fetch(1)
    
                if user:
                    if user[0].password == password:
                        logging.debug('Username and password correct. Login successfull')
                        
                        ca_user = CAUser.all().filter("native_user", user[0]).fetch(1)
                        
                        if ca_user:
                            logging.debug('User registered with Native account. Login successfull')
                            ca_user = ca_user[0] 
                        else:
                            ca_user = CAUser(google_user=user[0], type=0)
                            ca_user.put()

                        save_session_info(ca_user)
                        
#                        template_values = {
#                            'session_status': True,
#                            'user': session['active_user'],
#                            'top_scorers': get_top_scorers(),
#                            'top_users': get_top_users_global_ranking(),
#                            'last_jackpot': get_last_jackpot()
#                        }
                        
#                        render_template(self, 'create_step1.html', template_values)
                        
                        sandra_key = Key('ag5zfnR1cXVpbmllbGFjYXIOCxIGQ0FVc2VyGJqdAQw')
                        christian_key = Key('ag5zfnR1cXVpbmllbGFjYXINCxIGQ0FVc2VyGNR1DA')
                        mariel_key = Key('ag5zfnR1cXVpbmllbGFjYXIOCxIGQ0FVc2VyGIG0AQw')
                        francisco_key = Key('ag5zfnR1cXVpbmllbGFjYXIOCxIGQ0FVc2VyGIbUAQw')
                        
                        ca_user_key = ca_user.key() 
                        
                        if ca_user_key == sandra_key or ca_user_key == christian_key or ca_user_key == mariel_key or ca_user_key == francisco_key:
                            self.redirect('/create/step1')
                        else:
                            self.redirect('/list/groups/ranking')
                    else:
                        logging.debug('Incorrect password. . Login failed')
                        
                        template_values = {
                            'error': 'Clave incorrecta. Intente de nuevo'
                        }
    
                        render_template(self, 'login.html', template_values)
                else:
                    logging.debug('Incorrect username. Login failed')
                    
                    template_values = {
                        'error': 'Usuario incorrecto. Intente de nuevo'
                    }
    
                    render_template(self, 'login.html', template_values)
            else:
                logging.debug('Username o password missing. Login failed')
                    
                template_values = {
                    'error': 'Usuario o clave faltantes. Intente de nuevo'
                }
                
                render_template(self, 'login.html', template_values)
        else:
            """
            Login con autenticacion de google o facebook
            """
            if google:
                logging.debug('GOOGLE')
                logging.debug('Login with Google')
                self.redirect(users.create_login_url('/auth/google'))
            else:
                logging.debug('FACEBOOK')
                logging.debug('Login with Facebook')
                self.redirect("/auth/facebook")