def __call__(self, **kwargs): from nefertari.utils import issequence result = kwargs['result'] self.drop_hidden = kwargs.get('drop_hidden', True) if not isinstance(result, dict): return result data = result.get('data', result) if data and isinstance(data, (dict, list)): self.is_admin = kwargs.get('is_admin') if self.is_admin is None: user = getattr(self.request, 'user', None) self.is_admin = user is not None and type(user).is_admin(user) if issequence(data) and not isinstance(data, dict): kw = { 'is_admin': self.is_admin, 'drop_hidden': self.drop_hidden } data = [apply_privacy(self.request)(result=d, **kw) for d in data] else: data = self._filter_fields(data) if 'data' in result: result['data'] = data else: result = data return result
def __call__(self, **kwargs): '''converts objects in `result` into dicts''' from nefertari.utils import issequence result = kwargs['result'] if isinstance(result, dict): return result _fields = kwargs.get('_fields', []) if hasattr(result, '_nefertari_meta'): _fields = result._nefertari_meta.get('fields', []) if hasattr(result, "to_dict"): return result.to_dict(_keys=_fields, request=self.request) elif issequence(result): # make sure its mutable, i.e list result = list(result) for ix, each in enumerate(result): result[ix] = obj2dict(self.request)( _fields=_fields, result=each) return result