public function Mapping::buildForm in SAML SP 2.0 Single Sign On (SSO) - SAML Service Provider 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 FormInterface::buildForm
File
- src/
Form/ Mapping.php, line 23 - Contains Attribute and Role Mapping for miniOrange SAML Login Module.
Class
Namespace
Drupal\miniorange_saml\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
global $base_url;
Utilities::visual_tour_start($form, $form_state);
$form['miniorange_saml_markup_library'] = array(
'#attached' => array(
'library' => array(
'miniorange_saml/miniorange_saml.admin',
),
),
);
$form['markup_top'] = array(
'#markup' => t('<div class="mo_saml_sp_table_layout_1"><div class="mo_saml_table_layout mo_saml_sp_container" >
<div class="mo_saml_font_for_heading" >Attribute/Role Mapping</div>
<a id="Restart_moTour" class="mo_btn mo_btn-primary mo_btn-sm mo_tour_button_float" onclick="Restart_moTour()">Take a Tour</a><p style="clear: both"></p><hr>'),
);
/**
* Create container to hold @RoleMapping form elements.
*/
$form['mo_saml_role_mapping'] = array(
'#type' => 'fieldset',
'#title' => t('Role Mapping'),
'#attributes' => array(
'style' => 'padding:2% 2% 4%; margin-bottom:2%',
),
);
$form['mo_saml_role_mapping']['miniorange_saml_enable_rolemapping'] = array(
'#type' => 'checkbox',
'#title' => t('Check this option if you want to <b>enable Role Mapping</b>'),
'#default_value' => \Drupal::config('miniorange_saml.settings')
->get('miniorange_saml_enable_rolemapping'),
'#attributes' => array(
'class="mo_saml_checkbox"',
),
'#description' => t('<b style="color: red">Note:</b> Enable this checkbox first before using any of the feature below.'),
'#prefix' => t('<br><hr><br><div id="mo_saml_id_role_mapping_v_tour">'),
'#suffix' => t('</div>'),
);
$mrole = user_role_names(TRUE);
$default_role_index = \Drupal::configFactory()
->getEditable('miniorange_saml.settings')
->get('miniorange_saml_default_role_index');
$form['mo_saml_role_mapping']['miniorange_saml_default_mapping'] = array(
'#type' => 'select',
'#title' => t('Select default group for the new users'),
'#options' => array_values($mrole),
'#description' => t('<strong>Note: </strong>This role will be assigned to user when user gets created in Drupal after SSO for the first time.'),
'#default_value' => $default_role_index,
'#attributes' => array(
'style' => 'width:70%;background-image: inherit;background-color: white;-webkit-appearance: menulist;',
),
'#prefix' => '<br><div id="Default_Mapping">',
'#suffix' => '</div><br>',
);
$form['mo_saml_role_mapping']['miniorange_saml_disable_role_update'] = array(
'#type' => 'checkbox',
'#title' => t('Check this option if you do not want to update user role if roles not mapped '),
'#disabled' => TRUE,
//'#attributes' => array('background-color: hsla(0,0%,0%,0.08) !important;'),
'#description' => t('<b>Note:</b> This feature is availabe in <a href="' . $base_url . MiniorangeSAMLConstants::LICENSING_TAB_URL . '">Premium and Enterprise</a> versions of the module.'),
'#prefix' => '<div class="mo_saml_highlight_background_note_1">',
);
$form['mo_saml_role_mapping']['miniorange_saml_gateway_config2_submit'] = array(
'#type' => 'submit',
'#button_type' => 'primary',
'#value' => t('Save Configuration'),
'#prefix' => '</div><br><br>',
'#suffix' => '<br><br>',
);
/**
* Create container to hold @moCustomRoleMapping form elements.
*/
$form['mo_saml_custom_role_mapping'] = array(
'#type' => 'fieldset',
'#title' => t('Custom Role Mapping'),
'#attributes' => array(
'style' => 'padding:2% 2% 4%; margin-bottom:2%',
),
);
$form['mo_saml_custom_role_mapping']['markup_custom_role_mapping'] = array(
'#markup' => t('<br><hr><br><div class="mo_saml_highlight_background_note_1">
<b>Note: </b>Custom Role Mapping is configurable in <a href="' . $base_url . MiniorangeSAMLConstants::LICENSING_TAB_URL . '">Premium and Enterprise</a> versions of the module.</div>'),
);
$form['mo_saml_custom_role_mapping']['miniorange_saml_idp_attr1_name'] = array(
'#type' => 'textfield',
'#title' => t('Role Key'),
'#attributes' => array(
'style' => 'width:70%; background-color: hsla(0,0%,0%,0.08) !important;',
'placeholder' => 'Enter Role Attribute',
),
'#description' => t('<b>Note:</b> You will find role key value in the test configuration window.<br><br><br>'),
'#disabled' => TRUE,
);
$form['mo_saml_custom_role_mapping']['miniorange_saml_custom_role_buttons'] = array(
'#markup' => t('<h5 >Add Custom Role Mapping <a class="mo_btn mo_btn-primary" style="padding:0.4% 0.8% 0.4% 0.8% !important;">+</a><h3><table class="miniorange_saml_sp_attr_table"><tr><td>Drupal Role</td><td>Idp Role</td><td></td></tr>'),
);
$form['mo_saml_custom_role_mapping']['user_sp_role_name'] = array(
'#prefix' => '<tr><td>',
'#type' => 'select',
'#options' => $mrole,
'#attributes' => array(
'style' => 'width:100%;',
),
'#suffix' => '</td>',
);
$form['mo_saml_custom_role_mapping']['user_idp_role_name'] = array(
'#prefix' => '<td>',
'#type' => 'textfield',
'#suffix' => '</td>',
'#attributes' => array(
'style' => 'background-color: hsla(0,0%,0%,0.08) !important;',
),
'#disabled' => TRUE,
);
$form['mo_saml_custom_role_mapping']['user_role_delete'] = array(
'#prefix' => '<td><a class="mo_btn mo_btn-primary mo_role_attr_delete" >-</a>',
'#suffix' => '</td></tr></table>',
);
$form['mo_saml_custom_role_mapping']['miniorange_saml_gateway_config4_submit'] = array(
'#type' => 'submit',
'#value' => t('Save Configuration'),
'#disabled' => TRUE,
'#prefix' => '<br>',
'#suffix' => '<br><br>',
);
/**
* Create container to hold @AttributeMapping form elements.
*/
$form['mo_saml_attribute_mapping'] = array(
'#type' => 'fieldset',
'#title' => t('Attribute Mapping'),
'#attributes' => array(
'style' => 'padding:2% 2% 5%; margin-bottom:2%',
),
);
$form['mo_saml_attribute_mapping']['Configure_Attribute_Mapping_End'] = array(
'#markup' => t('<br><hr><br><div id="configure_attribute_mapping_start"></div><div class="mo_saml_highlight_background_note_1" ><strong>Note: <code>Username Attribute</code> </strong> and <strong><code>Email Attribute</code></strong> are configurable in
<a href="' . $base_url . MiniorangeSAMLConstants::LICENSING_TAB_URL . '">Standard, Premium and Enterprise</a> versions of the module.</div>'),
);
$form['mo_saml_attribute_mapping']['miniorange_saml_username_attribute'] = array(
'#type' => 'textfield',
'#title' => t('Username Attribute'),
'#default_value' => \Drupal::config('miniorange_saml.settings')
->get('miniorange_saml_username_attribute'),
'#attributes' => array(
'style' => 'width:70%; background-color: hsla(0,0%,0%,0.08) !important;',
),
'#disabled' => TRUE,
);
$form['mo_saml_attribute_mapping']['miniorange_saml_email_attribute'] = array(
'#type' => 'textfield',
'#title' => t('Email Attribute'),
'#default_value' => \Drupal::config('miniorange_saml.settings')
->get('miniorange_saml_email_attribute'),
'#attributes' => array(
'style' => 'width:70%;; background-color: hsla(0,0%,0%,0.08) !important;',
),
'#disabled' => TRUE,
);
$form['mo_saml_attribute_mapping']['miniorange_saml_gateway_config1_submit'] = array(
'#type' => 'submit',
'#value' => t('Save Configuration'),
'#prefix' => '<br>',
'#suffix' => '<br><br>',
'#disabled' => TRUE,
);
/**
* Create container to hold @moCustomAttributeMapping form elements.
*/
$form['mo_saml_custom_attribute_mapping'] = array(
'#type' => 'fieldset',
'#title' => t('Custom Attribute Mapping'),
'#attributes' => array(
'style' => 'padding:2% 2% 4%; margin-bottom:2%',
),
);
$form['mo_saml_custom_attribute_mapping']['markup_cam_attr'] = array(
'#markup' => t('<br><hr><br><div class="mo_saml_highlight_background_note_1"><b>Note: </b>Custom Attribute Mapping is configurable in
<a href="' . $base_url . MiniorangeSAMLConstants::LICENSING_TAB_URL . '">Premium and Enterprise</a> versions of the module.</div>'),
);
$form['mo_saml_custom_attribute_mapping']['markup_cam'] = array(
'#markup' => t('<br><div class="mo_saml_highlight_background_note_1"><b>Note: </b> Add the Drupal field attributes in the Attribute Name textfield and add the IdP attibutes that you need to map with the drupal attributes in the IdP Attribute Name textfield.
<ul><li><b>SP Attribute Name:</b> It is the user attribute (machine name) whose value you want to set in site.</li>
<li><b>IdP Attribute Name:</b> It is the name which you want to get from your IDP. It should be unique.</li></ul>
<p><b>eg: If the attribute name in the drupal is phone then its machine name will be field_phone. Click <a target="_blank" href="' . $base_url . MiniorangeSAMLConstants::USER_ATTRIBUTE . '">here</a> to check available fields.</b></p>
</div><br>'),
);
$form['mo_saml_custom_attribute_mapping']['miniorange_saml_custom_attr_buttons'] = array(
'#markup' => t('<h3 >Add Custom Atrribute <a class="mo_btn btn-large mo_btn-primary" style="padding:0.4% 0.8% 0.4% 0.8% !important;">+</a><h3><table class="miniorange_saml_sp_attr_table"><tr><td>Drupal Attribute Machine Name</td><td>IdP Attribute Name</td><td></td></tr>'),
);
$form['mo_saml_custom_attribute_mapping']['user_sp_attr_name'] = array(
'#prefix' => '<tr><td>',
'#type' => 'textfield',
'#disabled' => TRUE,
'#attributes' => array(
'style' => 'background-color: hsla(0,0%,0%,0.08) !important;',
),
'#suffix' => '</td>',
);
$form['mo_saml_custom_attribute_mapping']['user_idp_attr_name'] = array(
'#prefix' => '<td>',
'#type' => 'textfield',
'#disabled' => TRUE,
'#suffix' => '</td>',
'#attributes' => array(
'style' => 'background-color: hsla(0,0%,0%,0.08) !important;',
),
);
$form['mo_saml_custom_attribute_mapping']['user_delete'] = array(
'#prefix' => '<td><a class="mo_btn mo_btn-danger mo_btn-sm mo_role_attr_delete">-</a>',
'#suffix' => '</td></tr></table>',
);
$form['mo_saml_custom_attribute_mapping']['miniorange_saml_gateway_config3_submit'] = array(
'#type' => 'submit',
'#value' => t('Save Configuration'),
'#disabled' => TRUE,
'#prefix' => '<br>',
'#suffix' => '<br><br></div>',
);
Utilities::advertiseNetworkSecurity($form, $form_state, 'SCIM');
return $form;
}