-
Notifications
You must be signed in to change notification settings - Fork 0
/
seeds_headless.install
72 lines (61 loc) · 1.67 KB
/
seeds_headless.install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
/**
* @file
* Install, update and uninstall functions for the seeds_headless profile.
*/
use Drupal\views\Entity\View;
use Drupal\user\Entity\User;
function isDirectory($uri) {
return @is_dir($uri);
}
/**
* Implements hook_install().
*/
function seeds_headless_install() {
// Set front page to "user".
if (Drupal::moduleHandler()->moduleExists('user')) {
Drupal::configFactory()
->getEditable('system.site')
->set('page.front', '/user')
->save(TRUE);
}
// Disable frontpage andd taxonomy term view page.
View::load('frontpage')
->disable()
->save();
View::load('taxonomy_term')
->disable()
->save();
// Enable the admin theme.
Drupal::configFactory()
->getEditable('node.settings')
->set('use_admin_theme', TRUE)
->save(TRUE);
// Create a new user entity object.
$user = User::create([
'name' => 'Nextjs',
'mail' => 'nextjs@sprintive.com',
'pass' => 'password',
'status' => 1,
]);
// Set the user's roles.
$roles = ['authenticated', 'nextjs'];
$user->set('roles', $roles);
// Save the user entity.
$user->save();
// Generate public and private keys
if (Drupal::moduleHandler()->moduleExists('simple_oauth')) {
$dir_path = Drupal::root();
/**
* @var Drupal\Core\File\FileSystem $fileSystemService
*/
$fileSystemService = \Drupal::service('file_system');
$path = dirname($dir_path) . '/key';
if (!isDirectory($path)) {
$fileSystemService->mkdir($path, 0777, TRUE);
}
$keys_path = $fileSystemService->realpath($path);
$moduleKeyHandler = \Drupal::service('simple_oauth.key.generator');
$moduleKeyHandler->generateKeys($keys_path);
}
}