pytask/helpers/exceptions.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Tue, 01 Feb 2011 04:32:53 +0530
changeset 541 a1007eb3fff9
parent 539 59e032315ab9
permissions -rwxr-xr-x
Add a base exception class and make unauthorization class a subclass.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
539
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
"""Module containing the exceptions that can be raised.
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
"""
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
__authors__ = [
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
    '"Madhusudan.C.S" <madhusudancs@fossee.in>',
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
    ]
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
from django.utils.translation import ugettext
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
541
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    13
DEFAULT_ERROR_MESSAGE = ugettext(
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    14
  "There was some error in your request.")
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    15
539
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    16
DEFAULT_LOGIN_MESSAGE = ugettext(
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    17
  "You have to login to view this page.")
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
541
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    20
class PyTaskException(Exception):
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    21
    """Base exception class to be used through out PyTask
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    22
    """
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    23
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    24
    def __init__(self, message=None, **response_args):
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    25
        """Constructor specifying the exception specific attributes.
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    26
        """
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    27
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    28
        if not message:
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    29
            message = DEFAULT_ERROR_MESSAGE
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    30
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    31
        self.message = message
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    32
        self.response_args = response_args
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    33
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    34
        super(PyTaskException, self).__init__()
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    35
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    36
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    37
class UnauthorizedAccess(PyTaskException):
539
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    38
    """Exception that is raised when some one tries to access a view
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
    without the right priviliges.
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
    """
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    41
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    42
    def __init__(self, message=None, **response_args):
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    43
        """Constructor specifying the exception specific attributes
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    44
        """
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    45
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    46
        if not message:
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    47
            message = DEFAULT_LOGIN_MESSAGE
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    48
541
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    49
        response_args['status'] = 401
539
59e032315ab9 Add exception middleware and related files.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    50
541
a1007eb3fff9 Add a base exception class and make unauthorization class a subclass.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 539
diff changeset
    51
        super(UnauthorizedAccess, self).__init__(message, **response_args)