Baseline: The current state of the mess
This commit is contained in:
Executable
+32
@@ -0,0 +1,32 @@
|
||||
function ktc_sync_ldap_display_name($user_id, $username, $password) {
|
||||
$ldap_server = "ldap://your.ad.server"; // Or IP
|
||||
$ldap_dn = "CN=ServiceAccount,OU=Users,DC=krista,DC=local";
|
||||
$ldap_pass = "YourPassword";
|
||||
$base_dn = "OU=Users,DC=krista,DC=local";
|
||||
|
||||
$ds = ldap_connect($ldap_server);
|
||||
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
|
||||
|
||||
if (ldap_bind($ds, $ldap_dn, $ldap_pass)) {
|
||||
// Search by email (which is the WP username)
|
||||
$filter = "(mail=$username)";
|
||||
$sr = ldap_search($ds, $base_dn, $filter, array("displayname", "mail"));
|
||||
$info = ldap_get_entries($ds, $sr);
|
||||
|
||||
if ($info["count"] > 0) {
|
||||
$friendly_name = $info[0]["displayname"][0];
|
||||
|
||||
// Update WordPress User
|
||||
wp_update_user(array(
|
||||
'ID' => $user_id,
|
||||
'display_name' => $friendly_name,
|
||||
'nickname' => $friendly_name
|
||||
));
|
||||
|
||||
// Force WP to use Display Name publicly
|
||||
update_user_meta($user_id, 'display_name', $friendly_name);
|
||||
}
|
||||
}
|
||||
ldap_unbind($ds);
|
||||
}
|
||||
Reference in New Issue
Block a user