Mercurial > hg > isophonics-drupal-site
view core/modules/user/src/RoleForm.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
line wrap: on
line source
<?php namespace Drupal\user; use Drupal\Core\Entity\EntityForm; use Drupal\Core\Form\FormStateInterface; /** * Form controller for the role entity edit forms. */ class RoleForm extends EntityForm { /** * {@inheritdoc} */ public function form(array $form, FormStateInterface $form_state) { $entity = $this->entity; $form['label'] = [ '#type' => 'textfield', '#title' => $this->t('Role name'), '#default_value' => $entity->label(), '#size' => 30, '#required' => TRUE, '#maxlength' => 64, '#description' => $this->t('The name for this role. Example: "Moderator", "Editorial board", "Site architect".'), ]; $form['id'] = [ '#type' => 'machine_name', '#default_value' => $entity->id(), '#required' => TRUE, '#disabled' => !$entity->isNew(), '#size' => 30, '#maxlength' => 64, '#machine_name' => [ 'exists' => ['\Drupal\user\Entity\Role', 'load'], ], ]; $form['weight'] = [ '#type' => 'value', '#value' => $entity->getWeight(), ]; return parent::form($form, $form_state, $entity); } /** * {@inheritdoc} */ public function save(array $form, FormStateInterface $form_state) { $entity = $this->entity; // Prevent leading and trailing spaces in role names. $entity->set('label', trim($entity->label())); $status = $entity->save(); $edit_link = $this->entity->link($this->t('Edit')); if ($status == SAVED_UPDATED) { drupal_set_message($this->t('Role %label has been updated.', ['%label' => $entity->label()])); $this->logger('user')->notice('Role %label has been updated.', ['%label' => $entity->label(), 'link' => $edit_link]); } else { drupal_set_message($this->t('Role %label has been added.', ['%label' => $entity->label()])); $this->logger('user')->notice('Role %label has been added.', ['%label' => $entity->label(), 'link' => $edit_link]); } $form_state->setRedirect('entity.user_role.collection'); } }