Как проверить подлинность пользователя в шаблонах Pyramid? - PullRequest
4 голосов
/ 02 апреля 2012

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

      <%!
        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%, если пользователь не вошел в систему.

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

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

1 Ответ

5 голосов
/ 02 апреля 2012

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

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

...