public function FeedsUserProcessor::rolesListSetTarget in Feeds 7.2
Sets role target on the user entity.
1 call to FeedsUserProcessor::rolesListSetTarget()
- FeedsUserProcessor::setTargetElement in plugins/
FeedsUserProcessor.inc - Overrides setTargetElement() to operate on a target item that is an user.
File
- plugins/
FeedsUserProcessor.inc, line 577 - Contains FeedsUserProcessor.
Class
- FeedsUserProcessor
- Feeds processor plugin. Create users from feed items.
Code
public function rolesListSetTarget(FeedsSource $source, $entity, $target, array $values, array $mapping) {
// Add in defaults.
$defaults = $this
->rolesListDefaults();
$mapping += $defaults;
$mapping['allowed_roles'] += $defaults['allowed_roles'];
// Eventually revoke roles. Do not touch roles that are not allowed to set
// by the source.
if ($mapping['revoke_roles']) {
foreach ($mapping['allowed_roles'] as $rid) {
unset($entity->roles[$rid]);
}
}
foreach ($values as $value) {
$role = NULL;
$value = trim($value);
if (strlen($value) < 1) {
// No role provided. Continue to the next role.
continue;
}
switch ($mapping['role_search']) {
case self::ROLE_SEARCH_NAME:
$role = user_role_load_by_name($value);
if (!$role && !empty($mapping['autocreate'])) {
// Create new role if role doesn't exist.
$role = new stdClass();
$role->name = $value;
user_role_save($role);
$role = user_role_load_by_name($role->name);
}
break;
case self::ROLE_SEARCH_RID:
$role = user_role_load($value);
break;
}
if ($role) {
// Check if the role may be assigned.
if (isset($mapping['allowed_roles'][$role->rid]) && !$mapping['allowed_roles'][$role->rid]) {
// This role may *not* be assiged.
continue;
}
$entity->roles[$role->rid] = $role->name;
}
}
}