diff --git a/config/config.exs b/config/config.exs index ed93c3d..53e27c9 100644 --- a/config/config.exs +++ b/config/config.exs @@ -29,8 +29,28 @@ config :derivantes, DerivantesWeb.Endpoint, # # For production it's recommended to configure a different adapter # at the `config/runtime.exs`. -config :derivantes, Derivantes.Mailer, adapter: Swoosh.Adapters.Local +config :derivantes, Derivantes.Mailer, + + adapter: Swoosh.Adapters.SMTP, + relay: "mail.rmitacriocuarto.com.ar", + username: "informedigital@rmitacriocuarto.com.ar", + password: "Infotomo2020+", + auth: :always, + ssl: true, + port: 465, + retries: 10, + sockopts: [ + versions: [:"tlsv1.2", :"tlsv1.3"], + verify: :verify_peer, + cacerts: :public_key.cacerts_get(), + depth: 3, + customize_hostname_check: [ + match_fun: :public_key.pkix_verify_hostname_match_fun(:https) + ], + server_name_indication: 'mail.rmitacriocuarto.com.ar' + ] + # Configure esbuild (the version is required) config :esbuild, version: "0.17.11", diff --git a/config/dev.exs b/config/dev.exs index 588e0ce..860d33a 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -5,7 +5,7 @@ config :derivantes, Derivantes.Repo, username: "postgres", password: "1nf0rm3", hostname: "localhost", - port: 5555, + port: 5432, database: "derivantes", stacktrace: true, show_sensitive_data_on_connection_error: true, diff --git a/config/runtime.exs b/config/runtime.exs index fc28eb0..12edf44 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -114,4 +114,26 @@ if config_env() == :prod do # config :swoosh, :api_client, Swoosh.ApiClient.Hackney # # See https://hexdocs.pm/swoosh/Swoosh.html#module-installation for details. + +config :derivantes, Derivantes.Mailer, adapter: Swoosh.Adapters.Local, + + adapter: Swoosh.Adapters.SMTP, + relay: "mail.rmitacriocuarto.com.ar", + username: "informedigital@rmitacriocuarto.com.ar", + password: "Infotomo2020+", + auth: :always, + ssl: true, + port: 465, + retries: 10, + sockopts: [ + versions: [:"tlsv1.2", :"tlsv1.3"], + verify: :verify_peer, + cacerts: :public_key.cacerts_get(), + depth: 3, + customize_hostname_check: [ + match_fun: :public_key.pkix_verify_hostname_match_fun(:https) + ], + server_name_indication: 'mail.rmitacriocuarto.com.ar' + ] + end diff --git a/lib/derivantes/accounts/user_notifier.ex b/lib/derivantes/accounts/user_notifier.ex index 87ef05d..9bade19 100644 --- a/lib/derivantes/accounts/user_notifier.ex +++ b/lib/derivantes/accounts/user_notifier.ex @@ -8,13 +8,15 @@ defmodule Derivantes.Accounts.UserNotifier do email = new() |> to(recipient) - |> from({"Derivantes", "contact@example.com"}) + |> from({"Derivantes", "informedigital@rmitacriocuarto.com.ar"}) |> subject(subject) |> text_body(body) - with {:ok, _metadata} <- Mailer.deliver(email) do - {:ok, email} - end + |> Mailer.deliver() + |>IO.inspect() + # with {:ok, _metadata} <- Mailer.deliver(email) do + # {:ok, email} + # end end @doc """ diff --git a/lib/derivantes_web/live/test/index.ex b/lib/derivantes_web/live/test/index.ex new file mode 100644 index 0000000..09e29c2 --- /dev/null +++ b/lib/derivantes_web/live/test/index.ex @@ -0,0 +1,26 @@ +defmodule DerivantesWeb.TestLive do + + use DerivantesWeb, :live_view + + def mount(_params, _session, socket) do + + {:ok, socket} + + end + + def handle_event(msg, _params, socket) do + case msg do + _-> {:noreply, socket} + end + end + + def render(assigns) do + + ~H""" +

