Commit Graph

46226 Commits

Author SHA1 Message Date
Morris Jobke 5066a676a8
Merge pull request #14760 from nextcloud/backport/14691/stable14
[stable14] always allow moving mountpoints inside the same mountpoint
2019-03-20 16:41:16 +01:00
Robin Appelman d47106cdcc always allow moving mountpoints inside the same mountpoint
even if that mountpoint isn't normally a valid target for moving mounts into

Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-20 10:00:03 +00:00
Nextcloud bot 863e17d4e6
[tx-robot] updated from transifex 2019-03-20 01:13:05 +00:00
Nextcloud bot 31086f6e25
[tx-robot] updated from transifex 2019-03-19 01:13:02 +00:00
Nextcloud bot 0ab85c0977
[tx-robot] updated from transifex 2019-03-18 01:12:46 +00:00
Nextcloud bot f94dccbe8d
[tx-robot] updated from transifex 2019-03-17 01:13:41 +00:00
Nextcloud bot a3436d8b09
[tx-robot] updated from transifex 2019-03-16 01:12:52 +00:00
Morris Jobke 929c2e2513
Merge pull request #14701 from nextcloud/backport/14690/stable14
[stable14] throw a proper error if rename fails in dav
2019-03-15 10:53:33 +01:00
Nextcloud bot cf03367938
[tx-robot] updated from transifex 2019-03-15 01:15:38 +00:00
Morris Jobke 12e1c5c6b9
Merge pull request #14673 from nextcloud/backport/14640/disable-failing-tests-14
[stable14] Disable fragile tests
2019-03-15 00:24:45 +01:00
Robin Appelman 7bb97e713e throw a proper error if rename fails in dav
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-14 19:29:36 +00:00
Nextcloud bot 0afe723932
[tx-robot] updated from transifex 2019-03-14 16:08:54 +00:00
Morris Jobke 3899a70480
Add time between SMB test runs and properly log full changeset
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 16:43:30 +01:00
Morris Jobke 5d95e353ee
Disable failing files app test - act 4
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 16:31:57 +01:00
Morris Jobke b1b9aa3df9
Disable failing files app test - act 3
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 16:24:31 +01:00
Morris Jobke 9b25620b4c
Disable failing app management test
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 16:21:30 +01:00
Morris Jobke 4146d3c868
Disable failing comments app test - act 2
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 13:45:46 +01:00
Morris Jobke 10d0bbcd33
Disable failing files app test - act 2
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 13:44:28 +01:00
Morris Jobke 1de05264a6
Wait up to 10 seconds for incoming changes from SMB notifier
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:36 +01:00
Morris Jobke 74b4655696
Disable fragile user acceptance tests
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:34 +01:00
Morris Jobke f66b7f41c0
Disable failing login test
* tests/acceptance/features/login.feature:15
<details><summary>Show full log</summary>

```
  Scenario: log in with valid user and invalid password once fixed by admin # /drone/src/github.com/nextcloud/server/tests/acceptance/features/login.feature:15
    Given I act as John                                                     # ActorContext::iActAs()
    And I can not log in with user user0 and password 654231                # LoginPageContext::iCanNotLogInWithUserAndPassword()
    When I act as Jane                                                      # ActorContext::iActAs()
    And I am logged in as the admin                                         # LoginPageContext::iAmLoggedInAsTheAdmin()
    And I open the User settings                                            # SettingsMenuContext::iOpenTheUserSettings()
    And I set the password for user0 to 654321                              # UsersSettingsContext::iSetTheFieldForUserTo()
    And I act as John                                                       # ActorContext::iActAs()
    And I log in with user user0 and password 654321                        # LoginPageContext::iLogInWithUserAndPassword()
    Then I see that the current page is the Files app                       # FilesAppContext::iSeeThatTheCurrentPageIsTheFilesApp()
      Failed asserting that 'http://acceptance-login/index.php/login?user=user0' starts with "http://acceptance-login/index.php/apps/files/".

```
</details>

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:31 +01:00
Morris Jobke 788759d743
Disable failing comments test
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:27 +01:00
Morris Jobke b2eae64111
Disable failing files app test
Fails with:

 * tests/acceptance/features/app-files.feature:90
<details><summary>Show full log</summary>

```
  Scenario: show favorites                                            # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:90
    Given I am logged in                                              # LoginPageContext::iAmLoggedIn()
    And I mark "welcome.txt" as favorite                              # FileListContext::iMarkAsFavorite()
    When I open the "Favorites" section                               # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Favorites"                # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "welcome.txt" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
```
</details>

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:24 +01:00
Morris Jobke 3b2cab6e05
Disable failing apps management test
Fails with:

 * tests/acceptance/features/apps.feature:66
<details><summary>Show full log</summary>

