mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-02-06 01:57:19 +01:00
57 lines
1.3 KiB
PHP
57 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace App\Domain\LayerManagement;
|
||
|
|
||
|
use App\DBAL\Types\Meta\Right\LayerType;
|
||
|
use App\DBAL\Types\ActionType;
|
||
|
|
||
|
/**
|
||
|
* @author kevinfrantz
|
||
|
*/
|
||
|
final class LayerActionMap implements LayerActionMapInterface
|
||
|
{
|
||
|
/**
|
||
|
* @var array Add new combination possibilities to this map!
|
||
|
*/
|
||
|
const LAYER_ACTION_MAP = [
|
||
|
LayerType::SOURCE => [
|
||
|
ActionType::READ,
|
||
|
ActionType::CREATE,
|
||
|
ActionType::UPDATE,
|
||
|
ActionType::DELETE,
|
||
|
ActionType::LIST,
|
||
|
],
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* {@inheritdoc}
|
||
|
*
|
||
|
* @see \App\Domain\LayerManagement\LayerActionMapInterface::getLayers()
|
||
|
*/
|
||
|
public static function getLayers(string $action): array
|
||
|
{
|
||
|
$layers = [];
|
||
|
foreach (self::LAYER_ACTION_MAP as $layer => $actions) {
|
||
|
if (in_array($action, $actions)) {
|
||
|
$layers[] = $layer;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $layers;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* {@inheritdoc}
|
||
|
*
|
||
|
* @see \App\Domain\LayerManagement\LayerActionMapInterface::getActions()
|
||
|
*/
|
||
|
public static function getActions(string $layer): array
|
||
|
{
|
||
|
if (array_key_exists($layer, self::LAYER_ACTION_MAP)) {
|
||
|
return self::LAYER_ACTION_MAP[$layer];
|
||
|
}
|
||
|
|
||
|
return [];
|
||
|
}
|
||
|
}
|