NickC4555 wrote:I just implemented a 650 user intranet with JMapMyLDAP doing the user provisioning, group mapping, authentication CB integration and SSO. All working great. The only thing I would ask for in another release is to get more AD fields mapped in to CB.
Thanks for these really excellent plugins.
Cool, I will look into this as a separate plug-in for V2.
joom77 wrote:Thanks for the plugin, have successfully connected to an ldap server. In the Mapping Attributes section of the configuration page I would like the value of Map Full Name to be giveName and sn concatenated. Could you let me know if this can be specified on the configuration page or the script changes required. Thanks
As it picks up single attributes then you will need to hack some code. I would suggest targetting the sync name/email method in /libraries/shmanic/jmapmyldap.php to something like (note - I haven't tested this):
FROM:
Code: Select all
public function doSync(&$joomlaUser, $ldapUser)
{
if($this->parameters->get('sync_name') && $ldapUser->get('fullname')) {
$name = $ldapUser->get('fullname');
if(isset($name[0])) if($name[0]!="") $joomlaUser->set('name', $name[0]);
}
if($this->parameters->get('sync_email') && $ldapUser->get('email')) {
$email = $ldapUser->get('email');
if(isset($email[0])) if($email[0]!="") $joomlaUser->set('email', $email[0]);
}
return true;
}
TO:
Code: Select all
public function doSync(&$joomlaUser, $ldapUser)
{
if($this->parameters->get('sync_name') && $ldapUser->get('fullname')) {
$name = JArrayHelper::getValue($ldapUser->get('fullname'), 0));
$name .= JArrayHelper::getValue($ldapUser->get('cn'), 0));
if($name) $joomlaUser->set('name', $name);
}
if($this->parameters->get('sync_email') && $ldapUser->get('email')) {
$email = $ldapUser->get('email');
if(isset($email[0])) if($email[0]!="") $joomlaUser->set('email', $email[0]);
}
return true;
}
FROM:
Code: Select all
public static function getAttributes($parameters)
{
$return = array('lookupType','lookupKey','lookupMember','recurseDepth','dnAttribute','extras');
$return = array_fill_keys($return, null); //lets get our result ready
if($parameters->get('group_map_enabled', 0)) {
$return['lookupKey'] = $parameters->get('lookup_attribute', 'groupMembership');
$return['lookupType'] = $parameters->get('lookup_type', 'forward');
$return['lookupMember'] = $parameters->get('lookup_member', 'dn');
if($parameters->get('recursive', 0)) {
$return['recurseDepth'] = $parameters->get('recursion_depth', 0);
$return['dnAttribute'] = $parameters->get('dn_attribute');
}
}
return $return;
}
TO:
Code: Select all
public static function getAttributes($parameters)
{
$return = array('lookupType','lookupKey','lookupMember','recurseDepth','dnAttribute','extras');
$return = array_fill_keys($return, null); //lets get our result ready
$return['extras'] = array('cn');
if($parameters->get('group_map_enabled', 0)) {
$return['lookupKey'] = $parameters->get('lookup_attribute', 'groupMembership');
$return['lookupType'] = $parameters->get('lookup_type', 'forward');
$return['lookupMember'] = $parameters->get('lookup_member', 'dn');
if($parameters->get('recursive', 0)) {
$return['recurseDepth'] = $parameters->get('recursion_depth', 0);
$return['dnAttribute'] = $parameters->get('dn_attribute');
}
}
return $return;
}
This version is such a bad design on my part that it makes this kind of thing very hard to modifiy. Can't wait until I've put it right(ish).