summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnacio Reguero <Ignacio.Reguero@cern.ch>2017-03-02 14:51:00 +0100
committerLukas Slebodnik <lslebodn@redhat.com>2017-03-07 21:56:12 +0100
commit7f97e6098503a4426dbeeb773b48f27041440be2 (patch)
tree53bebc825fc0daa2513ebb65cc394191e271a309
parentf09e045d46ceaa68ba14d79ec0e1a80af8dfbf5f (diff)
downloadsssd-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.xml4
-rw-r--r--src/util/sss_nss.c17
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 "