web/_exceptions.py
author Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
Fri, 24 Apr 2009 09:04:45 +0200
branchtls-sprint
changeset 1465 42f13c790f11
parent 320 e2647e72afe7
child 1802 d628defebc17
permissions -rw-r--r--
fix bug in actions: action.row/col might be None and can't be passed directly to rset.get_entity

# pylint: disable-msg=W0401,W0614
"""exceptions used in the core of the CubicWeb web application

:organization: Logilab
:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
"""
__docformat__ = "restructuredtext en"

from cubicweb._exceptions import *

class PublishException(CubicWebException):
    """base class for publishing related exception"""
    
class RequestError(PublishException):
    """raised when a request can't be served because of a bad input"""

class NothingToEdit(RequestError):
    """raised when an edit request doesn't specify any eid to edit"""
    
class NotFound(RequestError):
    """raised when a 404 error should be returned"""

class Redirect(PublishException):
    """raised to redirect the http request"""
    def __init__(self, location):
        self.location = location

class DirectResponse(Exception):
    def __init__(self, response):
        self.response = response

class StatusResponse(Exception):
    def __init__(self, status, content=''):
        self.status = int(status)
        self.content = content
    
class ExplicitLogin(AuthenticationError):
    """raised when a bad connection id is given or when an attempt to establish
    a connection failed"""

class InvalidSession(CubicWebException):
    """raised when a session id is found but associated session is not found or
    invalid
    """

class RemoteCallFailed(RequestError):
    """raised when a json remote call fails
    """
    def __init__(self, reason=''):
        #super(RequestError, self).__init__() # XXX require py >= 2.5
        RequestError.__init__(self)
        self.reason = reason

    def dumps(self):
        import simplejson
        return simplejson.dumps({'reason': self.reason})