def checkin_succeeded(request, user, area=None, env=None, virtual=False): from client.api import AreaResource, EnvironmentResource, UserResource ## default is to just return an 200 OK http response response = {"success": True, "code": 200, "data": {}} ## add the value of the virtual checkin flag response['data'].update({'virtual': virtual}) ## add the user URI as data payload - will be used for all notifications user_uri = UserResource().get_resource_uri(user) response['data'].update({'user_uri': user_uri}) if area: ## return data about the area resource ar = AreaResource() ar_bundle = ar.build_bundle() ar_item = ar.obj_get(ar_bundle, pk=area.id) ar_bundle.obj = ar_item ar_bundle.request = request try: area_data = ar.full_dehydrate(ar_bundle).data response['data'].update(area_data) except ImmediateHttpResponse, error: return error.response
def to_serializable(self, request = None, virtual = False, include_data = False): from client.api import UserResource serialized_feature = super(ConferenceRoleFeature, self).to_serializable(request = request, virtual=virtual, include_data=include_data) ''' We want to return data only if there is request from a known user. Otherwise we return nothing ''' if include_data and request and hasattr(request, 'user') and not request.user.is_anonymous(): ''' From the list of participant roles retrieve the one corresponding to the user_profile of the user making the request ''' try: confrole = self.participant_roles.get(user_profile = request.user.get_profile()) role_dict = {'data' : {'user' : {'user_uri': UserResource().get_resource_uri(confrole.user_profile), 'first_name': confrole.user_profile.user.first_name, 'last_name': confrole.user_profile.user.last_name }, 'role' : confrole.role } } serialized_feature.update(role_dict) except: pass return serialized_feature
def create_anonymous_succeeded(request): from client.api import UserResource response = {"success": True, "code": 200, "data": {}} new_user = request.user if not new_user is None and not new_user.get_profile() is None: user_res_uri = UserResource().get_resource_uri(new_user.get_profile()) response['data'].update({'user_uri': user_res_uri}) return view_response(request, response, 200)
def register_succeeded(request, user): from client.api import UserResource response = {"success": True, "code": 200, "data" : {}} if not user.get_profile().is_anonymous: user_res_uri = UserResource().get_resource_uri(user.get_profile()) response['data'].update({'resource_uri' : user_res_uri}) if user.first_name and user.last_name: response['data'].update({'first_name' : user.first_name, 'last_name' : user.last_name}) return view_response(request, response, 200)
def is_authorized(self, request, object=None): from client.api import UserResource if request.method.upper() == "PUT": if hasattr(request, 'user') and not request.user.is_anonymous(): user_res_uri = request.path user_obj = None try: user_obj = UserResource().get_via_uri(user_res_uri, request=request) #print "[User authorization] user_obj: ", user_obj except Exception: #print "[User authorization] exception in getting user resource for update: ", ex user_obj = None ## now test for equality between request.user and user_obj if request.user.get_profile() == user_obj: return True elif request.method.upper() == "GET": return True return False
from django.conf.urls.defaults import patterns, include, url #from tastypie.api import Api from client.api import ClientApi from client.api import EnvironmentResource, AreaResource, FeatureResource, AnnotationResource,\ AnnouncementResource, HistoryResource, UserResource, EnvrionmentContextResource #from client.views import checkin, checkout v1_api = ClientApi(api_name='v1') v1_api.register(EnvironmentResource()) v1_api.register(AreaResource()) v1_api.register(FeatureResource()) v1_api.register(AnnotationResource()) v1_api.register(AnnouncementResource()) v1_api.register(HistoryResource()) v1_api.register(UserResource()) v1_api.register(EnvrionmentContextResource()) urlpatterns = patterns( '', #url(r'^checkin/$', checkin, name="checkin"), #url(r'^checkout/$', checkout, name="checkout"), (r'', include(v1_api.urls)), )