function _connector_add_connection in Connector 6
Same name and namespace in other branches
- 7 connector.module \_connector_add_connection()
File
- ./
connector.module, line 414 - Connector module
Code
function _connector_add_connection($connector_name, $cid = NULL, $uid = NULL) {
global $user;
$connector = _connector_get_connectors($connector_name);
if (!$connector) {
return FALSE;
}
$result = FALSE;
if (empty($uid)) {
$uid = $user->uid;
}
else {
if (is_object($uid)) {
$uid = $uid->uid;
}
}
//Fetch connector ID
if ($cid === NULL && isset($connector['id callback']) && is_callable($connector['id callback'])) {
$cid = call_user_func($connector['id callback'], $connector);
}
// Check that we have an external id to connect with
if ($cid !== NULL) {
$authname = $connector_name . '__' . $cid;
$account = user_external_load($authname);
// Check if the external id already connected to someone
if (!$account) {
$result = (bool) db_query("INSERT INTO {authmap} (uid, authname, module) VALUES (%d, '%s','connector')", $uid, $authname);
if (!_connector_get_primary_connection($uid)) {
_connector_set_primary_connection($uid, $authname);
}
}
else {
$result = TRUE;
}
}
return $result;
}