Disable ui elements if permissions are not sufficient

This commit is contained in:
Julius Haertl
2016-10-29 02:08:28 +02:00
parent fabeb8347d
commit 5d85771ac0
19 changed files with 197 additions and 67 deletions

View File

@@ -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

View File

@@ -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;
}
}