Exemple #1
0
 def data(self, **kwargs):
     res = clib.get_obj(self.serializer, **kwargs)
     srl = self.serializer(res['object'])
     gids = self.groups(res['object'].pk)
     resp = clib.jsonresult(srl.data)
     resp['result']['groups'] = gids['result']
     return resp
Exemple #2
0
    def data(self, **kwargs):
        try:
            cast = kwargs.pop('cast')
        except KeyError:
            cast = False

        res = get_obj(self.serializer, **kwargs)
        if cast:
            self.serializer = (cast_serializer(kwargs.get('kind'))
                               or self.serializer)
        srl = self.serializer(res['object'], context={})
        return jsonresult(srl.data)
Exemple #3
0
 def add(self, **kwargs):
     try:
         # TODO. MUST BE ADRESSED IN API 3.1.
         try:
             data = self.request.data.dicts[0] or self.request.data.dicts[1]
         except:
             data = self.request.data
         if kwargs:
             data.update(kwargs)
         srl = self.serializer(data=data)
         if srl.is_valid():
             srl.save()
             return jsonresult(srl.data)
         return jsonerror(srl.errors)
     except ValidationError as e:
         return jsonerror('Error: {}'.format(e))
Exemple #4
0
 def upd(self, **kwargs):
     try:
         res = get_obj(self.serializer, **kwargs)
         if res.get('error'):
             return jsonerror(res['error'])
         srl = self.serializer(res['object'],
                               data=self.request.data,
                               partial=True)
         if srl.is_valid():
             srl.save()
             return jsonresult(srl.data)
         return jsonerror(''.join([
             ','.join([k + '-' + ''.join(v)])
             for k, v in srl.errors.items()
         ]))
     except ValidationError as e:
         return jsonerror('Error: {}'.format(e))
Exemple #5
0
 def add(self, **kwargs):
     try:
         # TODO. MUST BE ADRESSED IN API 3.1.
         try:
             data = self.request.data.dicts[0] or self.request.data.dicts[1]
         except:
             data = self.request.data
         data['content'] = self.request.data['content']
         data['content_type'] = self.request.data['content'].content_type
         if kwargs:
             data.update(kwargs)
         srl = self.serializer(data=data)
         # TODO. Remove save method and use "create" instead.
         if srl.is_valid():
             srl.save()
             return clib.jsonresult(srl.data)
         return clib.jsonerror(srl.errors)
     except ValidationError as e:
         return clib.jsonerror('Error: {}'.format(e))
Exemple #6
0
            user.set_password(self.request.data['password'])
            user.save()
            return clib.jsonsuccess('Password has been changed')
        except KeyError:
            return clib.jsonerror('Could not change password')

    def add_group(self, uid, gid):
        try:
            user = self.serializer.Meta.model.objects.get(pk=uid)
            user.groups.add(int(gid))
        except Exception, e:
            return clib.jsonerror(str(e))
        return clib.jsonsuccess('User has been assigned to a group %s' % gid)

    def rm_group(self, uid, gid):
        try:
            user = self.serializer.Meta.model.objects.get(pk=uid)
            user.groups.remove(int(gid))
        except Exception, e:
            return clib.jsonerror(str(e))
        return clib.jsonsuccess('User has been removed from a group %s' % gid)

    def groups(self, uid):
        try:
            user = self.serializer.Meta.model.objects.get(pk=uid)
        except Exception, e:
            return clib.jsonerror(str(e))
        return clib.jsonresult(
            [{'id': i[0], 'name': i[1]} for i in user.groups.values_list('id', 'name')]
        )
Exemple #7
0
 def ls(self):
     queryset = self.serializer.Meta.model.objects.all()
     return jsonresult(self.serializer(queryset, many=True).data)