Nuevo plug

+ + """ + + end + +end diff --git a/lib/derivantes_web/router.ex b/lib/derivantes_web/router.ex index 20c31bc..f740690 100644 --- a/lib/derivantes_web/router.ex +++ b/lib/derivantes_web/router.ex @@ -72,6 +72,16 @@ defmodule DerivantesWeb.Router do end end + scope "/", DerivantesWeb do + pipe_through [:browser, :require_confirmed_user] + + live_session :require_confirmed_user, + on_mount: [{DerivantesWeb.UserAuth, :ensure_authentcated}] do + live "/test", TestLive, :index + end + + end + scope "/", DerivantesWeb do pipe_through [:browser] diff --git a/lib/derivantes_web/user_auth.ex b/lib/derivantes_web/user_auth.ex index 869e6e1..14ef893 100644 --- a/lib/derivantes_web/user_auth.ex +++ b/lib/derivantes_web/user_auth.ex @@ -183,7 +183,7 @@ defmodule DerivantesWeb.UserAuth do end @doc """ - Used for routes that require the user to not be authenticated. + Used for routes that eequire the user to not be authenticated. """ def redirect_if_user_is_authenticated(conn, _opts) do if conn.assigns[:current_user] do @@ -203,6 +203,7 @@ defmodule DerivantesWeb.UserAuth do """ def require_authenticated_user(conn, _opts) do if conn.assigns[:current_user] do + IO.inspect(conn.assigns[:current_user].inserted_at) conn else conn @@ -213,6 +214,20 @@ defmodule DerivantesWeb.UserAuth do end end + def require_confirmed_user(conn, _opts) do + + if conn.assigns[:current_user] do + conn + else + conn + |> put_flash(:error, "Necesita validar su email. Revise su casilla de entrada.") + |> maybe_store_return_to() + |> redirect(to: ~p"/users/log_in") + |> halt() + end + + end + defp put_token_in_session(conn, token) do conn |> put_session(:user_token, token) diff --git a/mix.exs b/mix.exs index 6660622..9b545a1 100644 --- a/mix.exs +++ b/mix.exs @@ -51,6 +51,7 @@ defmodule Derivantes.MixProject do {:gettext, "~> 0.20"}, {:jason, "~> 1.2"}, {:dns_cluster, "~> 0.1.1"}, + {:gen_smtp, ">= 0.0.0"}, {:plug_cowboy, "~> 2.5"} ] end diff --git a/mix.lock b/mix.lock index ea23e46..7dd57c6 100644 --- a/mix.lock +++ b/mix.lock @@ -16,6 +16,7 @@ "file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"}, "finch": {:hex, :finch, "0.18.0", "944ac7d34d0bd2ac8998f79f7a811b21d87d911e77a786bc5810adb75632ada4", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"}, "floki": {:hex, :floki, "0.36.2", "a7da0193538c93f937714a6704369711998a51a6164a222d710ebd54020aa7a3", [:mix], [], "hexpm", "a8766c0bc92f074e5cb36c4f9961982eda84c5d2b8e979ca67f5c268ec8ed580"}, + "gen_smtp": {:hex, :gen_smtp, "1.2.0", "9cfc75c72a8821588b9b9fe947ae5ab2aed95a052b81237e0928633a13276fd3", [:rebar3], [{:ranch, ">= 1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "5ee0375680bca8f20c4d85f58c2894441443a743355430ff33a783fe03296779"}, "gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"}, "hpax": {:hex, :hpax, "0.2.0", "5a58219adcb75977b2edce5eb22051de9362f08236220c9e859a47111c194ff5", [:mix], [], "hexpm", "bea06558cdae85bed075e6c036993d43cd54d447f76d8190a8db0dc5893fa2f1"}, "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, diff --git a/tailwind-freebsd-x64 b/tailwind-freebsd-x64 new file mode 100644 index 0000000..5f9c853 Binary files /dev/null and b/tailwind-freebsd-x64 differ