public function UserAccessForm::buildForm in Taxonomy Access Control Lite 8
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides ConfigFormBase::buildForm
File
- src/
Form/ UserAccessForm.php, line 30
Class
- UserAccessForm
- Builds the form for User Access.
Namespace
Drupal\tac_lite\FormCode
public function buildForm(array $form, FormStateInterface $form_state, $user = 0) {
$this->uid = $user;
$vocabularies = Vocabulary::loadMultiple();
$config = \Drupal::config('tac_lite.settings');
$vids = $config
->get('tac_lite_categories');
$schemes = $config
->get('tac_lite_schemes');
if (count($vids)) {
for ($i = 1; $i <= $schemes; $i++) {
$config = SchemeForm::tacLiteConfig($i);
if ($config['name']) {
$perms = $config['perms'];
if ($config['term_visibility']) {
$perms[] = $this
->t('term visibility');
}
$form['tac_lite'][$config['realm']] = [
'#type' => 'details',
'#title' => $config['name'],
'#description' => $this
->t('This scheme controls %perms.', [
'%perms' => implode(' and ', $perms),
]),
'#open' => TRUE,
'#tree' => TRUE,
];
// Create a form element for each vocabulary.
foreach ($vids as $vid) {
$v = $vocabularies[$vid];
$default_values = [];
$data = \Drupal::service('user.data')
->get('tac_lite', $user, 'tac_lite_scheme_' . $i) ?: [];
if (!empty($data) && $data[$vid]) {
$default_values = $data[$vid];
}
$form['tac_lite'][$config['realm']][$vid] = SchemeForm::tacLiteTermSelect($v, $default_values);
$form['tac_lite'][$config['realm']][$vid]['#description'] = $this
->t('Grant permission to this user by selecting terms. Note that permissions are in addition to those granted based on user roles.');
}
}
}
$form['tac_lite'][0] = [
'#type' => 'markup',
'#markup' => '<p>' . $this
->t('You may grant this user access based on the schemes and terms below. These permissions are in addition to <a href=":url">role based grants on scheme settings pages</a>.', [
':url' => Url::fromRoute('tac_lite.scheme_1')
->toString(),
]) . "</p>\n",
'#weight' => -1,
];
}
else {
$form['tac_lite_help'] = [
'#type' => 'markup',
'#prefix' => '<p>',
'#suffix' => '</p>',
'#markup' => $this
->t('First, select one or more vocabularies on the <a href=:url>settings page</a>. Then, return to this page to complete configuration.', [
':url' => Url::fromRoute('tac_lite.administration')
->toString(),
]),
];
}
return parent::buildForm($form, $form_state);
}