```
  Scenario: Show section from app store                       # /drone/src/github.com/nextcloud/server/tests/acceptance/features/apps.feature:66
    Given I act as Jane                                       # ActorContext::iActAs()
    And I am logged in as the admin                           # LoginPageContext::iAmLoggedInAsTheAdmin()
    And I open the Apps management                            # SettingsMenuContext::iOpenTheAppsManagement()
    And I see that the current section is "Your apps"         # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    When I open the "Files" section                           # AppNavigationContext::iOpenTheSection()
      Files section item in App Navigation could not be found after 100 seconds (NoSuchElementException)
    Then I see that there some apps listed from the app store # AppsManagementContext::iSeeThatThereSomeAppsListedFromTheAppStore()
    And I see that the current section is "Files"             # AppNavigationContext::iSeeThatTheCurrentSectionIs()

```
</details>

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:21 +01:00
Morris Jobke 503e487b25
Disable failing files tag test
Fails with:

 * tests/acceptance/features/app-files-tags.feature:42
<details><summary>Show full log</summary>

```
  Scenario: add tags using the dropdown in the details view                                 # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files-tags.feature:42
    Given I am logged in as the admin                                                       # LoginPageContext::iAmLoggedInAsTheAdmin()
    And I visit the settings page                                                           # SettingsMenuContext::iVisitTheSettingsPage()
    And I open the "Tag management" section                                                 # AppNavigationContext::iOpenTheSection()
    And I see that the button to select tags is shown                                       # SettingsContext::iSeeThatTheButtonToSelectTagsIsShown()
    And I create the tag "tag1" in the settings                                             # SettingsContext::iCreateTheTagInTheSettings()
    And I create the tag "tag2" in the settings                                             # SettingsContext::iCreateTheTagInTheSettings()
    And I create the tag "tag3" in the settings                                             # SettingsContext::iCreateTheTagInTheSettings()
    And I create the tag "tag4" in the settings                                             # SettingsContext::iCreateTheTagInTheSettings()
    And I see that the dropdown for tags in the settings eventually contains the tag "tag1" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
    And I see that the dropdown for tags in the settings eventually contains the tag "tag2" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
    And I see that the dropdown for tags in the settings eventually contains the tag "tag3" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
    And I see that the dropdown for tags in the settings eventually contains the tag "tag4" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
    And I log out                                                                           # SettingsMenuContext::iLogOut()
    And I am logged in                                                                      # LoginPageContext::iAmLoggedIn()
    And I open the details view for "welcome.txt"                                           # FileListContext::iOpenTheDetailsViewFor()
    And I open the input field for tags in the details view                                 # FilesAppContext::iOpenTheInputFieldForTagsInTheDetailsView()
    When I check the tag "tag2" in the dropdown for tags in the details view                # FilesAppContext::iCheckTheTagInTheDropdownForTagsInTheDetailsView()
    And I check the tag "tag4" in the dropdown for tags in the details view                 # FilesAppContext::iCheckTheTagInTheDropdownForTagsInTheDetailsView()
    Then I see that the tag "tag2" in the dropdown for tags in the details view is checked  # FilesAppContext::iSeeThatTheTagInTheDropdownForTagsInTheDetailsViewIsChecked()
    And I see that the tag "tag4" in the dropdown for tags in the details view is checked   # FilesAppContext::iSeeThatTheTagInTheDropdownForTagsInTheDetailsViewIsChecked()
    And I see that the input field for tags in the details view contains the tag "tag2"     # FilesAppContext::iSeeThatTheInputFieldForTagsInTheDetailsViewContainsTheTag()
      Failed asserting that false is true.
    And I see that the input field for tags in the details view contains the tag "tag4"     # FilesAppContext::iSeeThatTheInputFieldForTagsInTheDetailsViewContainsTheTag()

```
</details>

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:18 +01:00
Morris Jobke 891b7e189b
Disable failing federated sharing tests
Fails with:

 * build/integration/federation_features/federated.feature:183
 * build/integration/federation_features/federated.feature:232
 * build/integration/federation_features/federated.feature:247
 * build/integration/federation_features/federated.feature:263
<details><summary>Show full log</summary>

