Signed-off-by: skjnldsv <skjnldsv@protonmail.com>pull/53671/head
parent
894f963804
commit
9806a9830c
@ -0,0 +1,83 @@ |
|||||||
|
/** |
||||||
|
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors |
||||||
|
* SPDX-License-Identifier: AGPL-3.0-or-later |
||||||
|
*/ |
||||||
|
import type { User } from '@nextcloud/cypress' |
||||||
|
import { createShare } from './FilesSharingUtils.ts' |
||||||
|
import { |
||||||
|
getActionEntryForFile, |
||||||
|
getRowForFile, |
||||||
|
} from '../files/FilesUtils.ts' |
||||||
|
|
||||||
|
describe('files_sharing: Download forbidden', { testIsolation: true }, () => { |
||||||
|
let user: User |
||||||
|
let sharee: User |
||||||
|
|
||||||
|
beforeEach(() => { |
||||||
|
cy.runOccCommand('config:app:set --value yes core shareapi_allow_view_without_download') |
||||||
|
cy.createRandomUser().then(($user) => { |
||||||
|
user = $user |
||||||
|
}) |
||||||
|
cy.createRandomUser().then(($user) => { |
||||||
|
sharee = $user |
||||||
|
}) |
||||||
|
}) |
||||||
|
|
||||||
|
after(() => { |
||||||
|
cy.runOccCommand('config:app:delete core shareapi_allow_view_without_download') |
||||||
|
}) |
||||||
|
|
||||||
|
it('cannot download a folder if disabled', () => { |
||||||
|
// share the folder
|
||||||
|
cy.mkdir(user, '/folder') |
||||||
|
cy.login(user) |
||||||
|
cy.visit('/apps/files') |
||||||
|
createShare('folder', sharee.userId, { read: true, download: false }) |
||||||
|
cy.logout() |
||||||
|
|
||||||
|
// Now for the sharee
|
||||||
|
cy.login(sharee) |
||||||
|
|
||||||
|
// visit shared files view
|
||||||
|
cy.visit('/apps/files') |
||||||
|
// see the shared folder
|
||||||
|
getRowForFile('folder').should('be.visible') |
||||||
|
getActionEntryForFile('folder', 'download').should('not.exist') |
||||||
|
|
||||||
|
// Disable view without download option
|
||||||
|
cy.runOccCommand('config:app:set --value no core shareapi_allow_view_without_download') |
||||||
|
|
||||||
|
// visit shared files view
|
||||||
|
cy.visit('/apps/files') |
||||||
|
// see the shared folder
|
||||||
|
getRowForFile('folder').should('be.visible') |
||||||
|
getActionEntryForFile('folder', 'download').should('not.exist') |
||||||
|
}) |
||||||
|
|
||||||
|
it('cannot download a file if disabled', () => { |
||||||
|
// share the folder
|
||||||
|
cy.uploadContent(user, new Blob([]), 'text/plain', '/file.txt') |
||||||
|
cy.login(user) |
||||||
|
cy.visit('/apps/files') |
||||||
|
createShare('file.txt', sharee.userId, { read: true, download: false }) |
||||||
|
cy.logout() |
||||||
|
|
||||||
|
// Now for the sharee
|
||||||
|
cy.login(sharee) |
||||||
|
|
||||||
|
// visit shared files view
|
||||||
|
cy.visit('/apps/files') |
||||||
|
// see the shared folder
|
||||||
|
getRowForFile('file.txt').should('be.visible') |
||||||
|
getActionEntryForFile('file.txt', 'download').should('not.exist') |
||||||
|
|
||||||
|
// Disable view without download option
|
||||||
|
cy.runOccCommand('config:app:set --value no core shareapi_allow_view_without_download') |
||||||
|
|
||||||
|
// visit shared files view
|
||||||
|
cy.visit('/apps/files') |
||||||
|
// see the shared folder
|
||||||
|
getRowForFile('file.txt').should('be.visible') |
||||||
|
getActionEntryForFile('file.txt', 'download').should('not.exist') |
||||||
|
}) |
||||||
|
}) |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue