From: <axe...@us...> - 2010-06-21 02:36:14
|
Revision: 115 http://wpmu-ldap.svn.sourceforge.net/wpmu-ldap/?rev=115&view=rev Author: axelseaa Date: 2010-06-21 02:36:08 +0000 (Mon, 21 Jun 2010) Log Message: ----------- added better error checking on add users screen Modified Paths: -------------- trunk/ldap/lib/wpmu_ldap.functions.php trunk/ldap/lib/wpmu_ldap_adduser.functions.php Modified: trunk/ldap/lib/wpmu_ldap.functions.php =================================================================== --- trunk/ldap/lib/wpmu_ldap.functions.php 2010-06-20 05:26:28 UTC (rev 114) +++ trunk/ldap/lib/wpmu_ldap.functions.php 2010-06-21 02:36:08 UTC (rev 115) @@ -25,7 +25,7 @@ // Check to see if email already exists if ( email_exists($ldapUserData[LDAP_INDEX_EMAIL]) ) - return new WP_Error('ldapcreate_emailconflict', sprintf(__('<strong>ERROR</strong>: <strong>%s</strong> is already associated with another account. All accounts (including the admin account) must have an unique email address.'),$ldapUserData[LDAP_INDEX_EMAIL])); + return new WP_Error('ldapcreate_emailconflict', sprintf(__('<strong>ERROR</strong>: <strong>%s</strong> (%s) is already associated with another account. All accounts (including the admin account) must have an unique email address.'),$ldapUserData[LDAP_INDEX_EMAIL],$newUserName)); // we don't actually care about the WP password (since it's LDAP), but we // need one for WP database @@ -249,9 +249,13 @@ return array( true, $user_id ); } } - if (wpmuLdapCreateWPUserFromLdap(array( 'newUserName' => $username, + $user = wpmuLdapCreateWPUserFromLdap(array( 'newUserName' => $username, 'ldapUserData' => $userDataArray, - 'createBlog' => $createBlog))) { + 'createBlog' => $createBlog)); + if ( is_wp_error($user) ) { + return $user; + } + if ( is_a($user, 'WP_User') ) { if ( $user_id = username_exists($username) ) { add_user_to_blog($blog_id, $user_id, $new_role); @@ -265,7 +269,7 @@ } return array ( true ); } - return false; + return array( false ); } /** Modified: trunk/ldap/lib/wpmu_ldap_adduser.functions.php =================================================================== --- trunk/ldap/lib/wpmu_ldap_adduser.functions.php 2010-06-20 05:26:28 UTC (rev 114) +++ trunk/ldap/lib/wpmu_ldap_adduser.functions.php 2010-06-21 02:36:08 UTC (rev 115) @@ -47,19 +47,34 @@ ?> <div id="message" class="error fade"><p> <?php - switch ($action) { - case 'exists': - printf(__('User %s exists!'),$user); - break; - case 'notfound': - printf(__('User %s not found in LDAP Directory!'),$user); - break; - case 'add': - printf(__('Error adding user %s!'),$user); - break; - default: - _e('Error!'); - break; + if (is_wp_error($error)) { + $wp_error = $error; + if ( $wp_error->get_error_code() ) { + $errors = ''; + $messages = ''; + foreach ( $wp_error->get_error_codes() as $code ) { + $severity = $wp_error->get_error_data($code); + foreach ( $wp_error->get_error_messages($code) as $error ) { + $errors .= ' ' . $error . "<br />\n"; + } + } + if ( !empty($errors) ) echo $errors; + } + } else { + switch ($action) { + case 'exists': + printf(__('User %s exists!'),$user); + break; + case 'notfound': + printf(__('User %s not found in LDAP Directory!'),$user); + break; + case 'add': + printf(__('Error adding user %s!'),$user); + break; + default: + _e('Error!'); + break; + } } ?> </p></div> @@ -84,25 +99,30 @@ $result = wpmuLdapSearchUser(array( 'username' => $username, 'blog_id' => $blog_id, 'new_role' => $user['new_role'])); - $ldapCreateLocalUser = get_site_option('ldapCreateLocalUser'); - if ($result[0]) { - wp_new_user_notification($result[1]); - ldapAddUserResult(array('updated' => 'true','action' => 'add','username' => $username)); - } elseif ($ldapCreateLocalUser || is_super_admin($current_user->username)) { - ?> - <div id='message' class='updated'> - <form method='post'> - <p><b><?php echo $username ?></b> not found in LDAP directory. To create a local user, enter the users email: - <input type='text' name='user[email]' size='15' /> - <input type='hidden' name='user[username]' value='<?php echo $username ?>' /> - <input type='hidden' name='user[role]' value='<?php echo $user['new_role'] ?>' /> - <?php wp_nonce_field('add-local-user') ?> - <input type='submit' class='button' name='addLocalUser' value='Create Local User' /> - </form></p> - </div> - <?php + + if (is_wp_error($result)) { + ldapAddUserResult(array('updated' => 'false','error' => $result,'username' => $username)); } else { - ldapAddUserResult(array('updated' => 'false','action' => 'notfound','username' => $username)); + $ldapCreateLocalUser = get_site_option('ldapCreateLocalUser'); + if ($result[0]) { + wp_new_user_notification($result[1]); + ldapAddUserResult(array('updated' => 'true','action' => 'add','username' => $username)); + } elseif ($ldapCreateLocalUser || is_super_admin($current_user->username)) { + ?> + <div id='message' class='updated'> + <form method='post'> + <p><b><?php echo $username ?></b> not found in LDAP directory. To create a local user, enter the users email: + <input type='text' name='user[email]' size='15' /> + <input type='hidden' name='user[username]' value='<?php echo $username ?>' /> + <input type='hidden' name='user[role]' value='<?php echo $user['new_role'] ?>' /> + <?php wp_nonce_field('add-local-user') ?> + <input type='submit' class='button' name='addLocalUser' value='Create Local User' /> + </form></p> + </div> + <?php + } else { + ldapAddUserResult(array('updated' => 'false','action' => 'notfound','username' => $username)); + } } } else { // Add User to Blog @@ -132,11 +152,15 @@ 'blog_id' => $blog_id, 'new_role' => $user['bulk_new_role'], 'createBlog' => false)); - if ($result[0]) { - wp_new_user_notification($result[1]); - ldapAddUserResult(array('updated' => 'true','action' => 'add','username' => $username)); + if (is_wp_error($result)) { + ldapAddUserResult(array('updated' => 'false','error' => $result,'username' => $username)); } else { - ldapAddUserResult(array('updated' => 'false','action' => 'notfound','username' => $username)); + if ($result[0]) { + wp_new_user_notification($result[1]); + ldapAddUserResult(array('updated' => 'true','action' => 'add','username' => $username)); + } else { + ldapAddUserResult(array('updated' => 'false','action' => 'notfound','username' => $username)); + } } } else { // Add User to Blog This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |