示例#1
0
 def current_user(self):
     """Returns the logged in Facebook user, or None if unconnected."""
     if not hasattr(self, "_current_user"):
         self._current_user = None
         user_id = whfb.parse_cookie(self.request.COOKIES.get("fb_user"))
         if user_id and str(user_id).isdigit():
             self._current_user = self.persistence.get_user(user_id)
     return self._current_user
示例#2
0
    def get(self, request, **kwargs):
        logger.debug("HomeViewHandler.get()")
        #import pdb; pdb.set_trace()
        c_user = self.current_user
        if c_user is None or c_user.get('access_token', None) is None:
            args = dict(current_user=c_user)

            if is_mobile(request):
                template_dir = 'm'
            else:
                template_dir = 'w'
            response = render_to_response("%s/login_main.tmpl" % template_dir, args)
        else:
            args = dict(access_token=c_user['access_token'])
            response = HttpResponseRedirect("/view.py?" + urllib.urlencode(args))

        if self.request.COOKIES.get("fb_user", None) is not None:
            user_id = whfb.parse_cookie(self.request.COOKIES.get("fb_user"))
            whfb.set_cookie(response, "fb_user", str(user_id), domain=config.WH_DOMAIN, path="/", expires=time.time() + 30 * 86400)
        return response
示例#3
0
    def post(self, request, **kwargs):
        #import pdb; pdb.set_trace()
        flag_login= True

        self.uid = whfb.parse_cookie(request.COOKIES.get("fb_user"))
        
        if self.uid is None:
            #return HttpResponseRedirect('/')
            current_user = None
            self.access_token = None
            self.access_token_expires = -1
        else:
            current_user = self.current_user
            self.access_token = current_user['access_token']
            self.access_token_expires = current_user['access_token_expires']

            # extend access token if expiring within a day
            self.access_token, self.access_token_expires = self.fb.get_extended_access_token_w_timeout(self.access_token, self.access_token_expires, DAY_IN_SECS)
            logger.debug("access_token: %s, expires:%s", self.access_token, self.access_token_expires)

        redirect = self.get_coordinate()
        if redirect is not None:
            user_id = whfb.parse_cookie(request.COOKIES.get("fb_user"))
            if user_id is not None:
                whfb.set_cookie(redirect, "fb_user", str(user_id), domain=config.WH_DOMAIN, path="/", expires=time.time() + 30 * 86400)
            return redirect

        place_list = self.get_queryset()

        app_url = config.WEBSITE_HOST + '/view.py'
        if is_mobile(request):
            template_dir = 'm'
        else:
            template_dir = 'w'

        if len(place_list) == 0:
            flag_first_time = True
            template_name = "%s/location_main_first_time_user.tmpl" % template_dir
            place_list = self.get_general_queryset()
        else:
            flag_first_time = False
            template_name = "%s/location_main.tmpl" % template_dir

        #import pdb; pdb.set_trace()
        location_paginator, page, page.object_list, is_paginated = self.paginate_queryset(place_list, kwargs['paginate_by'])
        # Make sure page request is an int. If not, deliver first page.
        try:
            page_num = int(request.GET.get('page', '1'))
        except ValueError:
            page_num = 1

        # If page request (9999) is out of range, deliver last page of results.
        try:
            page = location_paginator.page(page_num)
        except (EmptyPage, InvalidPage):
            page = location_paginator.page(location_paginator.num_pages)

        places = page.object_list
        recommend_list = []
        checkin_list = []
        if self.flag_recommend or flag_first_time:
            recommend_list = places
            wh_q = 'recommend'
        else:
            checkin_list = places
            wh_q = 'checkin'
        return render_to_response(template_name,
                                  {'checkin_list': checkin_list, 'recommend_list': recommend_list, 
                                   'app_url': app_url, 'agent': request.META.get('HTTP_USER_AGENT', None),
                                   'client_country': self.client_loc_country, 'client_state': self.client_loc_state, 
                                   'client_city': self.client_loc_city, 'flag_geobrowsertried': request.GET.get('geobrowsertried', False),
                                   'client_lat': self.client_loc_latitude, 'client_long': self.client_loc_longitude,
                                   'ec2_page': config.EC2_APP_PAGE, 'access_token': self.access_token, 
                                   'is_paginated': is_paginated, 'page': page, 'paginator': location_paginator,
                                   'flag_login': flag_login, 'current_user': current_user, 'sort_by': self.sort_by, 'wh_q': wh_q
                                   })