Veiko Aasa f892843ba5
syncthing: Create LDAP group name different from system group
When installing the syncthing app, create a LDAP group named "syncthing-access"
instead of "syncthing", because the app creates the "syncthing" system group
to run the syncthing daemon. Duplicate group names can cause some ambiguity as
described in #2008.

- Rename the existing "syncthing" LDAP and Django group to "syncthing-access".
- Update existing web shares to be accessible with new group name
- Functional tests: Add tests to check access to the syncthing site with a user
in the syncthing-access group and no group.
- Functional tests: Scroll to the edit button before clicking. Fixes some test
failures on a smaller browser window.

Fixes #2008

Tests performed on Debian stable and testing:

- Check that the existing "syncthing" group is renamed after upgrade:
1) Without patch applied, install syncthing, create a user in group "syncthing".
2) Apply patch, update Apache2 config file /etc/apache2/conf-available/syncthing-plinth.conf,
reload Apache2, restart plinth.
3) Check that the created user is now in the "syncthing-access" group and can
access /syncthing site.

- Check that the app upgrade succeeds when there are no users in the syncthing group.

- Create a web share accessible by the 'syncthing' group. Check that after the upgrade,
the share is accessible to a member of syncthing-access group.

- All the syncthing app tests pass.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-21 15:47:12 -08:00

54 lines
1.9 KiB
Gherkin

# SPDX-License-Identifier: AGPL-3.0-or-later
@apps @syncthing @sso
Feature: Syncthing File Synchronization
Run Syncthing File Synchronization server.
Background:
Given I'm a logged in user
Given the syncthing application is installed
Scenario: Enable syncthing application
Given the syncthing application is disabled
When I enable the syncthing application
Then the syncthing service should be running
Scenario: Add a syncthing folder
Given the syncthing application is enabled
And syncthing folder Test is not present
When I add a folder /tmp as syncthing folder Test
Then syncthing folder Test should be present
Scenario: Remove a syncthing folder
Given the syncthing application is enabled
And folder /tmp is present as syncthing folder Test
When I remove syncthing folder Test
Then syncthing folder Test should not be present
@backups
Scenario: Backup and restore syncthing
Given the syncthing application is enabled
And syncthing folder Test is not present
When I add a folder /tmp as syncthing folder Test
And I create a backup of the syncthing app data with name test_syncthing
And I remove syncthing folder Test
And I restore the syncthing app data backup with name test_syncthing
Then syncthing folder Test should be present
Scenario: User of syncthing-access group can access syncthing site
Given the syncthing application is enabled
And the user syncthinguser in group syncthing-access exists
When I'm logged in as the user syncthinguser
Then the syncthing site should be available
Scenario: User not of syncthing-access group can't access syncthing site
Given the syncthing application is enabled
And the user nogroupuser exists
When I'm logged in as the user nogroupuser
Then the syncthing site should not be available
Scenario: Disable syncthing application
Given the syncthing application is enabled
When I disable the syncthing application
Then the syncthing service should not be running