```
  Scenario: Reshare a federated shared file                                                             # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:183
    Given Using server "REMOTE"                                                                         # FederationContext::usingServer()
    And user "user1" exists                                                                             # FederationContext::assureUserExists()
    And user "user2" exists                                                                             # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                            # FederationContext::usingServer()
    And user "user0" exists                                                                             # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/textfile0.txt" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                                    # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                           # FederationContext::usingServer()
    And As an "user1"                                                                                   # FederationContext::asAn()
    When creating a share with                                                                          # FederationContext::creatingShare()
      | path        | /textfile0 (2).txt |
      | shareType   | 0                  |
      | shareWith   | user2              |
      | permissions | 19                 |
    Then the OCS status code should be "100"                                                            # FederationContext::theOCSStatusCodeShouldBe()
      Failed asserting that SimpleXMLElement Object &000000007d8e0d3c00000000403fd08a (
          0 => '404'
      ) matches expected '100'.
    ...
{"message":"Can not find share with ID: 8"}

  Scenario: Overwrite a federated shared folder as recipient                                             # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:232
    Given Using server "REMOTE"                                                                          # FederationContext::usingServer()
    And user "user1" exists                                                                              # FederationContext::assureUserExists()
    And user "user2" exists                                                                              # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                             # FederationContext::usingServer()
    And user "user0" exists                                                                              # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/PARENT" with user "user1" from server "REMOTE"         # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                                     # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                            # FederationContext::usingServer()
    And As an "user1"                                                                                    # FederationContext::asAn()
    And User "user1" modifies text of "/textfile0.txt" with text "BLABLABLA"                             # FederationContext::modifyTextOfFile()
    When User "user1" uploads file "../../data/user1/files/textfile0.txt" to "/PARENT (2)/textfile0.txt" # FederationContext::userUploadsAFileTo()
      Client error: `PUT http://localhost:8180/remote.php/webdav/PARENT%20(2)/textfile0.txt` resulted in a `404 Not Found` response:
      <?xml version="1.0" encoding="utf-8"?>
      <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
        <s:exception>Sabre\DA (truncated...)
       (GuzzleHttp\Exception\ClientException)
    ...
{"message":"Can not find share with ID: 10"}

  Scenario: Overwrite a federated shared file as recipient using old chunking                           # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:247
    Given Using server "REMOTE"                                                                         # FederationContext::usingServer()
    And user "user1" exists                                                                             # FederationContext::assureUserExists()
    And user "user2" exists                                                                             # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                            # FederationContext::usingServer()
    And user "user0" exists                                                                             # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/textfile0.txt" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                                    # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                           # FederationContext::usingServer()
    And As an "user1"                                                                                   # FederationContext::asAn()
    And user "user1" uploads chunk file "1" of "3" with "AAAAA" to "/textfile0 (2).txt"                 # FederationContext::userUploadsChunkFileOfWithToWithChecksum()
      Client error: `PUT http://localhost:8180/remote.php/webdav/textfile0%20(2).txt-chunking-42-3-0` resulted in a `404 Not Found` response:
      <?xml version="1.0" encoding="utf-8"?>
      <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
        <s:exception>Sabre\DA (truncated...)
       (GuzzleHttp\Exception\ClientException)
    ...
{"message":"Can not find share with ID: 11"}

  Scenario: Overwrite a federated shared folder as recipient using old chunking                  # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:263
    Given Using server "REMOTE"                                                                  # FederationContext::usingServer()
    And user "user1" exists                                                                      # FederationContext::assureUserExists()
    And user "user2" exists                                                                      # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                     # FederationContext::usingServer()
    And user "user0" exists                                                                      # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/PARENT" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                             # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                    # FederationContext::usingServer()
    And As an "user1"                                                                            # FederationContext::asAn()
    And user "user1" uploads chunk file "1" of "3" with "AAAAA" to "/PARENT (2)/textfile0.txt"   # FederationContext::userUploadsChunkFileOfWithToWithChecksum()
      Client error: `PUT http://localhost:8180/remote.php/webdav/PARENT%20(2)/textfile0.txt-chunking-42-3-0` resulted in a `404 Not Found` response:
      <?xml version="1.0" encoding="utf-8"?>
      <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
        <s:exception>Sabre\DA (truncated...)
       (GuzzleHttp\Exception\ClientException)
    ...
{"message":"Can not find share with ID: 12"}

