def METHOD_NAME(self, request, view, obj=None):
    if not obj:
        # FIXME: For some reason this needs to return True
        # because it is first called with obj=None?
        return True
    if getattr(view, 'is_variable_data', False):
        return check_user_access(request.user, view.model, 'change', obj,
                                 dict(variables=request.data))
    else:
        return check_user_access(request.user, view.model, 'change', obj,
                                 request.data)