feat(Applications): set default navigation mode to visible for all

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Arthur Schiwon
2024-07-29 18:08:27 +02:00
parent 467c8d7a33
commit a39289d588
4 changed files with 37 additions and 9 deletions

View File

@ -524,7 +524,8 @@ class Api1Controller extends ApiController {
* @param bool $permissionUpdate Permission if receiver can update data * @param bool $permissionUpdate Permission if receiver can update data
* @param bool $permissionDelete Permission if receiver can delete data * @param bool $permissionDelete Permission if receiver can delete data
* @param bool $permissionManage Permission if receiver can manage node * @param bool $permissionManage Permission if receiver can manage node
* @param int $displayMode context shares only, whether it should appear in nav bar. 0: no, 1: recipients, 2: all * @param int $displayMode context shares only, whether it should appear in nav bar. 0: no, 1: recipients, 2: all (default). Cf. Application::NAV_ENTRY_MODE_*.
* @psalm-param int<0, 2> $displayMode
* @return DataResponse<Http::STATUS_OK, TablesShare, array{}>|DataResponse<Http::STATUS_FORBIDDEN|Http::STATUS_INTERNAL_SERVER_ERROR|Http::STATUS_NOT_FOUND, array{message: string}, array{}> * @return DataResponse<Http::STATUS_OK, TablesShare, array{}>|DataResponse<Http::STATUS_FORBIDDEN|Http::STATUS_INTERNAL_SERVER_ERROR|Http::STATUS_NOT_FOUND, array{message: string}, array{}>
* *
* 200: Share returned * 200: Share returned
@ -545,10 +546,22 @@ class Api1Controller extends ApiController {
bool $permissionUpdate = false, bool $permissionUpdate = false,
bool $permissionDelete = false, bool $permissionDelete = false,
bool $permissionManage = false, bool $permissionManage = false,
int $displayMode = 0, int $displayMode = 2,
): DataResponse { ): DataResponse {
try { try {
return new DataResponse($this->shareService->create($nodeId, $nodeType, $receiver, $receiverType, $permissionRead, $permissionCreate, $permissionUpdate, $permissionDelete, $permissionManage, $displayMode)->jsonSerialize()); return new DataResponse(
$this->shareService->create(
$nodeId,
$nodeType,
$receiver,
$receiverType,
$permissionRead,
$permissionCreate,
$permissionUpdate,
$permissionDelete,
$permissionManage,
$displayMode
)->jsonSerialize());
} catch (PermissionError $e) { } catch (PermissionError $e) {
$this->logger->warning('A permission error occurred: '.$e->getMessage(), ['exception' => $e]); $this->logger->warning('A permission error occurred: '.$e->getMessage(), ['exception' => $e]);
$message = ['message' => $e->getMessage()]; $message = ['message' => $e->getMessage()];
@ -1431,7 +1444,20 @@ class Api1Controller extends ApiController {
#[RequirePermission(permission: Application::PERMISSION_MANAGE, type: Application::NODE_TYPE_TABLE, idParam: 'tableId')] #[RequirePermission(permission: Application::PERMISSION_MANAGE, type: Application::NODE_TYPE_TABLE, idParam: 'tableId')]
public function createTableShare(int $tableId, string $receiver, string $receiverType, bool $permissionRead, bool $permissionCreate, bool $permissionUpdate, bool $permissionDelete, bool $permissionManage): DataResponse { public function createTableShare(int $tableId, string $receiver, string $receiverType, bool $permissionRead, bool $permissionCreate, bool $permissionUpdate, bool $permissionDelete, bool $permissionManage): DataResponse {
try { try {
return new DataResponse($this->shareService->create($tableId, 'table', $receiver, $receiverType, $permissionRead, $permissionCreate, $permissionUpdate, $permissionDelete, $permissionManage, 0)->jsonSerialize()); return new DataResponse(
$this->shareService->create(
$tableId,
'table',
$receiver,
$receiverType,
$permissionRead,
$permissionCreate,
$permissionUpdate,
$permissionDelete,
$permissionManage,
Application::NAV_ENTRY_MODE_ALL
)->jsonSerialize()
);
} catch (PermissionError $e) { } catch (PermissionError $e) {
$this->logger->warning('A permission error occurred: '.$e->getMessage(), ['exception' => $e]); $this->logger->warning('A permission error occurred: '.$e->getMessage(), ['exception' => $e]);
$message = ['message' => $e->getMessage()]; $message = ['message' => $e->getMessage()];

View File

@ -73,7 +73,7 @@ class ShareController extends Controller {
bool $permissionUpdate = false, bool $permissionUpdate = false,
bool $permissionDelete = false, bool $permissionDelete = false,
bool $permissionManage = false, bool $permissionManage = false,
int $displayMode = 0, int $displayMode = Application::NAV_ENTRY_MODE_ALL,
): DataResponse { ): DataResponse {
return $this->handleError(function () use ($nodeId, $nodeType, $receiver, $receiverType, $permissionRead, $permissionCreate, $permissionUpdate, $permissionDelete, $permissionManage, $displayMode) { return $this->handleError(function () use ($nodeId, $nodeType, $receiver, $receiverType, $permissionRead, $permissionCreate, $permissionUpdate, $permissionDelete, $permissionManage, $displayMode) {
return $this->service->create($nodeId, $nodeType, $receiver, $receiverType, $permissionRead, $permissionCreate, $permissionUpdate, $permissionDelete, $permissionManage, $displayMode); return $this->service->create($nodeId, $nodeType, $receiver, $receiverType, $permissionRead, $permissionCreate, $permissionUpdate, $permissionDelete, $permissionManage, $displayMode);

View File

@ -2538,8 +2538,10 @@
"displayMode": { "displayMode": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"default": 0, "default": 2,
"description": "context shares only, whether it should appear in nav bar. 0: no, 1: recipients, 2: all" "description": "context shares only, whether it should appear in nav bar. 0: no, 1: recipients, 2: all (default). Cf. Application::NAV_ENTRY_MODE_*.",
"minimum": 0,
"maximum": 2
} }
} }
} }

View File

@ -1937,8 +1937,8 @@ export interface operations {
readonly permissionManage?: boolean; readonly permissionManage?: boolean;
/** /**
* Format: int64 * Format: int64
* @description context shares only, whether it should appear in nav bar. 0: no, 1: recipients, 2: all * @description context shares only, whether it should appear in nav bar. 0: no, 1: recipients, 2: all (default). Cf. Application::NAV_ENTRY_MODE_*.
* @default 0 * @default 2
*/ */
readonly displayMode?: number; readonly displayMode?: number;
}; };