Check inventory quick form access based on configured log type and asset.
This commit is contained in:
parent
a4544a7ecb
commit
f5c7139a63
|
@ -3,6 +3,7 @@
|
||||||
namespace Drupal\farm_quick_inventory\Plugin\QuickForm;
|
namespace Drupal\farm_quick_inventory\Plugin\QuickForm;
|
||||||
|
|
||||||
use Drupal\asset\Entity\AssetInterface;
|
use Drupal\asset\Entity\AssetInterface;
|
||||||
|
use Drupal\Core\Access\AccessResult;
|
||||||
use Drupal\Core\Datetime\DrupalDateTime;
|
use Drupal\Core\Datetime\DrupalDateTime;
|
||||||
use Drupal\Core\Entity\EntityTypeManagerInterface;
|
use Drupal\Core\Entity\EntityTypeManagerInterface;
|
||||||
use Drupal\Core\Form\FormStateInterface;
|
use Drupal\Core\Form\FormStateInterface;
|
||||||
|
@ -27,9 +28,7 @@ use Psr\Container\ContainerInterface;
|
||||||
* label = @Translation("Inventory"),
|
* label = @Translation("Inventory"),
|
||||||
* description = @Translation("Record asset inventory adjustments."),
|
* description = @Translation("Record asset inventory adjustments."),
|
||||||
* helpText = @Translation("Use this form to increment, decrement, or reset the inventory of an asset. A new log will be created to record the adjustment."),
|
* helpText = @Translation("Use this form to increment, decrement, or reset the inventory of an asset. A new log will be created to record the adjustment."),
|
||||||
* permissions = {
|
* permissions = {}
|
||||||
* "create observation log",
|
|
||||||
* }
|
|
||||||
* )
|
* )
|
||||||
*/
|
*/
|
||||||
class Inventory extends QuickFormBase implements ConfigurableQuickFormInterface {
|
class Inventory extends QuickFormBase implements ConfigurableQuickFormInterface {
|
||||||
|
@ -100,6 +99,21 @@ class Inventory extends QuickFormBase implements ConfigurableQuickFormInterface
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function access(AccountInterface $account) {
|
||||||
|
|
||||||
|
// Check to ensure the user has permission to create the configured log type
|
||||||
|
// and view the configured asset.
|
||||||
|
$result = AccessResult::allowedIf($this->entityTypeManager->getAccessControlHandler('log')->createAccess($this->configuration['log_type'], $account));
|
||||||
|
if (!empty($this->configuration['asset'])) {
|
||||||
|
$asset = $this->entityTypeManager->getStorage('asset')->load($this->configuration['asset']);
|
||||||
|
$result = $result->andIf(AccessResult::allowedIf($asset->access('view')));
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue