Проверка подлинности пользователя в шаблонах Phoenix - PullRequest
0 голосов
/ 23 июня 2018

Я работаю над приложением Феникс .Часть аутентификации реализована с помощью Guardian.

Как и на обычном веб-сайте, приложение имеет верхний и нижний колонтитулы и боковую панель.Это статические страницы в папке макета.

древовидное представление -lib |--admin_app_web |--templates |--layouts |--app.html.eex |--header.html.eex |--sidebar.html.eex |--main.html.eex

app.html.eex выглядит примерно так

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
  </head>

  <body>
    <%= render "header.html", conn: @conn%>
    <%= render "flash.html", conn: @conn%>
    <%= render "main.html", assigns %>
    <%=# render "footer.html" %>
      <script src="<%= static_path(@conn, "/js/app.js") %>"></script>
      <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
      <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
  </body>
</html>

main.html.eex в этих строках

<main role="main" class="row my-3">
  <div class="col-2">
    <%= render "sidebar.html" %>
  </div>
  <div class="col">
    <%= render @view_module, @view_template, assigns %>
  </div>
</main>

Я хочу отобразить sidebar.html.eex, только если user равно authenticated, как этого достичь ?

1 Ответ

0 голосов
/ 23 июня 2018

Вы можете проверить аутентификацию пользователя с помощью Guardian.Plug.authenticated?/2 и использовать if для выборочной визуализации шаблона боковой панели.

<div class="col-2">
  <%= if Guardian.Plug.authenticated?(@conn, []), do: render("sidebar.html") %>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...