src/cm/security.py
changeset 523 cc1cd48289e0
parent 522 c9c2148f09c9
child 540 dce127afac9d
equal deleted inserted replaced
522:c9c2148f09c9 523:cc1cd48289e0
    39     
    39     
    40     # make sure perm exist
    40     # make sure perm exist
    41     assert Permission.objects.get(codename=perm_name)
    41     assert Permission.objects.get(codename=perm_name)
    42     
    42     
    43     user = get_request_user(request)
    43     user = get_request_user(request)
    44     myself = request.GET.get('name', None)
    44     try:
       
    45       myself = request.GET.get('name', None)
       
    46     except AttributeError:
       
    47       myself = None
    45     key = sha1(str((settings.SITE_URL, 'has_perm', (user, myself, text, perm_name)))).hexdigest()
    48     key = sha1(str((settings.SITE_URL, 'has_perm', (user, myself, text, perm_name)))).hexdigest()
    46     val = cache.get(key)
    49     val = cache.get(key)
    47     if val != None:
    50     if val != None:
    48       return val
    51       return val
    49 
    52 
    86         return True
    89         return True
    87     
    90     
    88     # make sure perm exist
    91     # make sure perm exist
    89     assert Permission.objects.get(codename=perm_name)
    92     assert Permission.objects.get(codename=perm_name)
    90 
    93 
    91     myself = request.GET.get('name', None)
    94     try:
       
    95       myself = request.GET.get('name', None)
       
    96     except AttributeError:
       
    97       myself = None
    92     key = sha1(str((settings.SITE_URL, 'has_own_perm', (user, myself, text, comment, perm_name)))).hexdigest()
    98     key = sha1(str((settings.SITE_URL, 'has_own_perm', (user, myself, text, comment, perm_name)))).hexdigest()
    93     val = cache.get(key)
    99     val = cache.get(key)
    94     if val != None:
   100     if val != None:
    95       return val
   101       return val
    96     
   102     
   122         return False
   128         return False
   123     
   129     
   124     actual_own_user = False
   130     actual_own_user = False
   125     if comment.user == request.user:
   131     if comment.user == request.user:
   126       if DECORATED_CREATORS:
   132       if DECORATED_CREATORS:
   127         if request.GET.get('name', None) == comment.get_name():
   133         if myself == comment.get_name():
   128           actual_own_user = True
   134           actual_own_user = True
   129       else:
   135       else:
   130         actual_own_user = True
   136         actual_own_user = True
   131     ret = (actual_own_user and has_perm(request, perm_name, text=text)) 
   137     ret = (actual_own_user and has_perm(request, perm_name, text=text)) 
   132     cache.set(key, ret)
   138     cache.set(key, ret)
   184     """
   190     """
   185     Get comments visibles by user
   191     Get comments visibles by user
   186     comments: queryset
   192     comments: queryset
   187     """
   193     """
   188     user = get_request_user(request)
   194     user = get_request_user(request)
   189     myself = request.GET.get('name', None)
   195     try:
       
   196       myself = request.GET.get('name', None)
       
   197     except AttributeError:
       
   198       myself = None
   190     key = sha1(str((settings.SITE_URL, 'get_viewable_comments', (user, myself, text, comments)))).hexdigest()
   199     key = sha1(str((settings.SITE_URL, 'get_viewable_comments', (user, myself, text, comments)))).hexdigest()
   191     val = cache.get(key)
   200     val = cache.get(key)
   192     if val != None:
   201     if val != None:
   193       return val
   202       return val
   194         
   203