mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-09-13 13:57:10 +02:00
Implemented LayerActionMap
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
<?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 [];
|
||||
}
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domain\LayerManagement;
|
||||
|
||||
/**
|
||||
* This LayerActionMap offers the possibility, to see which Action\Layer-Cobinations are possible.
|
||||
*
|
||||
* @author kevinfrantz
|
||||
*/
|
||||
interface LayerActionMapInterface
|
||||
{
|
||||
/**
|
||||
* @param string $action
|
||||
*
|
||||
* @return array|string[]
|
||||
*/
|
||||
public static function getLayers(string $action): array;
|
||||
|
||||
/**
|
||||
* @param string $layer
|
||||
*
|
||||
* @return array|string[]
|
||||
*/
|
||||
public static function getActions(string $layer): array;
|
||||
}
|
Reference in New Issue
Block a user