From: <axe...@us...> - 2010-05-10 16:33:57
|
Revision: 110 http://wpmu-ldap.svn.sourceforge.net/wpmu-ldap/?rev=110&view=rev Author: axelseaa Date: 2010-05-10 16:33:51 +0000 (Mon, 10 May 2010) Log Message: ----------- changed bulk add logic to not attempt to auto create blogs if configured - wordpress does not support multiple blogs being created in a single function 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-05-10 04:22:06 UTC (rev 109) +++ trunk/ldap/lib/wpmu_ldap.functions.php 2010-05-10 16:33:51 UTC (rev 110) @@ -9,9 +9,16 @@ * * @author - dwang99 */ -function wpmuLdapCreateWPUserFromLdap($newUserName, $newUserPassword, $ldapUserData) { +function wpmuLdapCreateWPUserFromLdap($opts) { global $base, $error, $wpdb, $current_site; + // Extract Inputs + extract($opts); + if (!isset($newUserName)) $newUserName = ''; + if (!isset($newUserPassword)) $newUserPassword = ''; + if (!isset($ldapUserData)) $ldapUserData = false; + if (!isset($createBlog)) $createBlog = true; + // 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])); @@ -61,7 +68,7 @@ // is it configured to create WP blogs from LDAP accounts? $ldapCreateBlog = get_site_option("ldapCreateBlog"); - if ($ldapCreateBlog) { + if ($createBlog && $ldapCreateBlog) { // Create and update the user's blog. $meta = apply_filters('signup_create_blog_meta', array ('lang_id' => 'en', 'public' => 0)); $blog_id = wpmu_create_blog($newdomain, $path, $newUserName . "'s blog", $user_id, $meta); @@ -133,8 +140,9 @@ if (!strpos($_REQUEST['redirect_to'], $loginUserName)) { $_REQUEST['redirect_to'] = $loginUserName . "/" . $_REQUEST['redirect_to']; } - - return wpmuLdapCreateWPUserFromLdap($loginUserName, $loginPassword, $userDataArray); + return wpmuLdapCreateWPUserFromLdap(array( 'newUserName' => $loginUserName, + 'newUserPassword' => $loginPassword, + 'userDataArray' => $userDataArray)); } // but if not configured to create 'em, exit with an error @@ -193,13 +201,6 @@ if ($server->DoSearchUsername($in_username, $attributes_to_get, $userDataArray) == LDAP_OK) { return true; -# if (!empty($userDataArray)) { -# if ($server->checkGroup($userDataArray[LDAP_INDEX_DN]) == 0) { -# return true; -# } else { -# return false; -# } -# } } return false; } @@ -207,7 +208,16 @@ /** * Searches for a username. If found, adds the user and returns user data. */ -function wpmuLdapSearchUser($username,$blog_id = 1,$new_role = 'subscriber',$createUser = true) { +function wpmuLdapSearchUser($opts) { + + // Extract Inputs + extract($opts); + if (!isset($username)) $username = ''; + if (!isset($blog_id)) $blog_id = 1; + if (!isset($new_role)) $new_role = 'subscriber'; + if (!isset($createUser)) $createUser = true; + if (!isset($createBlog)) $createBlog = true; + // Bind to directory, search for username $ldapString = wpmuSetupLdapOptions(); $userDataArray = null; @@ -218,7 +228,9 @@ return array( true, $user_id ); } } - if (wpmuLdapCreateWPUserFromLdap($username,'',$userDataArray)) { + if (wpmuLdapCreateWPUserFromLdap(array( 'newUserName' => $username, + 'ldapUserData' => $userDataArray, + 'createBlog' => $createBlog))) { if ( $user_id = username_exists($username) ) { add_user_to_blog($blog_id, $user_id, $new_role); Modified: trunk/ldap/lib/wpmu_ldap_adduser.functions.php =================================================================== --- trunk/ldap/lib/wpmu_ldap_adduser.functions.php 2010-05-10 04:22:06 UTC (rev 109) +++ trunk/ldap/lib/wpmu_ldap_adduser.functions.php 2010-05-10 16:33:51 UTC (rev 110) @@ -81,7 +81,9 @@ // try finding a WP account for this user name $login = get_userdatabylogin($username); if (!$login) { - $result = wpmuLdapSearchUser($username,$blog_id,$user['new_role']); + $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]); @@ -126,7 +128,10 @@ // try finding a WP account for this user name $login = get_userdatabylogin($username); if (!$login) { - $result = wpmuLdapSearchUser($username,$blog_id,$user['bulk_new_role']); + $result = wpmuLdapSearchUser(array( 'username' => $username, + '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)); @@ -225,7 +230,7 @@ if (is_super_admin($current_user->username) || ($ldapBulkAdd && is_admin($current_user->username))) { ?> <h2><?php _e('Add Bulk Users') ?></h2> - <p>Using the below fields, you can bulk add LDAP users. Separate multiple users by a new line. Local user creation is not available in bulk.</p> + <p>Using the below fields, you can bulk add LDAP users. Separate multiple users by a new line. Local user creation is not available in bulk. The auto create blog for new users function will be disabled for bulk adds.</p> <form method="post" id="ldap_add_user_bulk"> <?php wp_nonce_field('add-user-bulk') ?> <fieldset class="options"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |