admin_showroom can only edit sample of his own showroom
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user