getEditable('system.site')->set('page.front', '/node')->save(TRUE); // Allow visitor account creation with administrative approval. $user_settings = \Drupal::configFactory()->getEditable('user.settings'); $user_settings->set('register', USER_REGISTER_ADMINISTRATORS_ONLY)->save(TRUE); // Enable default permissions for system roles. user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['access comments']); user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, ['access comments', 'post comments', 'skip comment approval']); // Assign user 1 the "administrator" role. $user = User::load(1); $user->roles[] = 'administrator'; $user->save(); // We install some menu links, so we have to rebuild the router, to ensure the // menu links are valid. \Drupal::service('router.builder')->rebuildIfNeeded(); // Allow authenticated users to use shortcuts. user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, ['access shortcuts']); // Populate the default shortcut set. $shortcut = Shortcut::create([ 'shortcut_set' => 'default', 'title' => t('Add content'), 'weight' => -20, 'link' => ['uri' => 'internal:/node/add'], ]); $shortcut->save(); $shortcut = Shortcut::create([ 'shortcut_set' => 'default', 'title' => t('All content'), 'weight' => -19, 'link' => ['uri' => 'internal:/admin/content'], ]); $shortcut->save(); // Allow all users to use search. user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['search content']); user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, ['search content']); // Enable the admin theme. \Drupal::configFactory()->getEditable('node.settings')->set('use_admin_theme', TRUE)->save(TRUE); // Enable seven theme. \Drupal::configFactory()->getEditable('system.theme')->set('admin', 'seven')->save(TRUE); // Enable the front-end theme. \Drupal::configFactory()->getEditable('system.theme')->set('default', 'adm_theme')->save(TRUE); }