From 0b587f9241ea82f1ca9d489eeb3a47d195619533 Mon Sep 17 00:00:00 2001 From: Bret McMillan Date: Mon, 8 Sep 2008 12:03:32 -0400 Subject: initial commit --- ldap_import.php | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 ldap_import.php (limited to 'ldap_import.php') diff --git a/ldap_import.php b/ldap_import.php new file mode 100644 index 0000000..fb1d1dc --- /dev/null +++ b/ldap_import.php @@ -0,0 +1,129 @@ +ID, 'users'); + if (function_exists('add_submenu_page') && + is_site_admin($cached_user->user_login)) { + add_submenu_page('wpmu-admin.php', 'LDAP Import', 'LDAP Import', 9, basename(__FILE__), array(&$this, 'render_options')); + } + } + + function render_options() { + if( ! is_site_admin() ) { + wp_die( __('

You do not have permission to access this page.

') ); + } + + if ($_POST['ldapOptionsSave']) { + update_site_option('ldap_server', $_POST['ldap_server']); + update_site_option('ldap_dn', $_POST['ldap_dn']); + ?> +

+
+

LDAP User Information Import Options

+
+ + + + +
+ + + + + + + + + +
+ +
+ +
+
+

+ +

+
+
+user_login, -1, PREG_SPLIT_NO_EMPTY); + $username = $principal[0]; + + $ldap_server = get_site_option("ldap_server"); + $ldap_dn = get_site_option("ldap_dn"); + + if ( ! $ldap_server || ! $ldap_dn ) + die("LDAP options not set"); + + $ds = ldap_connect($ldap_server); + $filter ="(uid=$username)"; + $justthese = array("sn", "givenname", "mail"); + + $sr = ldap_search($ds, $ldap_dn, $filter, $justthese); + + $info = ldap_get_entries($ds, $sr); + + + if ($info["count"] <= 0) { + // bad things happened... + die("User authenticated, but not found in LDAP!\n"); + } + + update_usermeta($user->ID, 'first_name', $wpdb->escape($info[0]['givenname'][0])); + update_usermeta($user->ID, 'last_name', $wpdb->escape($info[0]['sn'][0])); + wp_update_user(array('ID' => $user_id, 'user_email' => $info[0]['mail'][0], 'display_name' => $username)); + + return true; + } + } + + $ldap_userinfo_import_plugin = new LDAPImportPlugin(); + } +?> -- cgit