summaryrefslogtreecommitdiffstats
path: root/pki
diff options
context:
space:
mode:
authoralee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2009-06-09 15:10:50 +0000
committeralee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2009-06-09 15:10:50 +0000
commit0ba0e453fe69f76da4242099ea3a59d031ad0e5b (patch)
tree3e2d4e515618db208336a3998e75b2e13e669087 /pki
parent9d8606b3ca9dbf60105205ef504ca3443912a4c5 (diff)
downloadpki-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.h5
-rw-r--r--pki/base/tps/src/modules/tokendb/mod_tokendb.cpp15
-rw-r--r--pki/base/tps/src/tus/tus_db.c56
-rw-r--r--pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec4
-rw-r--r--pki/dogtag/tps-ui/shared/docroot/tokendb/editUser.template4
-rwxr-xr-xpki/dogtag/tps-ui/shared/docroot/tokendb/userDelete.template2
-rw-r--r--pki/dogtag/tps/pki-tps.spec4
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:&nbsp;</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:&nbsp;</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:&nbsp;</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