```
</details>

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:16 +01:00
Morris Jobke 5cdb4f97e3
Do not run fragile TrashbinTest
Fails with:

There was 1 failure:

1) TrashbinTest::testExpireOldFiles
Failed asserting that null is identical to 'file2.txt'.

/drone/src/github.com/nextcloud/server/apps/files_trashbin/tests/TrashbinTest.php:186

OR

1) TrashbinTest::testExpireOldFiles
Failed asserting that null is identical to 'file2.txt'.

/drone/src/github.com/nextcloud/server/apps/files_trashbin/tests/TrashbinTest.php:193

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 22:20:13 +01:00
Morris Jobke 33682c4e3b
Merge pull request #14659 from nextcloud/backport/14644/stable14
[stable14] Remove sensitive SMB arguments from exception log
2019-03-13 17:15:14 +01:00
Morris Jobke 9ddff52753 Remove sensitive SMB arguments from exception log
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 13:01:48 +00:00
Morris Jobke c9b87701d0
Merge pull request #14598 from nextcloud/backport/14425/stable14
[stable14] Do not calculate folder size for parent that also needs proper scan, fixes #3524
2019-03-08 17:32:16 +01:00
Morris Jobke 67aab99962
Merge pull request #14592 from nextcloud/backport/14464/stable14
[stable14] resolve user and groups in nested groups first before filtering the results
2019-03-08 17:31:30 +01:00
Morris Jobke 48b707bf35
Merge pull request #14595 from nextcloud/backport/14587/stable14
[stable14] Remove Google+ from Social Sharing Bundle
2019-03-08 17:30:31 +01:00
Morris Jobke f4a6e6fadb
Merge pull request #14600 from nextcloud/backport/14585/stable14
[stable14] Mention Open Cloud Mesh in Federated User Settings
2019-03-08 10:25:39 +01:00
Marius Blüm 9c8bcf9c62 Mention Open Cloud Mesh in Federated User Settings
Signed-off-by: Marius Blüm <marius@lineone.io>
2019-03-08 08:43:21 +00:00
Ari Selseng 3ff6465cdc Avoid calculating folder size for parent that needs scan.
Signed-off-by: Ari Selseng <ari@selseng.net>
2019-03-08 08:14:33 +00:00
Marius Blüm b8470f30bd Remove Google+ from Social Sharing Bundle (2)
Signed-off-by: Marius Blüm <marius@lineone.io>
2019-03-08 08:06:52 +00:00
Marius Blüm 2f179cb327 Remove "socialsharing_googleplus" from Social Sharing Bundle
Signed-off-by: Marius Blüm <marius@lineone.io>
2019-03-08 08:06:51 +00:00
Arthur Schiwon 7fa490fde4
remove unused use statement
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-07 22:47:40 +01:00
Arthur Schiwon 0867fa6623
add missing config bits to integration tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-07 22:47:30 +01:00
Arthur Schiwon 12e5fe00d9
with LDAP server set offline, config cannot be controlled via ocs anymore
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-07 22:47:14 +01:00
Arthur Schiwon a23ef68ffe
fix nested group retrieval also for 2 other cases
and also consolidate logic in one method

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-07 22:47:06 +01:00
Roland Tapken a202fc808d
Fixed unit test: groupsMatchFilter will not be called multiple times anymore.
Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
2019-03-07 22:46:20 +01:00
Roland Tapken f88a09140d
Reduce queries to LDAP by caching nested groups
Nested groups are now cached in a CappedMemoryCache object to reduce
queries to the LDAP backend.

Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
2019-03-07 22:46:14 +01:00
Roland Tapken 177901d079
user_ldap: really resolve nested groups
The previous patch fixed the problem only for one level of indirection
because groupsMatchFilter() had been applied on each recursive call (and
thus there would be no second level if the first level fails the check).

This new implementation replaces the recursive call with a stack that
iterates all nested groups before filtering with groupsMatchFilter().

Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
2019-03-07 22:46:08 +01:00
Roland Tapken 8f57824707
user_ldap: Filter groups after nexted groups
Currently groupsMatchFilter is called before nested groups are resolved.
This basicly breaks this feature since it is not possible to inherit
membership in a group from another group.

Minimal example:

  Group filter: (&(objectClass=group),(cn=nextcloud))
  Nested groups: enabled

  cn=nextcloud,ou=Nextcloud,ou=groups,dn=company,dn=local
    objectClass: group

  cn=IT,ou=groups,dn=company,dn=local
    objectClass: group
    memberOf: cn=nextcloud,ou=Nextcloud,ou=groups,dn=company,dn=local

  cn=John Doe,ou=users,dn=company,dn=local
    objectClass: person
    memberOf: cn=IT,ou=groups,dn=company,dn=local

Since 'cn=IT,ou=groups,dn=company,dn=local' doesn't match the group
filter, John wouldn't be a member of group 'nextcloud'.

This patch fixes this by filtering the groups after all nested groups
have been collected. If nested groups is disabled the result will be the
same as without this patch.

Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
2019-03-07 22:45:58 +01:00
Roeland Jago Douma 8ca4bc7a9e
Merge pull request #14547 from nextcloud/backport/14373/stable14
[stable14] Add test for updated CA bundle
2019-03-05 19:52:48 +01:00
Daniel Kesselberg a68c72ac6e DRONE_BRANCH is the target branch. DRONE_COMMIT_REFSPEC should work.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2019-03-05 16:15:27 +00:00
Morris Jobke e79907e6f6 Add test for updated CA bundle
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-05 16:15:27 +00:00
Morris Jobke 0532077969
Merge pull request #14543 from nextcloud/backport/14451/stable14
[stable14] Check if password can be changed for the users backend in OCS api
2019-03-05 16:26:14 +01:00
Morris Jobke 45af4e6ea3
Merge pull request #14417 from nextcloud/backport/14343/stable14
[stable14] Parse multiple navigation items
2019-03-05 15:06:23 +01:00