Version 1
[yaffs-website] / web / core / modules / user / user.install
diff --git a/web/core/modules/user/user.install b/web/core/modules/user/user.install
new file mode 100644 (file)
index 0000000..0af797a
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the user module.
+ */
+
+/**
+ * Implements hook_schema().
+ */
+function user_schema() {
+  $schema['users_data'] = [
+    'description' => 'Stores module data as key/value pairs per user.',
+    'fields' => [
+      'uid' => [
+        'description' => 'Primary key: {users}.uid for user.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ],
+      'module' => [
+        'description' => 'The name of the module declaring the variable.',
+        'type' => 'varchar_ascii',
+        'length' => DRUPAL_EXTENSION_NAME_MAX_LENGTH,
+        'not null' => TRUE,
+        'default' => '',
+      ],
+      'name' => [
+        'description' => 'The identifier of the data.',
+        'type' => 'varchar_ascii',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+      ],
+      'value' => [
+        'description' => 'The value.',
+        'type' => 'blob',
+        'not null' => FALSE,
+        'size' => 'big',
+      ],
+      'serialized' => [
+        'description' => 'Whether value is serialized.',
+        'type' => 'int',
+        'size' => 'tiny',
+        'unsigned' => TRUE,
+        'default' => 0,
+      ],
+    ],
+    'primary key' => ['uid', 'module', 'name'],
+    'indexes' => [
+      'module' => ['module'],
+      'name' => ['name'],
+    ],
+    'foreign keys' => [
+      'uid' => ['users' => 'uid'],
+    ],
+  ];
+
+  return $schema;
+}
+
+/**
+ * Implements hook_install().
+ */
+function user_install() {
+  $storage = \Drupal::entityManager()->getStorage('user');
+  // Insert a row for the anonymous user.
+  $storage
+    ->create([
+      'uid' => 0,
+      'status' => 0,
+      'name' => '',
+    ])
+    ->save();
+
+  // We need some placeholders here as name and mail are unique.
+  // This will be changed by the settings form in the installer.
+  $storage
+    ->create([
+      'uid' => 1,
+      'name' => 'placeholder-for-uid-1',
+      'mail' => 'placeholder-for-uid-1',
+      'status' => TRUE,
+    ])
+    ->save();
+}
+
+/**
+ * Fix invalid token in the status_blocked email body.
+ */
+function user_update_8100() {
+  $config_factory = \Drupal::configFactory();
+  $config = $config_factory->getEditable('user.mail');
+  $mail = $config->get('status_blocked');
+  if (strpos($mail['body'], '[site:account-name]') !== FALSE) {
+    $mail['body'] = str_replace('[site:account-name]', '[site:name]', $mail['body']);
+    $config->set('status_blocked', $mail)->save(TRUE);
+  }
+}