diff --git a/core/modules/field_ui/field_ui.install b/core/modules/field_ui/field_ui.install new file mode 100644 index 0000000..a0d1fea --- /dev/null +++ b/core/modules/field_ui/field_ui.install @@ -0,0 +1,53 @@ + array( + 'administer comment fields', + 'administer comment display', + ), + 'administer content types' => array( + 'administer node fields', + 'administer node display', + ), + 'administer users' => array( + 'administer user fields', + 'administer user display', + ), + 'administer taxonomy' => array( + 'administer taxonomy_term fields', + 'administer taxonomy_term display', + ), + ); + + // There's no garantuee hook_permission() will be available for this + // module, so get the current known permissions to make sure this + // update doesn't crash. + $modules = user_permission_get_modules(); + + $all_roles_permissions = user_role_permissions(user_roles()); + foreach ($all_roles_permissions as $role_id => $role_permissions) { + $new_permissions = array(); + foreach ($permissions as $entity_permission => $field_ui_permissions) { + if (isset($role_permissions[$entity_permission])) { + if (isset($modules[$field_ui_permissions[0]])) { + $new_permissions[] = $field_ui_permissions[0]; + } + if (isset($modules[$field_ui_permissions[1]])) { + $new_permissions[] = $field_ui_permissions[1]; + } + } + } + if (!empty($new_permissions)) { + user_role_grant_permissions($role_id, $new_permissions); + } + } +} diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUiTestBase.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUiTestBase.php index e7076f9..dbf8487 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUiTestBase.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/FieldUiTestBase.php @@ -25,7 +25,7 @@ function setUp() { parent::setUp(); // Create test user. - $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer node fields', 'administer node display', 'administer taxonomy', 'administer taxonomy_term fields' , 'administer users', 'administer user display')); + $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer node fields', 'administer node display', 'administer taxonomy', 'administer taxonomy_term fields', 'administer taxonomy_term display', 'administer users', 'administer user display')); $this->drupalLogin($admin_user); // Create content type, with underscores.