1.20.x user.install | user_update_1008() |
Update views that used the old role ID handlers to use role name instead.
Related topics
File
- modules/
user/ user.install, line 454 - Install, update and uninstall functions for the user module.
Code
function user_update_1008() {
$configs = config_get_names_with_prefix('views.view.');
foreach ($configs as $config_name) {
$config = config($config_name);
$view_data = $config->get();
$changed = FALSE;
foreach ($view_data['display'] as $display_name => $display_data) {
foreach (array('fields', 'filters') as $handler_type) {
if (isset($display_data['display_options'][$handler_type])) {
foreach ($display_data['display_options'][$handler_type] as $handler_key => $handler_data) {
// Change users_roles.rid to users_roles.role.
if ($handler_data['table'] === 'users_roles' && $handler_data['field'] === 'rid') {
$view_data['display'][$display_name]['display_options'][$handler_type][$handler_key]['field'] = 'role';
$changed = TRUE;
}
// Change role_permission.permission to users_roles.permissions.
if ($handler_data['table'] === 'role_permission' && $handler_data['field'] === 'permission') {
$view_data['display'][$display_name]['display_options'][$handler_type][$handler_key]['table'] = 'users_roles';
$view_data['display'][$display_name]['display_options'][$handler_type][$handler_key]['field'] = 'permissions';
$changed = TRUE;
}
}
}
}
}
if ($changed) {
$config->setData($view_data);
$config->save();
}
}
}