diff options
| -rw-r--r-- | config/config.exs | 11 | ||||
| -rw-r--r-- | config/description.exs | 9 | ||||
| -rw-r--r-- | lib/pleroma/ldap.ex | 4 | 
3 files changed, 17 insertions, 7 deletions
diff --git a/config/config.exs b/config/config.exs index f53a083d0..47ddfac5a 100644 --- a/config/config.exs +++ b/config/config.exs @@ -612,16 +612,17 @@ config :pleroma, Pleroma.Formatter,  config :pleroma, :ldap,    enabled: System.get_env("LDAP_ENABLED") == "true", -  host: System.get_env("LDAP_HOST") || "localhost", -  port: String.to_integer(System.get_env("LDAP_PORT") || "389"), +  host: System.get_env("LDAP_HOST", "localhost"), +  port: String.to_integer(System.get_env("LDAP_PORT", "389")),    ssl: System.get_env("LDAP_SSL") == "true",    sslopts: [],    tls: System.get_env("LDAP_TLS") == "true",    tlsopts: [], -  base: System.get_env("LDAP_BASE") || "dc=example,dc=com", -  uid: System.get_env("LDAP_UID") || "cn", +  base: System.get_env("LDAP_BASE", "dc=example,dc=com"), +  uid: System.get_env("LDAP_UID", "cn"),    # defaults to CAStore's Mozilla roots -  cacertfile: nil +  cacertfile: System.get_env("LDAP_CACERTFILE", nil), +  mail: System.get_env("LDAP_MAIL", "mail")  oauth_consumer_strategies =    System.get_env("OAUTH_CONSUMER_STRATEGIES") diff --git a/config/description.exs b/config/description.exs index 5062842f0..e85ec0ff8 100644 --- a/config/description.exs +++ b/config/description.exs @@ -2280,7 +2280,7 @@ config :pleroma, :config_description, [        },        %{          key: :uid, -        label: "UID", +        label: "UID Attribute",          type: :string,          description:            "LDAP attribute name to authenticate the user, e.g. when \"cn\", the filter will be \"cn=username,base\"", @@ -2291,6 +2291,13 @@ config :pleroma, :config_description, [          label: "CACertfile",          type: :string,          description: "Path to CA certificate file" +      }, +      %{ +        key: :mail, +        label: "Mail Attribute", +        type: :string, +        description: "LDAP attribute name to use as the email address when automatically registering the user on first login", +        suggestions: ["mail"]        }      ]    }, diff --git a/lib/pleroma/ldap.ex b/lib/pleroma/ldap.ex index 0723cd094..8e9c591b2 100644 --- a/lib/pleroma/ldap.ex +++ b/lib/pleroma/ldap.ex @@ -205,6 +205,8 @@ defmodule Pleroma.LDAP do    end    defp try_register(name, attributes) do +    mail_attribute = Config.get([:ldap, :mail]) +      params = %{        name: name,        nickname: name, @@ -212,7 +214,7 @@ defmodule Pleroma.LDAP do      }      params = -      case List.keyfind(attributes, ~c"mail", 0) do +      case List.keyfind(attributes, to_charlist(mail_attribute), 0) do          {_, [mail]} -> Map.put_new(params, :email, :erlang.list_to_binary(mail))          _ -> params        end  | 
