Django

Code

Changeset 3614

Show
Ignore:
Timestamp:
08/19/06 11:26:11 (2 years ago)
Author:
clong
Message:

[per-object-permissions] Fixed bug in if_has_perm tag that would cause it to not work if an object paramter was not passed to it

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/per-object-permissions/django/contrib/auth/templatetags/auth.py

    r3589 r3614  
    3434        not_flag = True 
    3535        permission=tokens[2] 
    36         if tokens[3]
     36        if len(tokens)>3
    3737            object=tokens[3] 
    3838    else: 
    3939        permission=tokens[1] 
    40         if tokens[2]
     40        if len(tokens)>2
    4141            object=tokens[2] 
    4242 
     
    7070        return nodes 
    7171 
    72     def render(self, context): 
    73         try: 
    74             object = template.resolve_variable(self.object_name, context) 
    75         except template.VariableDoesNotExist: 
    76             return '' 
     72    def render(self, context):    
     73        if self.object_name: 
     74            try: 
     75                object = template.resolve_variable(self.object_name, context) 
     76            except template.VariableDoesNotExist: 
     77                return '' 
     78        else: 
     79            object=None 
    7780         
    7881        try: 
     
    8790        if (self.not_flag and bool_perm) or (not self.not_flag and not bool_perm): 
    8891            return self.nodelist_false.render(context) 
     92        return '' 
    8993         
    9094register.tag('if_has_perm', if_has_perm)