Commit 2e65a9e3 authored by Gorodkov Denis's avatar Gorodkov Denis

Roles Editor

parent 70e7d3b2
......@@ -68,9 +68,23 @@ function mymodule_form_contact_message_feedback_form_alter(&$form, \Drupal\Core\
* Implements hook_form_alter().
*/
function mymodule_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$user = Drupal::currentUser();
if ($form_id == 'views_exposed_form' and $form['#id'] == 'views-exposed-form-index-films-page-1') {
$form["actions"]["reset"]["#access"] = true;
}
if (!empty($form['field_editor'])) {
$user_roles = $user->getRoles();
$isRedactor = false;
foreach ($user_roles as $role) {
if ($role == 'redactor') {
$isRedactor = true;
}
}
if ($isRedactor) {
$form["field_editor"]["#access"] = false;
}
}
}
/**
......@@ -129,15 +143,6 @@ function mymodule_node_access(\Drupal\Core\Entity\EntityInterface $node, $operat
}
if ($operation == 'update') {
if ($node->getOwnerId() == $account->id()) {
/**
* Если это создатель
*/
return AccessResult::neutral();
}
if ($node->hasField('field_editor')) {
$allow_redactors = $node->get('field_editor')->referencedEntities();
} else {
......@@ -181,20 +186,25 @@ function mymodule_node_access(\Drupal\Core\Entity\EntityInterface $node, $operat
}
}
function mymodule_entity_form_display_alter(\Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display, array $context) {
if ($context['entity_type'] == 'node') {
$user = Drupal::currentUser();
$user_roles = $user->getRoles();
$isRedactor = false;
foreach ($user_roles as $role) {
if ($role == 'redactor') {
$isRedactor = true;
}
function mymodule_node_presave($node) {
$user = Drupal::currentUser();
$user_roles = $user->getRoles();
$isRedactor = false;
foreach ($user_roles as $role) {
if ($role == 'redactor') {
$isRedactor = true;
}
if ($isRedactor) {
$form_display->setComponent('field_editor', array(
'type' => 'hidden',
));
}
if ($isRedactor) {
if ($node->hasField('field_editor')) {
$editors = $node->get("field_editor")->referencedEntities();
foreach ($editors as $editor) {
if ($editor->id() == $user->id()) {
return true;
}
}
$node->field_editor[] = $user->id();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment