You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace BusinessLogic\Categories;
|
|
|
|
use BusinessLogic\Security\UserContext;
|
|
use DataAccess\Categories\CategoryGateway;
|
|
use DataAccess\Settings\ModsForHeskSettingsGateway;
|
|
|
|
class CategoryRetriever extends \BaseClass {
|
|
/**
|
|
* @var CategoryGateway
|
|
*/
|
|
private $categoryGateway;
|
|
|
|
/**
|
|
* @var ModsForHeskSettingsGateway
|
|
*/
|
|
private $modsForHeskSettingsGateway;
|
|
|
|
function __construct(CategoryGateway $categoryGateway,
|
|
ModsForHeskSettingsGateway $modsForHeskSettingsGateway) {
|
|
$this->categoryGateway = $categoryGateway;
|
|
$this->modsForHeskSettingsGateway = $modsForHeskSettingsGateway;
|
|
}
|
|
|
|
/**
|
|
* @param $heskSettings array
|
|
* @param $userContext UserContext
|
|
* @return array
|
|
*/
|
|
function getAllCategories($heskSettings, $userContext) {
|
|
$modsForHeskSettings = $this->modsForHeskSettingsGateway->getAllSettings($heskSettings);
|
|
|
|
$categories = $this->categoryGateway->getAllCategories($heskSettings, $modsForHeskSettings);
|
|
|
|
foreach ($categories as $category) {
|
|
$category->accessible = $userContext->admin ||
|
|
in_array($category->id, $userContext->categories);
|
|
}
|
|
|
|
return $categories;
|
|
}
|
|
} |