diff options
author | alee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2009-06-09 15:10:50 +0000 |
---|---|---|
committer | alee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2009-06-09 15:10:50 +0000 |
commit | 0ba0e453fe69f76da4242099ea3a59d031ad0e5b (patch) | |
tree | 3e2d4e515618db208336a3998e75b2e13e669087 /pki | |
parent | 9d8606b3ca9dbf60105205ef504ca3443912a4c5 (diff) | |
download | pki-0ba0e453fe69f76da4242099ea3a59d031ad0e5b.tar.gz pki-0ba0e453fe69f76da4242099ea3a59d031ad0e5b.tar.xz pki-0ba0e453fe69f76da4242099ea3a59d031ad0e5b.zip |
Bugzilla Bug #504042 - unable to list users that where created with a space in the name
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@570 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki')
-rw-r--r-- | pki/base/tps/src/include/tus/tus_db.h | 5 | ||||
-rw-r--r-- | pki/base/tps/src/modules/tokendb/mod_tokendb.cpp | 15 | ||||
-rw-r--r-- | pki/base/tps/src/tus/tus_db.c | 56 | ||||
-rw-r--r-- | pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec | 4 | ||||
-rw-r--r-- | pki/dogtag/tps-ui/shared/docroot/tokendb/editUser.template | 4 | ||||
-rwxr-xr-x | pki/dogtag/tps-ui/shared/docroot/tokendb/userDelete.template | 2 | ||||
-rw-r--r-- | pki/dogtag/tps/pki-tps.spec | 4 |
7 files changed, 58 insertions, 32 deletions
diff --git a/pki/base/tps/src/include/tus/tus_db.h b/pki/base/tps/src/include/tus/tus_db.h index d820f1af7..d56ebb27c 100644 --- a/pki/base/tps/src/include/tus/tus_db.h +++ b/pki/base/tps/src/include/tus/tus_db.h @@ -123,6 +123,7 @@ #define USER_PASSWORD "userPassword" #define USER_SN "sn" #define USER_CN "cn" +#define USER_GIVENNAME "givenName" #define USER_CERT "userCertificate" #define PROFILE_ID "profileID" #define GROUP_MEMBER "member" @@ -252,9 +253,9 @@ TPS_PUBLIC int update_token_status_reason(char *userid, char *cuid, TPS_PUBLIC int update_token_status_reason_userid(const char *userid, char *cuid, const char *tokenStatus, const char *reason, int modifyDateOfCreate); -TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPassword, char *sn, char *cn, char * userCert); +TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPassword, char *sn, char *givenName, char *cn, char * userCert); TPS_PUBLIC int find_tus_user_entries_no_vlv(char *filter, LDAPMessage **result, int order); -TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastName, char *userCN, char *userCert); +TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastName, char *givenName, char *userCN, char *userCert); TPS_PUBLIC int add_profile_to_user(const char *agentid, char *userid, const char *profile); TPS_PUBLIC int delete_profile_from_user(const char *agentid, char *userid, const char *profile); TPS_PUBLIC int add_user_to_role_db_entry(const char *agentid, char *userid, const char *role); diff --git a/pki/base/tps/src/modules/tokendb/mod_tokendb.cpp b/pki/base/tps/src/modules/tokendb/mod_tokendb.cpp index 604f7bc41..387139081 100644 --- a/pki/base/tps/src/modules/tokendb/mod_tokendb.cpp +++ b/pki/base/tps/src/modules/tokendb/mod_tokendb.cpp @@ -324,6 +324,8 @@ char *unencode(const char *src) char *get_field( char *s, char* fname, int len) { char *end = NULL; + char *tmp = NULL; + char *ret = NULL; int n; if( ( s = PL_strstr( s, fname ) ) == NULL ) { @@ -345,7 +347,10 @@ char *get_field( char *s, char* fname, int len) /* string too long */ return NULL; } else { - return PL_strndup( s, n ); + tmp = (char *) PL_strndup(s,n); + ret = unencode(tmp); + do_free(tmp); + return ret; } } @@ -774,9 +779,9 @@ void getUserFilter (char *filter, char *query) { } if (firstName != NULL) { - PL_strcat(filter, "(cn="); + PL_strcat(filter, "(givenName="); PL_strcat(filter, firstName); - PL_strcat(filter,"*)"); + PL_strcat(filter,")"); } PL_strcat(filter, ")"); @@ -4502,7 +4507,7 @@ mod_tokendb_handler( request_rec *rq ) PR_snprintf((char *)userCN, 256, "%s %s", firstName, lastName); - status = update_user_db_entry(userid, uid, lastName, userCN, userCert); + status = update_user_db_entry(userid, uid, lastName, firstName, userCN, userCert); do_free(firstName); do_free(lastName); @@ -4783,7 +4788,7 @@ mod_tokendb_handler( request_rec *rq ) PR_snprintf((char *)userCN, 256, "%s %s", firstName, lastName); - status = add_user_db_entry(userid, uid, "", lastName, userCN, userCert); + status = add_user_db_entry(userid, uid, "", lastName, firstName, userCN, userCert); if (status != LDAP_SUCCESS) { PR_snprintf((char *)msg, 512, "LDAP Error in adding new user %s", uid); ldap_error_out(msg, msg); diff --git a/pki/base/tps/src/tus/tus_db.c b/pki/base/tps/src/tus/tus_db.c index 5fa5c8989..ade48696f 100644 --- a/pki/base/tps/src/tus/tus_db.c +++ b/pki/base/tps/src/tus/tus_db.c @@ -96,7 +96,8 @@ static char *tokenCertificateAttributes[] = { TOKEN_ID, NULL }; static char *userAttributes[] = {USER_ID, - USER_SN, + USER_SN, + USER_GIVENNAME, USER_CN, USER_CERT, C_TIME, @@ -868,7 +869,7 @@ static int tus_check_conn() int version = LDAP_VERSION3; int status = -1; -/*#define DEBUG_TOKENDB*/ +#define DEBUG_TOKENDB #ifdef DEBUG_TOKENDB debug_fd = PR_Open("/tmp/debugTUSdb.log", PR_RDWR | PR_CREATE_FILE | PR_APPEND, @@ -1253,16 +1254,17 @@ int update_tus_general_db_entry(const char *agentid, const char *dn, LDAPMod **m * update_user_db_entry * summary: modifies an existing user entry * params : agentid - agent that is performing this action (for audit log purposes) - * uid, lastName, userCN, userCert - for entry to be added + * uid, lastName, firstName, userCN, userCert - for entry to be added * returns: ldap return code * */ -TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastName, char *userCN, char *userCert) +TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastName, char *firstName, char *userCN, char *userCert) { char dn[256]; LDAPMod a01; LDAPMod a02; LDAPMod a03; - LDAPMod *mods[4]; + LDAPMod a04; + LDAPMod *mods[5]; int rc = -1; int certlen=0; int i,j; @@ -1270,6 +1272,7 @@ TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastNa char *dst = NULL; char *sn_values[] = {lastName, NULL}; + char *givenName_values[] = {firstName, NULL}; char *cn_values[] = {userCN, NULL}; struct berval berval; struct berval *cert_values[2]; @@ -1282,8 +1285,13 @@ TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastNa a02.mod_type = USER_CN; a02.mod_values = cn_values; + a03.mod_op = LDAP_MOD_REPLACE; + a03.mod_type = USER_GIVENNAME; + a03.mod_values = givenName_values; + mods[0] = &a01; mods[1] = &a02; + mods[2] = &a03; certlen = strlen(userCert); @@ -1305,15 +1313,16 @@ TPS_PUBLIC int update_user_db_entry(const char *agentid, char *uid, char *lastNa cert_values[0] = &berval; cert_values[1] = NULL; - a03.mod_op =LDAP_MOD_REPLACE |LDAP_MOD_BVALUES; - a03.mod_type = "userCertificate"; - a03.mod_values = cert_values; + a04.mod_op =LDAP_MOD_REPLACE |LDAP_MOD_BVALUES; + a04.mod_type = "userCertificate"; + a04.mod_values = cert_values; - mods[2] = &a03; + mods[3] = &a04; } else { - mods[2] = NULL; + mods[3] = NULL; } - mods[3] = NULL; + + mods[4] = NULL; if (PR_snprintf(dn, 255, "uid=%s, ou=People, %s", uid, userBaseDN) < 0 ) return -1; @@ -2146,10 +2155,10 @@ TPS_PUBLIC int add_default_tus_db_entry (const char *uid, const char *agentid, c * add_user_db_entry * summary: adds a new user entry * params: agentid - user who is performing this change (for audit log) - * :userid, userPassword, sn, cn, userCert - details for user to be added + * :userid, userPassword, sn, givenName, cn, userCert - details for user to be added * returns: ldap return code */ -TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPassword, char *sn, char *cn, char *userCert) +TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPassword, char *sn, char *givenName, char *cn, char *userCert) { LDAPMod a01; LDAPMod a02; @@ -2157,7 +2166,8 @@ TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPa LDAPMod a04; LDAPMod a05; LDAPMod a06; - LDAPMod *mods[7]; + LDAPMod a07; + LDAPMod *mods[8]; int rc = 0; char dn[256]; int i,j, certlen; @@ -2168,6 +2178,7 @@ TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPa char *userPassword_values[] = { userPassword, NULL }; char *sn_values[] = {sn, NULL}; char *cn_values[] = {cn, NULL}; + char *givenName_values[] = {givenName, NULL}; struct berval berval; struct berval *userCert_values[2]; @@ -2191,11 +2202,16 @@ TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPa a05.mod_type = USER_CN; a05.mod_values = cn_values; + a06.mod_op =0; + a06.mod_type = USER_GIVENNAME; + a06.mod_values = givenName_values; + mods[0] = &a01; mods[1] = &a02; mods[2] = &a03; mods[3] = &a04; mods[4] = &a05; + mods[5] = &a06; // now handle certificate certlen = strlen(userCert); @@ -2218,16 +2234,16 @@ TPS_PUBLIC int add_user_db_entry(const char *agentid, char *userid, char *userPa userCert_values[0] = &berval; userCert_values[1] = NULL; - a06.mod_op = LDAP_MOD_BVALUES; - a06.mod_type = USER_CERT; - a06.mod_values = userCert_values; + a07.mod_op = LDAP_MOD_BVALUES; + a07.mod_type = USER_CERT; + a07.mod_values = userCert_values; - mods[5] = &a06; + mods[6] = &a07; } else { - mods[5] = NULL; + mods[6] = NULL; } - mods[6] = NULL; + mods[7] = NULL; if (PR_snprintf(dn, 255, "uid=%s,ou=People, %s", userid, userBaseDN) < 0) return -1; diff --git a/pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec b/pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec index 386b10632..346d53d9b 100644 --- a/pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec +++ b/pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec @@ -34,7 +34,7 @@ ## Package Header Definitions %define base_name %{base_ui_prefix}-%{base_prefix}-%{base_component} %define base_version 1.1.0 -%define base_release 8 +%define base_release 9 %define base_group System Environment/Base %define base_vendor Red Hat, Inc. %define base_license GPLv2 with exceptions @@ -222,6 +222,8 @@ rm -rf ${RPM_BUILD_ROOT} ############################################################################### %changelog +* Sun Jun 7 2009 Ade Lee <alee@redhat.com> 1.1.0-9 +* Bugzilla Bug #504042 - unable to list users that where created with a space in the name * Mon Jun 1 2009 Matthew Harmsen <mharmsen@redhat.com> 1.1.0-8 - Bugzilla Bug #503255 - Fix confusing "Security Domain" message when using "status" diff --git a/pki/dogtag/tps-ui/shared/docroot/tokendb/editUser.template b/pki/dogtag/tps-ui/shared/docroot/tokendb/editUser.template index 941a6959e..7dd123326 100644 --- a/pki/dogtag/tps-ui/shared/docroot/tokendb/editUser.template +++ b/pki/dogtag/tps-ui/shared/docroot/tokendb/editUser.template @@ -167,7 +167,7 @@ if (typeof(results) == "undefined" || results.length == 0) { "First Name: </font>\n"); document.write("</td>\n"); document.write("<td>\n"); - document.write("<input TYPE=TEXT NAME=firstName SIZE=20 VALUE="+results[0].cn.substring(0, results[0].cn.indexOf(" "))+">\n"); + document.write("<input TYPE=TEXT NAME=firstName SIZE=20 VALUE=\""+results[0].givenName+"\">\n"); document.write("</td>\n"); document.write("</tr>\n"); @@ -177,7 +177,7 @@ if (typeof(results) == "undefined" || results.length == 0) { "Last Name: </font>\n"); document.write("</td>\n"); document.write("<td>\n"); - document.write("<input TYPE=TEXT NAME=lastName SIZE=20 VALUE="+results[0].sn+">\n"); + document.write("<input TYPE=TEXT NAME=lastName SIZE=20 VALUE=\""+results[0].sn+"\">\n"); document.write("</td>\n"); document.write("</tr>\n"); diff --git a/pki/dogtag/tps-ui/shared/docroot/tokendb/userDelete.template b/pki/dogtag/tps-ui/shared/docroot/tokendb/userDelete.template index 4416dfc12..59b606af7 100755 --- a/pki/dogtag/tps-ui/shared/docroot/tokendb/userDelete.template +++ b/pki/dogtag/tps-ui/shared/docroot/tokendb/userDelete.template @@ -111,7 +111,7 @@ if (typeof(results) == "undefined" || results.length == 0) { "First Name: </font>\n"); document.write("</td>\n"); document.write("<td>\n"); - document.write(results[0].cn.substring(0, results[0].cn.indexOf(" "))); + document.write(results[0].givenName); document.write("</td>\n"); document.write("</tr>\n"); diff --git a/pki/dogtag/tps/pki-tps.spec b/pki/dogtag/tps/pki-tps.spec index 8710cc5ef..085f680bf 100644 --- a/pki/dogtag/tps/pki-tps.spec +++ b/pki/dogtag/tps/pki-tps.spec @@ -34,7 +34,7 @@ ## Package Header Definitions %define base_name %{base_prefix}-%{base_component} %define base_version 1.1.0 -%define base_release 26 +%define base_release 27 %define base_group System Environment/Daemons %define base_vendor Red Hat, Inc. %define base_license LGPLv2 with exceptions @@ -313,6 +313,8 @@ fi ############################################################################### %changelog +* Tue Jun 9 2009 Ade Lee <alee@redhat.com> 1.1.0-27 +* Bugzilla Bug #504042 - unable to list users that where created with a space in the name * Mon Jun 8 2009 Matthew Harmsen <mharmsen@redhat.com> 1.1.0-26 - Bugzilla Bug #501081 - remove mod_revocator rpm as a dependency * Wed Jun 3 2009 Jack Magne <jmagne@redhat.com> 1.1.0-25 |