def has_change_permission(self, request, obj=None):
        """Return True if we have permission to change the object.

        If ``obj`` is None, we just have to check if we have global
        permissions or if we have the permission through a permission mapper.

        TODO: specific check for object permissions.

        """
        opts = self.opts
        perm = opts.app_label + '.' + opts.get_change_permission()
        # TODO: object permissions
        if request.user.has_perm(perm):
            return True
        result = perm in self._available_permissions()
        print "%r in %s: %s" % (perm, self._available_permissions(), result)
        return result