function _connector_add_connection in Connector 7
Same name and namespace in other branches
- 6 connector.module \_connector_add_connection()
1 call to _connector_add_connection()
- _connect_user_after_register in modules/
connector_action_default_register_form/ connector_action_default_register_form.module - Submit callback to add a connection after user register.
2 string references to '_connector_add_connection'
- connector_connector_action in ./
connector.module - hook_connector_action in ./
connector.api.php - Define custom actions.
File
- ./
connector.module, line 509 - 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;
}
elseif (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) {
db_delete('authmap')
->condition('uid', $account->uid)
->condition('authname', $authname)
->execute();
}
$result = (bool) db_insert('authmap')
->fields(array(
'uid' => $uid,
'authname' => $authname,
'module' => 'connector',
))
->execute();
if (!_connector_get_primary_connection($uid)) {
_connector_set_primary_connection($uid, $authname);
}
}
return $result;
}