diff options
author | Ignacio Reguero <Ignacio.Reguero@cern.ch> | 2017-03-02 14:51:00 +0100 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2017-03-07 21:56:12 +0100 |
commit | 7f97e6098503a4426dbeeb773b48f27041440be2 (patch) | |
tree | 53bebc825fc0daa2513ebb65cc394191e271a309 | |
parent | f09e045d46ceaa68ba14d79ec0e1a80af8dfbf5f (diff) | |
download | sssd-7f97e6098503a4426dbeeb773b48f27041440be2.tar.gz sssd-7f97e6098503a4426dbeeb773b48f27041440be2.tar.xz sssd-7f97e6098503a4426dbeeb773b48f27041440be2.zip |
UTIL: first letter of user name template for override_homedir
Resolves:
https://pagure.io/SSSD/sssd/issue/2668
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
-rw-r--r-- | src/man/include/override_homedir.xml | 4 | ||||
-rw-r--r-- | src/util/sss_nss.c | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/man/include/override_homedir.xml b/src/man/include/override_homedir.xml index 61de52e00..803cd1980 100644 --- a/src/man/include/override_homedir.xml +++ b/src/man/include/override_homedir.xml @@ -24,6 +24,10 @@ <listitem><para>fully qualified user name (user@domain)</para></listitem> </varlistentry> <varlistentry> + <term>%l</term> + <listitem><para>The first letter of the login name.</para></listitem> + </varlistentry> + <varlistentry> <term>%P</term> <listitem><para>UPN - User Principal Name (name@REALM)</para></listitem> </varlistentry> diff --git a/src/util/sss_nss.c b/src/util/sss_nss.c index d1ad5433f..cf91a2c53 100644 --- a/src/util/sss_nss.c +++ b/src/util/sss_nss.c @@ -88,6 +88,23 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, talloc_free(username); break; + case 'l': + if (homedir_ctx->username == NULL) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Cannot expand first letter of user name template " + "because user name is empty.\n"); + goto done; + } + username = sss_output_name(tmp_ctx, homedir_ctx->username, + case_sensitive, 0); + if (username == NULL) { + goto done; + } + + result = talloc_asprintf_append(result, "%s%c", p, username[0]); + talloc_free(username); + break; + case 'U': if (homedir_ctx->uid == 0) { DEBUG(SSSDBG_CRIT_FAILURE, "Cannot expand uid template " |