Skip to content

Commit ed10b27

Browse files
committed
fix(api): enforce submission visibility based on user permissions
fix(submit): adjust conditional rendering for submission state Signed-off-by: Christian Hartmann <chris-hartmann@gmx.de>
1 parent b1f6cef commit ed10b27

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

lib/Controller/ApiController.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,8 @@ public function getSubmissions(int $formId, ?string $query = null, ?int $limit =
12651265
#[ApiRoute(verb: 'GET', url: '/api/v3/forms/{formId}/submissions/{submissionId}')]
12661266
public function getSubmission(int $formId, int $submissionId): DataResponse|DataDownloadResponse {
12671267
$form = $this->formsService->getFormIfAllowed($formId, Constants::PERMISSION_RESULTS);
1268+
$permissions = $this->formsService->getPermissions($form);
1269+
$canSeeAllSubmissions = in_array(Constants::PERMISSION_RESULTS, $permissions, true);
12681270

12691271
$submission = $this->submissionService->getSubmission($submissionId);
12701272
if ($submission === null) {
@@ -1275,6 +1277,10 @@ public function getSubmission(int $formId, int $submissionId): DataResponse|Data
12751277
throw new OCSBadRequestException('Submission doesn\'t belong to given form');
12761278
}
12771279

1280+
if (!$canSeeAllSubmissions && $submission['userId'] !== $this->currentUser->getUID()) {
1281+
throw new OCSForbiddenException('User is not allowed to see submission');
1282+
}
1283+
12781284
// Append Display Names
12791285
if (substr($submission['userId'], 0, 10) === 'anon-user-') {
12801286
// Anonymous User

src/views/Submit.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
</template>
5959
</NcEmptyContent>
6060
<NcEmptyContent
61-
v-else-if="success || (!form.canSubmit && !isMaxSubmissionsReached)"
61+
v-else-if="success || ((!form.canSubmit && !isMaxSubmissionsReached) && !submissionId)"
6262
class="forms-emptycontent"
6363
:name="
6464
form.submissionMessage

0 commit comments

Comments
 (0)