class UserForm in Drupal-to-Drupal data migration 8.3
Simple wizard step form.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\migrate_d2d_ui\Form\DrupalMigrateForm
- class \Drupal\migrate_d2d_ui\Form\UserForm
- class \Drupal\migrate_d2d_ui\Form\DrupalMigrateForm
Expanded class hierarchy of UserForm
File
- migrate_d2d_ui/
src/ Form/ UserForm.php, line 11
Namespace
Drupal\migrate_d2d_ui\FormView source
class UserForm extends DrupalMigrateForm {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'migrate_d2d_user_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$cached_values = $form_state
->getTemporaryValue('wizard');
$connection = $this
->connection($form_state);
$form['overview'] = [
'#markup' => $this
->t('User accounts other than the admin account (user ID 1) may be imported to this site.'),
];
$form['#tree'] = TRUE;
if (!isset($this->userCount)) {
$this->userCount = $connection
->select('users', 'u')
->condition('uid', 1, '>')
->countQuery()
->execute()
->fetchField();
}
$form['users'] = [
'#markup' => $this
->t('Number of users available to be migrated from your Drupal @version site: @count', [
'@version' => $cached_values['version'],
'@count' => $this->userCount,
]),
];
$form['do_migration'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Perform import of users'),
'#default_value' => TRUE,
];
// Build select list from destination roles.
$base_options = [
'-1' => $this
->t('--Do not import--'),
'0' => $this
->t('--Create role--'),
];
$role_options = [];
foreach (user_role_names(TRUE) as $rid => $role) {
$role_options[$rid] = $role;
}
// Go through the non-trivial source roles.
$result = $connection
->select('role', 'r')
->fields('r', [
'rid',
'name',
])
->condition('name', [
'anonymous user',
'authenticated user',
], 'NOT IN')
->execute();
$source_roles = [];
foreach ($result as $row) {
$source_roles[$row->rid] = $row->name;
}
if (!empty($source_roles)) {
// Description
$form['role_overview'] = [
'#markup' => $this
->t('For each user role on the legacy site, choose whether to ignore that role, to create it on this site, or to assign a different role to users with that legacy role.'),
];
foreach ($source_roles as $rid => $name) {
$options = $base_options + $role_options;
// If we have a match on role name, default the mapping to that match
// and remove the option to create a new role of that name.
if (in_array($name, $role_options)) {
$default_value = $name;
unset($options['0']);
}
else {
$default_value = '-1';
}
$count = $connection
->select('users_roles', 'ur')
->condition('rid', $rid)
->countQuery()
->execute()
->fetchField();
$title = $this
->t('@name (@count)', [
'@name' => $name,
'@count' => $this
->getStringTranslation()
->formatPlural($count, '1 user', '@count users'),
]);
$form['role'][$name] = [
'#type' => 'select',
'#title' => $title,
'#options' => $options,
'#default_value' => $default_value,
];
}
}
else {
$form['role_overview'] = [
'#markup' => $this
->t('There are no user roles in the source site that are not already in the destination site'),
];
}
$options = [
'authenticated user' => 'authenticated user',
] + $role_options;
$form['default_role'] = [
'#type' => 'select',
'#title' => $this
->t('Default role'),
'#description' => $this
->t('Choose the role to assign to any user accounts who had none of the above roles on the legacy site'),
'#options' => $options,
'#default_value' => AccountInterface::AUTHENTICATED_ROLE,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$cached_values = $form_state
->getTemporaryValue('wizard');
if ($form_state
->getValue('do_migration')) {
$cached_values['user_migration'] = TRUE;
$cached_values['role_mappings'] = $form_state
->getValue('role');
$cached_values['default_role'] = $form_state
->getValue('default_role');
// Map "do not import" roles to the default role, and remove roles
// to be created so they get imported naturally.
foreach ($cached_values['role_mappings'] as $source_role => $destination_role) {
if ($destination_role == '-1') {
$cached_values['role_mappings'][$source_role] = $cached_values['default_role'];
}
elseif ($destination_role == '0') {
unset($cached_values['role_mappings'][$source_role]);
}
}
// Default role needs to be a rid.
$cached_values['default_role'] = array_search($cached_values['default_role'], user_role_names());
}
else {
$cached_values['user_migration'] = FALSE;
}
$form_state
->setTemporaryValue('wizard', $cached_values);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DrupalMigrateForm:: |
protected | property | Cached database connection. | |
DrupalMigrateForm:: |
protected | function | Gets the database connection for the source Drupal database. | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Retrieves a configuration object. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
87 |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. | |
UserForm:: |
public | function |
Form constructor. Overrides FormInterface:: |
|
UserForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
UserForm:: |
public | function |
Form submission handler. Overrides FormInterface:: |
|
UserForm:: |
public | function |
Form validation handler. Overrides FormBase:: |