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
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