Remove dark magic middleware and check permission in services

This commit is contained in:
Julius Haertl
2017-01-13 16:36:36 +01:00
parent 6d0ebb7d73
commit b0627d8979
14 changed files with 158 additions and 297 deletions

View File

@@ -24,8 +24,7 @@
namespace OCA\Deck\Service;
use OCA\Deck\Db\Label;
use OCP\ILogger;
use OCP\IL10N;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\LabelMapper;
@@ -34,19 +33,22 @@ class LabelService {
private $labelMapper;
private $logger;
public function __construct(ILogger $logger,
IL10N $l10n,
LabelMapper $labelMapper) {
public function __construct(
LabelMapper $labelMapper,
PermissionService $permissionService
) {
$this->labelMapper = $labelMapper;
$this->logger = $logger;
$this->permissionService = $permissionService;
}
public function find($labelId) {
$this->permissionService->checkPermission($this->labelMapper, $labelId, Acl::PERMISSION_READ);
$label = $this->labelMapper->find($labelId);
return $label;
}
public function create($title, $color, $boardId) {
$this->permissionService->checkPermission(null, $boardId, Acl::PERMISSION_MANAGE);
$label = new Label();
$label->setTitle($title);
$label->setColor($color);
@@ -55,10 +57,12 @@ class LabelService {
}
public function delete($id) {
$this->permissionService->checkPermission($this->labelMapper, $id, Acl::PERMISSION_MANAGE);
return $this->labelMapper->delete($this->find($id));
}
public function update($id, $title, $color) {
$this->permissionService->checkPermission($this->labelMapper, $id, Acl::PERMISSION_MANAGE);
$label = $this->find($id);
$label->setTitle($title);
$label->setColor($color);