code: def do_permissionif(parser, token):
      
      bits = token.split_contents()
      ELIF = "el%s" % bits[0]
      ELSE = "else"
      ENDIF = "end%s" % bits[0]
  
      # {% if ... %}
      bits = bits[1:]
      condition = do_permissionif.Parser(parser, bits).parse()
      nodelist = parser.parse((ELIF, ELSE, ENDIF))
      conditions_nodelists = [(condition, nodelist)]
      token = parser.next_token()
  
      # {% elif ... %} (repeatable)
      while token.contents.startswith(ELIF):
          bits = token.split_contents()[1:]
          condition = do_permissionif.Parser(parser, bits).parse()
          nodelist = parser.parse((ELIF, ELSE, ENDIF))
          conditions_nodelists.append((condition, nodelist))
          token = parser.next_token()
  
      # {% else %} (optional)
      if token.contents == ELSE:
          nodelist = parser.parse((ENDIF,))
          conditions_nodelists.append((None, nodelist))
          token = parser.next_token()
  
      # {% endif %}
      assert token.contents == ENDIF
  
      return IfNode(conditions_nodelists)
docs: Permission if templatetag
  
      Examples
      --------
      ::
  
          {% if user has 'blogs.add_article' %}
              <p>This user have 'blogs.add_article' permission</p>
          {% elif user has 'blog.change_article' of object %}
              <p>This user have 'blogs.change_article' permission of {{object}}</p>
          {% endif %}
  
          {# If you set 'PERMISSION_REPLACE_BUILTIN_IF = False' in settings #}
          {% permission user has 'blogs.add_article' %}
              <p>This user have 'blogs.add_article' permission</p>
          {% elpermission user has 'blog.change_article' of object %}
              <p>This user have 'blogs.change_article' permission of {{object}}</p>
          {% endpermission %}