View Source Snippets

User authentication and login

Given a name and password we want to log a user in.

@spec connect_user(String.t(), String.t()) :: {:ok, Teiserver.Account.User.t()} | {:error, String.t()}
def connect_user(name, password) do
  case Teiserver.Account.get_user_by_name(name) do
    nil ->
      {:error, "User not found"}
    user ->
      if Teiserver.Account.valid_password?(user, password) do
        Teiserver.Connections.connect_user(user)
        {:ok, user}
      else
        {:error, "Invalid password"}
      end
  end
end