我正在尝试在Joomla3和SugarCRM CE 6.5之间集成两个系统。用户密码管理由LDAP完成,因此Joomla3和SugarCRM中的用户都将使用此身份验证系统。
然而,我们需要的是让SugarCRM成为创建用户的系统,因为我不希望负责创建新帐户的人使用LDAP。
我们在Users模块下创建一个logic_hook之前的save函数,所以当在SugarCRM中创建一个新用户时
1)检查LDAP中是否存在 - DONE
2)如果它不存在,我们启动这个before_save函数来创建它 - FAILING
这是我们正在调用的函数(它接收正在保存的用户bean),我不知道为什么它在行ldap_add失败...但是不知道为什么,甚至不知道如何调试错误,因为只返回“FALSE”值。
有什么想法吗?
function Add_LDAP ($user)
{
$ldap_host = 'localhost';
$base_dn = 'CN='.$user->user_name.',DC=regiac,DC=org';
$GLOBALS['log']->fatal($base_dn);
//Preparamos el usuario para crearlo
$info["givenName"]=$user->first_name;
$info["sn"]=$user->last_name;
$info["uid"]=$user->user_name;
$info["homeDirectory"]="/home/";
$info["mail"]=$user->email1;
$info["displayName"]= $user->first_name." ".$user->last_name;
$info["departmentNumber"]=$user->id;
$info["cn"] =$user->user_name;
$info["userPassword"]=$user->user_hash;
$info["objectclass"][0] = "top";
$info["objectclass"][1] = "person";
$info["objectclass"][2] = "inetOrgPerson";
$info["objectclass"][3] = "organizationalPerson";
$ldap_user = "CN=admin,DC=regiac,DC=org";
$ldap_pass = "passw";
//First: Connect to LDAP Server
$connect = ldap_connect( $ldap_host, $ldap_port)
or $GLOBALS['log']->fatal(">>Could not connect to LDAP server to add user<<");
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
//Login to LDAP
$bind = ldap_bind($connect, $ldap_user, $ldap_pass)
or $GLOBALS['log']->fatal(">>Could not bind to $ldap_host to add user<<");
// Adding new user - Here it is where it fails
$add = ldap_add($connect, $base_dn, $info)
or $GLOBALS['log']->fatal(">>Not able to load user <<");
// Close connection
ldap_close($connect);
// Return value of operation
return $add;
}