Как проверить аутентифицированного пользователя в шаблонах Pyramid?

Я использую Pyramid 1.3b с шаблонами Mako. У меня есть базовый шаблон, который отображает некоторые навигационные компоненты в зависимости от того, вошел ли пользователь в систему или нет. Я делаю это следующим образом:

      <%!
        from pyramid.security import authenticated_userid

        def is_authenticated(request):
          return authenticated_userid(request)
      %>

% if is_authenticated(request):
        <!-- 2 Column -->
        <div class="row-fluid main-content">
          <div class="span2">
            <ul class="nav nav-list">
              <li class="nav-header">
                Company A
              </li>
              <li class="active"><a herf="/product/add">Product</a></li>
              <li><a href="#">Order</a></li>
            </ul>
          </div>
          <div class="span10">
            ${self.body()}
          </div>
        </div>
        <!-- End of 2 column -->
% else:
        ${self.body()}
% endif

Итак, я пытаюсь отобразить макет из двух столбцов, если пользователь вошел в систему, и просто div шириной 100%, если пользователь не вошел в систему.

Я использую блок кода, определенный сверху, чтобы проверить, аутентифицирован ли пользователь. Мне интересно, есть ли лучший способ сделать это в Pyramid?

С уважением, Марк Хуанг


person Mark    schedule 02.04.2012    source источник


Ответы (1)


Это хорошо. Обычно в интересах разделения представления и логики вы должны передать в свой шаблон тот факт, что пользователь вошел в систему, вместо того, чтобы вычислять его в mako. Также обычно вам нужно больше информации о пользователе, чем просто то, что он вошел в систему. Для этого очень полезен следующий рецепт кулинарной книги.

http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/auth/user_object.html

person Michael Merickel    schedule 02.04.2012