Size: a a a

Эликсир и Вунш

2019 October 13

F

Franco in Эликсир и Вунш
defmodule BlogWeb.SessionController do
 use BlogWeb, :controller
  alias Blog.Accounts.User

 import Comeonin.Bcrypt #, only: [checkpw: 2]

 plug :scrub_params, "user" when action in [:create]


 def new(conn, _params) do
   render conn, "new.html", changeset: User.changeset(%User{})
 end

 def create(conn, %{"user" => user_params}) do
   Repo.get_by(User, username: user_params["username"])
   |> sign_in(user_params["password"], conn)
 end

 defp sign_in(user, password, conn) when is_nil(user) do
   conn
   |> put_flash(:error, "Invalid username/password combination!")
   |> redirect(to: page_path(conn, :index))
 end

defp sign_in(user, password, conn) do
 if checkpw(password, user.password_digest) do
   conn
   |> put_session(:current_user, %{id: user.id, username: user.username})
   |> put_flash(:info, "Sign in successful!")
   |> redirect(to: page_path(conn, :index))
 else
   conn
   |> put_session(:current_user, nil)
   |> put_flash(:error, "Invalid username/password combination!")
   |> redirect(to: page_path(conn, :index))
 end
end

def delete(conn, _params) do
 conn
 |> delete_session(:current_user)
 |> put_flash(:info, "Signed out successfully!")
 |> redirect(to: page_path(conn, :index))
end

end
источник

МК

Максим Кузьмин in Эликсир и Вунш
ну, собственно, как я и говорил)
источник

МК

Максим Кузьмин in Эликсир и Вунш
ты не заимпортил модуль роут-хелперов и ожидаешь что у тебя из воздуха они возьмутся)
источник

МК

Максим Кузьмин in Эликсир и Вунш
import BlogWeb.Router.Helpers

добавь
источник

F

Franco in Эликсир и Вунш
спасибо, щас почитаю про них, чета не сталкивался вроде еще
источник

МК

Максим Кузьмин in Эликсир и Вунш
просто поищи по учебнику поиском
источник

МК

Максим Кузьмин in Эликсир и Вунш
проморгал где-то скорее всего)
источник
2019 October 14

F

Franco in Эликсир и Вунш
действительно есть))
источник

IE

Igor Evstifeev in Эликсир и Вунш
что за учебник?
источник

F

Franco in Эликсир и Вунш
Igor Evstifeev
что за учебник?
Феникс 1.2
источник

IE

Igor Evstifeev in Эликсир и Вунш
а хде взял?
источник

F

Franco in Эликсир и Вунш
Дак в интернете где-то
источник

AD

Artem Denezhny in Эликсир и Вунш
Franco
defmodule BlogWeb.SessionController do
 use BlogWeb, :controller
  alias Blog.Accounts.User

 import Comeonin.Bcrypt #, only: [checkpw: 2]

 plug :scrub_params, "user" when action in [:create]


 def new(conn, _params) do
   render conn, "new.html", changeset: User.changeset(%User{})
 end

 def create(conn, %{"user" => user_params}) do
   Repo.get_by(User, username: user_params["username"])
   |> sign_in(user_params["password"], conn)
 end

 defp sign_in(user, password, conn) when is_nil(user) do
   conn
   |> put_flash(:error, "Invalid username/password combination!")
   |> redirect(to: page_path(conn, :index))
 end

defp sign_in(user, password, conn) do
 if checkpw(password, user.password_digest) do
   conn
   |> put_session(:current_user, %{id: user.id, username: user.username})
   |> put_flash(:info, "Sign in successful!")
   |> redirect(to: page_path(conn, :index))
 else
   conn
   |> put_session(:current_user, nil)
   |> put_flash(:error, "Invalid username/password combination!")
   |> redirect(to: page_path(conn, :index))
 end
end

def delete(conn, _params) do
 conn
 |> delete_session(:current_user)
 |> put_flash(:info, "Signed out successfully!")
 |> redirect(to: page_path(conn, :index))
end

end
просьба не кидать большие куски кода прямо в чат, а оформлять их через gist.github.com или отдельными файлами во вложении
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Franco
спасибо, щас почитаю про них, чета не сталкивался вроде еще
В 1.4 переписали модуль роутхелпер. Еще в 1.3 код из книги феникс 1.2 работал. В 1.4 перестало. Об этом подробно расписано в документе по миграции с 1.3 на 1.4
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Так же как и в той книге жс собирается брашем, а в 1.4 уже нет
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Я просто читал обе редакции
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Но больше всего про поломаные фишки они пишут в мигрейшен гайдах
источник

F

Franco in Эликсир и Вунш
Artem Denezhny
просьба не кидать большие куски кода прямо в чат, а оформлять их через gist.github.com или отдельными файлами во вложении
Хорошо
источник

F

Franco in Эликсир и Вунш
Gleb Kolokolov
Но больше всего про поломаные фишки они пишут в мигрейшен гайдах
А можно ссылку? Это ведь не про экто?))))
источник

jc

john conor  in Эликсир и Вунш
Максим Кузьмин
В ТУСУР сходи тогда)
ой, а чотам? а чотам?
источник