Disable ui elements if permissions are not sufficient
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Acl;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
|
||||
use OCP\IRequest;
|
||||
@@ -121,6 +122,33 @@ class BoardController extends Controller {
|
||||
return $this->boardService->labels($boardId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @RequireReadPermission
|
||||
* @param $boardId
|
||||
* @return array|bool
|
||||
* @internal param $userId
|
||||
*/
|
||||
public function getUserPermissions($boardId) {
|
||||
$board = $this->boardService->find($boardId);
|
||||
if($this->userId === $board->getOwner()) {
|
||||
return [
|
||||
'PERMISSION_READ' => true,
|
||||
'PERMISSION_EDIT' => true,
|
||||
'PERMISSION_MANAGE' => true,
|
||||
'PERMISSION_SHARE' => true,
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'PERMISSION_READ' => $this->boardService->getPermission($boardId, $this->userId, Acl::PERMISSION_READ),
|
||||
'PERMISSION_EDIT' => $this->boardService->getPermission($boardId, $this->userId, Acl::PERMISSION_EDIT),
|
||||
'PERMISSION_MANAGE' => $this->boardService->getPermission($boardId, $this->userId, Acl::PERMISSION_MANAGE),
|
||||
'PERMISSION_SHARE' => $this->boardService->getPermission($boardId, $this->userId, Acl::PERMISSION_SHARE),
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @RequireManagePermission
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Acl;
|
||||
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IRequest;
|
||||
use OCP\AppFramework\Controller;
|
||||
@@ -31,20 +33,23 @@ use OCP\IUserManager;
|
||||
|
||||
class ShareController extends Controller {
|
||||
|
||||
protected $userManager;
|
||||
protected $groupManager;
|
||||
private $userManager;
|
||||
private $groupManager;
|
||||
private $boardService;
|
||||
private $userId;
|
||||
|
||||
public function __construct($appName,
|
||||
IRequest $request,
|
||||
IUserManager $userManager,
|
||||
IGroupManager $groupManager,
|
||||
BoardService $boardService,
|
||||
$userId
|
||||
){
|
||||
parent::__construct($appName, $request);
|
||||
$this->userManager = $userManager;
|
||||
$this->groupManager = $groupManager;
|
||||
$this->userId = $userId;
|
||||
$this->boardService = $boardService;
|
||||
|
||||
}
|
||||
|
||||
@@ -81,4 +86,8 @@ class ShareController extends Controller {
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user