Ejemplo n.º 1
0
	def is_logged(rhandler=None):
		session = get_current_session()
		if session.has_key('user'):
			return session['user']
		else:
			if rhandler is not None:
				fbcookie = facebook.get_user_from_cookie(rhandler.request.cookies)
				if fbcookie:
					graph = facebook.GraphAPI(fbcookie["access_token"])
					profile = graph.get_object("me")
					query = User.all().filter('fb_ui =', profile['id']).fetch(1);
					if len( query ) == 1:
					    session = get_current_session()
					    user = query[0]
					    if session.is_active():
					        session.terminate()
					    session.regenerate_id()
					    session['user'] = user

					    #update access_token.....
					    if user.fb_access_token != fbcookie["access_token"]:
					    	user.fb_access_token = fbcookie["access_token"]
					    	user.put();

		if session.has_key('user'):
			return session['user']
		else:
			return False
Ejemplo n.º 2
0
	def __init__(self,cookies):
		self.ids = set()
		user = facebook.get_user_from_cookie(cookies, Vars.FACEBOOK_APP_ID, Vars.FACEBOOK_APP_SECRET)
		if user:
			self.loggedIn = True
			# self.currentToken = user["access_token"]
			self.graph = facebook.GraphAPI(user["access_token"])
			self.current = int(user['uid'])
			self.addId(user['uid'])
			# self.profile = self.graph.get_object("me")
			# friends = graph.get_connections("me", "friends")
		else:
			self.graph = facebook.GraphAPI()
		if Vars.TESTING:
			self.current = 11111
Ejemplo n.º 3
0
    def get(self):
        fbcookie = facebook.get_user_from_cookie(self.request.cookies)
        if not fbcookie:
            self.redirect('/')
            return
        
        user = User.is_logged(self)
        graph = facebook.GraphAPI(fbcookie["access_token"])
        profile = graph.get_object("me")
        if not user:
            password = helpers.random_string(8)
            user = User(nickname = profile['username'].lower(), password = User.slow_hash(password));
            user.fb_access_token = fbcookie["access_token"]
            try: user.about = profile['bio'] 
            except: pass

            try: user.location = profile['location']['name'] 
            except: pass    

            try: user.firstname = profile['first_name'] 
            except: pass    

            try: user.lastname = profile['last_name'] 
            except: pass    

            try: user.fb_profile_url = profile['link']
            except: pass    

            try: user.fb_ui = profile['id']
            except: pass    

            user.put()

            session = get_current_session()
            session.regenerate_id()
            session['user'] = user
            self.redirect('/')
        else:
            if str(user.fb_ui) == str(profile['id']):
                self.redirect('/')
            else:
                #TODO
                #USUARIO CAMBIO DE ID?? o ESTA VINCULANDO A CUENTA EXISTENTE
                pass
Ejemplo n.º 4
0
    def current_user(self):
        if settings.DEBUG:


            # Since we can't test real FB user on localhost
            # I made a fake account
            user = User.get_by_key_name('100000145269859')
            if not user:
                user = User(
                    key_name='100000145269859',
                    id='100000145269859',
                    username='******',
                    name='Eka Putra',
                    profile_url='https://facebook.com/ekaputra07',
                    is_admin=True,
                    access_token='AAAH4xJelaP7vErxcrgPn7VZCdFfmUReP6ZC29tYHui5OO',
                )
                user.put()

            self.session['user'] = dict(
                username=user.username,
                name=user.name,
                profile_url=user.profile_url,
                id=user.id,
                access_token=user.access_token,
                is_admin=user.is_admin,
            )
            return self.session.get('user');


        else:
            if self.session.get("user"):
                # User is logged in
                return self.session.get("user")
            else:
                # Either used just logged in or just saw the first page
                # We'll see here
                cookie = facebook.get_user_from_cookie(self.request.cookies,
                                                   settings.FACEBOOK_APP_ID,
                                                   settings.FACEBOOK_APP_SECRET
                                                   )
                if cookie:
                    # Okay so user logged in.
                    # Now, check to see if existing user
                    user = User.get_by_key_name(cookie["uid"])
                    if not user:
                        # Not an existing user so get user info
                        graph = facebook.GraphAPI(cookie["access_token"])
                        profile = graph.get_object("me")

                        username = profile.get('username', 'user%s' % str(profile['id'])[-4:])
                        user = User(
                            key_name=str(profile['id']),
                            id=str(profile['id']),
                            username=username,
                            name=profile['name'],
                            profile_url=profile['link'],
                            access_token=cookie['access_token']
                        )
                        user.put()
                    elif user.access_token != cookie['access_token']:
                        user.access_token = cookie['access_token']
                        user.put()
                    # User is now logged in
                    self.session['user'] = dict(
                        username=user.username,
                        name=user.name,
                        profile_url=user.profile_url,
                        id=user.id,
                        access_token=user.access_token,
                        is_admin=user.is_admin,
                    )
                    return self.session.get("user")
            return None