示例#1
0
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))
示例#2
0
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))
示例#3
0
    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))
示例#4
0
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')
示例#5
0
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')
示例#6
0
    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))
示例#7
0
    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
示例#8
0
    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
示例#9
0
 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
示例#10
0
 def get_user(self, user_id):
     return ztreeauth.get_user(user_id)
示例#11
0
 def get_user(self, user_id):
     return ztreeauth.get_user(user_id)