URL: https://github.com/SSSD/sssd/pull/177
Author: reguero
 Title: #177: first letter of user name template for override_homedir
Action: synchronized

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/177/head:pr177
git checkout pr177
From 3dc95acc860d992eb959bf95d430b51014f7dd17 Mon Sep 17 00:00:00 2001
From: Ignacio Reguero <ignacio.regu...@cern.ch>
Date: Thu, 2 Mar 2017 14:51:00 +0100
Subject: [PATCH 1/2] first letter of user name template for override_homedir

---
 src/man/include/override_homedir.xml |  4 ++++
 src/util/sss_nss.c                   | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/src/man/include/override_homedir.xml b/src/man/include/override_homedir.xml
index 61de52e..803cd19 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 d1ad543..a11ac83 100644
--- a/src/util/sss_nss.c
+++ b/src/util/sss_nss.c
@@ -88,6 +88,24 @@ 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;
+                }
+
+                username[1] = '\0';
+                result = talloc_asprintf_append(result, "%s%s", p, username);
+                talloc_free(username);
+                break;
+
             case 'U':
                 if (homedir_ctx->uid == 0) {
                     DEBUG(SSSDBG_CRIT_FAILURE, "Cannot expand uid template "

From 808efae036349e96c82f205172e4ecc615e3623c Mon Sep 17 00:00:00 2001
From: Ignacio Reguero <ignacio.regu...@cern.ch>
Date: Mon, 6 Mar 2017 12:35:56 +0100
Subject: [PATCH 2/2] avoid setting null in username[1] as suggested by
 lslebodn

---
 src/util/sss_nss.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/util/sss_nss.c b/src/util/sss_nss.c
index a11ac83..cf91a2c 100644
--- a/src/util/sss_nss.c
+++ b/src/util/sss_nss.c
@@ -101,8 +101,7 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx,
                     goto done;
                 }
 
-                username[1] = '\0';
-                result = talloc_asprintf_append(result, "%s%s", p, username);
+                result = talloc_asprintf_append(result, "%s%c", p, username[0]);
                 talloc_free(username);
                 break;
 
_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org

Reply via email to