admin_showroom can only edit sample of his own showroom

This commit is contained in:
2021-12-08 21:41:41 +01:00
parent 9cc1152f6b
commit 0335212a97
48 changed files with 603 additions and 10 deletions

View File

@@ -98,6 +98,25 @@ class SamplesDefaultWidget extends WidgetBase {
// '#field_prefix' => '<div class="container-inline">',
// '#field_suffix' => '</div>',
// ];
$disabled = true;
// get current user
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
if($user->hasPermission('materio_samples_edit_any_sample')){
// check perms to edit any
$disabled = false;
}else if($disabled){
// get user showroom if any
$showrooms = $user->get('field_showroom')->referencedEntities();
// enable/disable field reagarding showroom
foreach($showrooms as $showroom){
if($term->id() == $showroom->id()){
$disabled = false;
break;
}
}
}
$element['target_id'] = [
'#type' => 'hidden',
'#default_value' => $target_id,
@@ -109,6 +128,7 @@ class SamplesDefaultWidget extends WidgetBase {
'#size' => 10,
'#maxlength' => 15,
'#attributes' => ['class' => ['container-inline']],
'#disabled' => $disabled,
];
// return ['value' => $element];
return $element;