class UserExpireSettingsForm in User Expire 8
User expire admin settings form.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\user_expire\Form\UserExpireSettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of UserExpireSettingsForm
1 string reference to 'UserExpireSettingsForm'
File
- src/
Form/ UserExpireSettingsForm.php, line 15
Namespace
Drupal\user_expire\FormView source
class UserExpireSettingsForm extends ConfigFormBase {
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Constructs a \Drupal\user_expire\Form\UserExpireSettingsForm object.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The factory for configuration objects.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manger.
*/
public function __construct(ConfigFactoryInterface $config_factory, EntityTypeManagerInterface $entity_type_manager) {
parent::__construct($config_factory);
$this->entityTypeManager = $entity_type_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('entity_type.manager'));
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'user_expire_form';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'user_expire.settings',
];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
// Get the rules and the roles.
$config = $this
->config('user_expire.settings');
$rules = $config
->get('user_expire_roles') ?: [];
$user_roles = $this->entityTypeManager
->getStorage('user_role')
->loadMultiple();
$roles = [];
foreach ($user_roles as $rid => $role) {
$roles[$role
->id()] = $role
->get('label');
}
// Save the current roles for use in submit handler.
$form['current_roles'] = [
'#type' => 'value',
'#value' => $roles,
];
$form['frequency'] = [
'#type' => 'textfield',
'#title' => $this
->t('Frequency time in seconds'),
'#default_value' => $config
->get('frequency') ?: 172800,
'#description' => $this
->t('86400 = 1 day'),
];
$form['offset'] = [
'#type' => 'textfield',
'#title' => $this
->t('Warning offset time in seconds'),
'#default_value' => $config
->get('offset') ?: 604800,
'#description' => $this
->t('86400 = 1 day'),
];
// Now show boxes for each role.
$form['user_expire_roles'] = [
'#type' => 'fieldset',
'#title' => $this
->t('User inactivity expire by role settings'),
'#description' => $this
->t('Configure expiration of users by roles. Enter 0 to disable for the role. Enter 7776000 for 90 days.'),
];
foreach ($roles as $rid => $role) {
if ($rid === RoleInterface::ANONYMOUS_ID) {
continue;
}
$form['user_expire_roles']['user_expire_' . $rid] = [
'#type' => 'textfield',
'#title' => $this
->t('Seconds of inactivity before expiring %role users', [
'%role' => $role,
]),
'#default_value' => $rules[$rid] ?? 0,
];
}
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
if (!ctype_digit($form_state
->getValue('frequency'))) {
$form_state
->setErrorByName('frequency', $this
->t('Frequency time must be an integer.'));
}
if (!ctype_digit($form_state
->getValue('offset'))) {
$form_state
->setErrorByName('offset', $this
->t('Warning offset time must be an integer.'));
}
foreach ($form_state
->getValue('current_roles') as $rid => $role) {
if ($rid === RoleInterface::ANONYMOUS_ID) {
continue;
}
if (!ctype_digit($form_state
->getValue('user_expire_' . $rid))) {
$form_state
->setErrorByName('user_expire_' . $rid, $this
->t('Inactivity period must be an integer.'));
}
}
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$form_state
->cleanValues();
$config = $this
->config('user_expire.settings');
if (!empty($form_state
->getValue('frequency'))) {
$config
->set('frequency', (int) $form_state
->getValue('frequency'));
}
if (!empty($form_state
->getValue('offset'))) {
$config
->set('offset', (int) $form_state
->getValue('offset'));
}
// Insert the rows that were inserted.
$rules = $config
->get('user_expire_roles') ?: [];
foreach ($form_state
->getValue('current_roles') as $rid => $role) {
// Only save non-zero values.
if (!empty($form_state
->getValue('user_expire_' . $rid))) {
$rules[$rid] = (int) $form_state
->getValue('user_expire_' . $rid);
}
}
$config
->set('user_expire_roles', $rules);
$config
->save();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
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 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
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. | |
UserExpireSettingsForm:: |
protected | property | The entity type manager. | |
UserExpireSettingsForm:: |
public | function |
Form constructor. Overrides ConfigFormBase:: |
|
UserExpireSettingsForm:: |
public static | function |
Instantiates a new instance of this class. Overrides ConfigFormBase:: |
|
UserExpireSettingsForm:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
UserExpireSettingsForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
UserExpireSettingsForm:: |
public | function |
Form submission handler. Overrides ConfigFormBase:: |
|
UserExpireSettingsForm:: |
public | function |
Form validation handler. Overrides FormBase:: |
|
UserExpireSettingsForm:: |
public | function |
Constructs a \Drupal\user_expire\Form\UserExpireSettingsForm object. Overrides ConfigFormBase:: |