app/projrev/views/helpers/access.py
author Santosh G. Vattam <vattam.santosh@gmail.com>
Thu, 06 Aug 2009 18:49:06 +0530
changeset 33 2840389ee7f9
parent 5 88ae12bc6280
child 8 294ff7ac9cb6
permissions -rw-r--r--
Added checkAccess routine
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
"""This module contains the access checks
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
"""
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
__authors__ = [
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
  '"Madhusudan.C.S" <madhusudancs@gmail.com>',
88ae12bc6280 Access check helper file added.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
]
33
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
     8
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
     9
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    10
def checkAccess(func, request):
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    11
  """ To check the access of the user and then return the appropriate function 
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    12
object
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    13
 """
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    14
  user_kind = rights[func.__name__]
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    15
  if user.is_authenticated():
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    16
    if user_kind == 'staff':
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    17
      if user.is_staff:
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    18
        return func(request)
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    19
      else:
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    20
        return 
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    21
        
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    22
    if user_kind == 'proposer':
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    23
      if not user.is_staff:
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    24
        return func(request)
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    25
      else:
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    26
        return
2840389ee7f9 Added checkAccess routine
Santosh G. Vattam <vattam.santosh@gmail.com>
parents: 5
diff changeset
    27