function domain_vbo_modify_user_domains in Domain VBO 7
domain_vbo_modify_user_domains: Action callback.
File
- ./
domain_vbo.user.inc, line 54 - Contains functions for Domain VBO User action.
Code
function domain_vbo_modify_user_domains(&$user, $context) {
// Prevent action on user 0 (anonymous) user if it's passed in.
if (!$user->uid) {
return;
}
$action = $context['action'];
$submitted_domains = $context['domains'];
// This function is called for each entity (user).
switch ($action) {
case 'replace':
$edit['domain_user'] = $submitted_domains;
break;
case 'add':
// Get current user's domains and merge with submitted.
$current_domains = domain_get_user_domains($user);
// Just add the arrays with domains together.
$combined_domains = $current_domains + $submitted_domains;
$edit['domain_user'] = array_unique($combined_domains);
break;
case 'remove':
// Get current user's domains and substract submitted.
$current_domains = domain_get_user_domains($user);
// Remove submitted domains from the current domains array.
$subtracted_domains = array_diff_assoc($current_domains, $submitted_domains);
$edit['domain_user'] = array_unique($subtracted_domains);
break;
}
// Save new settings.
// Function domain_user_save expects a third argument ($catalog), but it is
// not used. Set it to a zero value here to prevent notices.
domain_user_save($edit, $user, 0);
}