11<?php
2+
23/**
34 * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
45 * SPDX-License-Identifier: AGPL-3.0-or-later
2021use OCP \Cache \CappedMemoryCache ;
2122use OCP \IConfig ;
2223use OCP \IGroupManager ;
23- use OCP \ILogger ;
2424use OCP \IUserManager ;
2525use OCP \Share \IManager ;
26+ use Psr \Log \LoggerInterface ;
2627
2728class PermissionService {
28-
29- /** @var CirclesService */
30- private $ circlesService ;
31- /** @var BoardMapper */
32- private $ boardMapper ;
33- /** @var AclMapper */
34- private $ aclMapper ;
35- /** @var ILogger */
36- private $ logger ;
37- /** @var IUserManager */
38- private $ userManager ;
39- /** @var IGroupManager */
40- private $ groupManager ;
41- /** @var IConfig */
42- private $ config ;
43- /** @var IManager */
44- private $ shareManager ;
45- /** @var string */
46- private $ userId ;
47- /** @var array */
48- private $ users = [];
29+ private array $ users = [];
4930
5031 private CappedMemoryCache $ boardCache ;
5132 private CappedMemoryCache $ permissionCache ;
5233
5334 public function __construct (
54- ILogger $ logger ,
55- CirclesService $ circlesService ,
56- AclMapper $ aclMapper ,
57- BoardMapper $ boardMapper ,
58- IUserManager $ userManager ,
59- IGroupManager $ groupManager ,
60- IManager $ shareManager ,
61- IConfig $ config ,
62- $ userId
35+ private LoggerInterface $ logger ,
36+ private CirclesService $ circlesService ,
37+ private AclMapper $ aclMapper ,
38+ private BoardMapper $ boardMapper ,
39+ private IUserManager $ userManager ,
40+ private IGroupManager $ groupManager ,
41+ private IManager $ shareManager ,
42+ private IConfig $ config ,
43+ private ? string $ userId
6344 ) {
64- $ this ->circlesService = $ circlesService ;
65- $ this ->aclMapper = $ aclMapper ;
66- $ this ->boardMapper = $ boardMapper ;
67- $ this ->logger = $ logger ;
68- $ this ->userManager = $ userManager ;
69- $ this ->groupManager = $ groupManager ;
70- $ this ->shareManager = $ shareManager ;
71- $ this ->config = $ config ;
72- $ this ->userId = $ userId ;
73-
7445 $ this ->boardCache = new CappedMemoryCache ();
7546 $ this ->permissionCache = new CappedMemoryCache ();
7647 }
7748
7849 /**
7950 * Get current user permissions for a board by id
8051 *
81- * @param $boardId
8252 * @return bool|array
8353 */
84- public function getPermissions ($ boardId , ?string $ userId = null ) {
54+ public function getPermissions (int $ boardId , ?string $ userId = null ) {
8555 if ($ userId === null ) {
8656 $ userId = $ this ->userId ;
8757 }
@@ -99,7 +69,7 @@ public function getPermissions($boardId, ?string $userId = null) {
9969 $ owner = false ;
10070 $ acls = [];
10171 }
102-
72+
10373 $ permissions = [
10474 Acl::PERMISSION_READ => $ owner || $ this ->userCan ($ acls , Acl::PERMISSION_READ , $ userId ),
10575 Acl::PERMISSION_EDIT => $ owner || $ this ->userCan ($ acls , Acl::PERMISSION_EDIT , $ userId ),
@@ -133,11 +103,10 @@ public function matchPermissions(Board $board) {
133103 /**
134104 * check permissions for replacing dark magic middleware
135105 *
136- * @param numeric $id
137106 * @throws NoPermissionException
138107 */
139108 public function checkPermission (?IPermissionMapper $ mapper , $ id , int $ permission , $ userId = null , bool $ allowDeletedCard = false ): bool {
140- $ boardId = $ id ;
109+ $ boardId = ( int ) $ id ;
141110 if ($ mapper instanceof IPermissionMapper && !($ mapper instanceof BoardMapper)) {
142111 $ boardId = $ mapper ->findBoardId ($ id );
143112 }
@@ -150,7 +119,7 @@ public function checkPermission(?IPermissionMapper $mapper, $id, int $permission
150119 if ($ permissions [$ permission ] === true ) {
151120
152121 if (!$ allowDeletedCard && $ mapper instanceof CardMapper) {
153- $ card = $ mapper ->find ($ id );
122+ $ card = $ mapper ->find (( int ) $ id );
154123 if ($ card ->getDeletedAt () > 0 ) {
155124 throw new NoPermissionException ('Card is deleted ' );
156125 }
0 commit comments