|
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.
|