def get_user(request): #XXX do not raise 404 but InvalidRequest user_id = request.GET.get('user_id') or request.POST.get('user_id') username = request.GET.get('username') or request.POST.get('username') if not user_id and not username: #XXX raise invalid request, not 404 raise Http404 user = get_user(user_id=user_id, username=username) list_to_serialize = [] # serialize() expects a list as first arg even though we if user: # only serializing a single object list_to_serialize.append(user) return HttpResponse(json_serializer.serialize(list_to_serialize, indent=2, use_natural_keys=True))
def get_user(request): #XXX do not raise 404 but InvalidRequest user_id = request.GET.get('user_id') or request.POST.get('user_id') username = request.GET.get('username') or request.POST.get('username') if not user_id and not username: #XXX raise invalid request, not 404 raise Http404 user = get_user(user_id=user_id, username=username) list_to_serialize = [ ] # serialize() expects a list as first arg even though we if user: # only serializing a single object list_to_serialize.append(user) return HttpResponse( json_serializer.serialize(list_to_serialize, indent=2, use_natural_keys=True))
def __init__(self, request, context_path='/'): logger.debug('TreeContext init') self.path = clean_uri_path(context_path) self.node = None self.authenticated_user = None self.user_permissions = [] self.user_permission_names = [] if hasattr(request, 'user'): # on front-end - auth app installed and user object available if request.user.is_authenticated() and request.user.is_active: # on front-end auth app installed and user object available #self.authenticated_username = request.user.username self.authenticated_user = request.user else: # offline back-end authenticated_username = '' if has_key(request.GET, 'authenticated_username'): authenticated_username = request.GET['authenticated_username'] elif has_key(request.POST, 'authenticated_username'): authenticated_username = request.POST['authenticated_username'] if authenticated_username: self.authenticated_user = get_user( username=authenticated_username) if not hasattr(settings, 'ZTREE_WS_BASE_URL') and self.authenticated_user: # not a remote instance, direct access to db self.user_permissions = get_user_context_permissions( self.path, self.authenticated_user) self.user_permission_names = [ p.content_type.app_label + '.' + p.codename for p in self.user_permissions ] if self.path and self.path != '/': self.node = tqm.get_node(self.path, tree_context=self) if not self.node: # probably invalid request (invalid tree context path) logger.error("invalid path: %s " % self.path) raise Http404 logger.debug("node set, path: %s, node: %s" % (self.path, self.node))
def update_last_login(request): """XXX method too exposed!! Data being update just by doing a http request with a user ID. Need to make it more difficult than this. Could pass down user_id and username and fetch User record based on that. User id not exposed to UI so makes it just a bit harder to update data. At the moment only <UserProxy>.save() calls this. XXX Make sure <UserProxy>.save() only called once from contrib.auth __init__.py to update last_login. """ print "IN update_last_login!!" user_id = request.POST.get('user_id') if not user_id: #XXX raise invalid request, not 404 raise Http404 user = get_user(user_id) user.last_login = datetime.datetime.now() user.save() return HttpResponse('1')
def __init__(self, request, context_path='/'): logger.debug('TreeContext init') self.path = clean_uri_path(context_path) self.node = None self.authenticated_user = None self.user_permissions = [] self.user_permission_names = [] if hasattr(request, 'user'): # on front-end - auth app installed and user object available if request.user.is_authenticated() and request.user.is_active: # on front-end auth app installed and user object available #self.authenticated_username = request.user.username self.authenticated_user = request.user else: # offline back-end authenticated_username = '' if has_key(request.GET, 'authenticated_username'): authenticated_username = request.GET['authenticated_username'] elif has_key(request.POST, 'authenticated_username'): authenticated_username = request.POST['authenticated_username'] if authenticated_username: self.authenticated_user = get_user(username=authenticated_username) if not hasattr(settings, 'ZTREE_WS_BASE_URL') and self.authenticated_user: # not a remote instance, direct access to db self.user_permissions = get_user_context_permissions(self.path, self.authenticated_user) self.user_permission_names = [p.content_type.app_label + '.' + p.codename for p in self.user_permissions] if self.path and self.path != '/': self.node = tqm.get_node(self.path, tree_context=self) if not self.node: # probably invalid request (invalid tree context path) logger.error("invalid path: %s " % self.path) raise Http404 logger.debug("node set, path: %s, node: %s" % (self.path, self.node))
def get_content_object(self, py_serialized_content): """Deserialize dict of content fields to a content object. py_serialized_content is the deserialized python struct { 'pk': 6, 'model': 'treeauth.localuser', 'fields': { 'user': 7, 'groups': [1, 3] } } """ logger.debug("LocalUserDeserializerUtil") logger.debug("py_serialized_content: " + str(py_serialized_content)) fields = py_serialized_content['fields'] # for some reasone returned as a list?? #user_id = fields['user'] username = fields['user'][0] group_names = [] # groups returned as list of lists probably as many-to-many for grp in fields['groups']: # for some reason list of lists?? group_names.append(grp[0]) logger.debug("username: "******"group_names: " + str(group_names)) user = get_user(username=username) logger.debug("got user: "******"got groups: " + str(type(groups))) local_user = LocalUserProxy(user, groups) logger.debug("created local_user instance: " + str(local_user)) return local_user
def get_content_object(self, py_serialized_content): """Deserialize dict of content fields to a content object. py_serialized_content is the deserialized python struct { 'pk': 6, 'model': 'treeauth.localuser', 'fields': { 'user': 7, 'groups': [1, 3] } } """ logger.debug("LocalUserDeserializerUtil") logger.debug("py_serialized_content: " + str(py_serialized_content) ) fields = py_serialized_content['fields'] # for some reasone returned as a list?? #user_id = fields['user'] username = fields['user'][0] group_names = [] # groups returned as list of lists probably as many-to-many for grp in fields['groups']: # for some reason list of lists?? group_names.append(grp[0]) logger.debug("username: "******"group_names: " + str(group_names)) user = get_user(username=username) logger.debug("got user: "******"got groups: " + str(type(groups))) local_user = LocalUserProxy(user, groups) logger.debug("created local_user instance: " + str(local_user)) return local_user
def clean_username(self): username = self.cleaned_data["username"] if get_user(username=username): # user with this username alredy exists raise forms.ValidationError("A user with that username already exists.") return username
def get_user(self, user_id): return ztreeauth.get_user(user_id)