Beispiel #1
0
def get_user_info_ajax(request, id = None):
    site_response = AjaxServiceResponse(success=False,
                                        message="whoops", 
                                        message_description='No go. Try again later.')
    
    if (request.user.has_perm('VIEW_PROFILE') or id == request.user.reckoner_id):
        try:
            if request.method == 'GET':
                service_response = client_get_user_by_id(id, request.user.session_id)
                
                if (not service_response.status.success):
                    logger.warning("Error when retrieving user profile: " + service_response.status.message)
                elif (not service_response.reckoner_user):
                    site_response = AjaxServiceResponse(success=False,
                        message="not found", 
                        message_description='No user by that ID.')
                else:
                    site_response = UserAjaxResponse(success=True,
                        message="Success.", 
                        message_description='Success!',
                        reckoner_user=service_response.reckoner_user)
                    
            print site_response.getXMLString()
                
        except Exception:
            logger.error("Exception when getting a user:") 
            logger.error(traceback.print_exc(8))    

    return HttpResponse(site_response.getXMLString())
def get_user(session_id, user_id=None):
    '''
    Retrieves the user information associated with the specified session ID or user ID.
    '''
    siteUser = None
    
    if (user_id):
        userResponse = client_get_user_by_id(user_id, session_id)
    else:
        userResponse = client_get_user_by_session(session_id)
        
    if (userResponse):
        if ((not userResponse.status.success) or (not userResponse.reckoner_user)):
            logger.warning('Failed to retrieve user from Reckoner Services: ' \
                           + userResponse.status.message)
            return None
        else:
            if (userResponse.auth_session):
                siteUser = SiteCustomUser(reckoner_user = userResponse.reckoner_user, 
                                          auth_session = userResponse.auth_session) 
            else:
                siteUser = SiteCustomUser(reckoner_user = userResponse.reckoner_user)                   
                siteUser.session_id = session_id
               
    return siteUser
Beispiel #3
0
def get_user_profile(request, id = None, name = None):

    try:        
        # Check to see if we're coming here from a GET.  If so, we've got work to do.
        if request.method == 'GET':
            
            service_response = client_get_user_by_id(id, request.user.session_id)
            
            if (not service_response.status.success):
                logger.warning("Error when retrieving user profile: " + service_response.status.message)
                raise BaseException() 
            elif (not service_response.reckoner_user):
                raise Http404
            elif (request.path != service_response.reckoner_user.getURL()):
                return HttpResponseRedirect(service_response.reckoner_user.getURL())
            else:         
                page_url = service_response.reckoner_user.getURL()
                             
                # Pull the relevant variables from the request string.
                page = request.GET.get('page', "1")
                size = request.GET.get('size', None)
                tab = request.GET.get('tab', None)
                
                # Persist the specified variables in the session for when the user navigates away and back.
                # Otherwise, pull the information out of the session                    
                if (size):
                    request.session['user-size'] = size
                else:
                    size = request.session.get('user-size', '15')         
                    
                if (tab):
                    request.session['user-tab'] = tab
                else:
                    tab = request.session.get('user-tab', 'newest') 
                
                reckonings_response = client_get_user_reckonings(id, int(page)-1, size, request.user.session_id)
                comments_response = client_get_user_comments(id, int(page)-1, size, request.user.session_id)
                votes_response = client_get_user_reckoning_votes(id, int(page)-1, size, request.user.session_id)
                tracking_response = client_get_favorited_reckonings(id, int(page)-1, size, request.user.session_id)
                
                # Execute the correct action based on the selected tab and info.  Valid tabs:
                #  * tracking, comments, votes, reckonings
                if (tab == "tracking"):
                    reckoning_count = tracking_response.count
                    reckonings = tracking_response.reckonings
                elif (tab == "comments"):
                    reckoning_count = comments_response.count                    
                    reckonings = comments_response.reckonings
                elif (tab == "votes"):
                    reckoning_count = votes_response.count                    
                    reckonings = votes_response.reckonings
                else:
                    tab = 'reckonings'
                    reckoning_count = reckonings_response.count
                    reckonings = reckonings_response.reckonings
                            
                context = {'profile_user' : service_response.reckoner_user,
                           'reckonings' : reckonings,
                           'page' : int(page),
                           'size' : int(size),
                           'tab'  : tab,
                           'page_url' : page_url,
                           'reckoning_count' : reckonings_response.count,
                           'comment_count' : comments_response.comment_count,
                           'vote_count' : votes_response.count,
                           'tracking_count' : tracking_response.count}
                
                context.update(pageDisplay(page, size, reckoning_count))
                c = RequestContext(request, context)
            
                return render_to_response('user_profile.html', c)
    except Exception:
        logger.error("Exception when showing a user profile:") 
        logger.error(traceback.print_exc(8))
        raise Exception