Commit graph

48830 commits

Author SHA1 Message Date
Robin Appelman
3ca1e90044
allow renaming the root of a movable mount even if the parent folder is readonly
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-14 15:27:25 +01:00
Arthur Schiwon
a692f28320
add an integration test that ensures deletion of LDAP users
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-14 15:21:52 +01:00
Joas Schilling
5e5c5a16dc
Add correct method for hardcoded /f/{fileid}
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-14 15:13:56 +01:00
Robin Appelman
631ae17dce
handle long etags from dav external storage
we can only store etags up to 40 characters long in the database, so when we get an etag that's longer we simply hash it to bring down the length

Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-14 14:46:39 +01:00
Robin Appelman
bfd539017f
add casting to string for postgresql query builder
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-14 14:19:10 +01:00
Marius Blüm
6ff79d4908
Using SQLite should sound more scary 😈
- According to our administrator manual we should mention limitation to minimal and development/testing instances

Signed-off-by: Marius Blüm <marius@lineone.io>
2019-03-14 13:56:09 +01:00
Morris Jobke
caea04d28e
Disable failing comments app test - act 2
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 13:46:10 +01:00
Morris Jobke
43e9006481
Disable failing files app test - act 2
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 13:46:06 +01:00
Morris Jobke
5b4155bd12
Make appstore app:enable test more robust by using only shipped apps
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 13:39:20 +01:00
Morris Jobke
b7f0091e0f
Add time between SMB test runs and properly log full changeset
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 13:34:17 +01:00
Joas Schilling
762a8bb3d9
Merge pull request #14652 from nextcloud/fix/invalid_usernames
Do not allow invalid users to be created
2019-03-14 12:05:34 +01:00
Morris Jobke
f18d989720
Fix translation sync for accessibiltiy
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-14 11:57:02 +01:00
Roeland Jago Douma
969fc45032
Do not allow invalid users to be created
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-03-14 10:22:31 +01:00
Morris Jobke
6331f174d3
Merge pull request #12119 from nextcloud/add_circle_to_caldav_and_filepanel-15
Add Circle to Caldav and Filepanel
2019-03-14 10:11:31 +01:00
Julius Härtl
804a15115d
Merge pull request #14670 from nextcloud/bugfix/noid/theming-css-vars
Use SCSS variables since CSS vars are not loaded on public pages
2019-03-14 08:51:21 +01:00
Morris Jobke
de8e02628e
Improve code
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 23:01:47 +01:00
Julius Härtl
e2bc47d6f5
Use SCSS variables since CSS vars are not loaded on public pages
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-13 22:09:36 +01:00
Roeland Jago Douma
ac10ff01cf
Merge pull request #14663 from nextcloud/remove_userExternal_example
remove user_external example from config.sample.php
2019-03-13 21:45:10 +01:00
Morris Jobke
6c55e5f42d
Merge pull request #14640 from nextcloud/techdebt/noid/disable-failing-tests
Disable fragile tests
2019-03-13 21:29:59 +01:00
Jonas Sulzer
fd83661e60
👌 IMPROVE: remove user_external example from config.sample.php
Signed-off-by: Jonas Sulzer <jonas@violoncello.ch>
2019-03-13 18:14:03 +01:00
Morris Jobke
ab29028da7
Wait up to 10 seconds for incoming changes from SMB notifier
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 18:01:24 +01:00
Morris Jobke
38dd3da92b
Disable fragile user acceptance tests
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 18:01:24 +01:00
Morris Jobke
a5e42f95c6
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 18:01:24 +01:00
Morris Jobke
18009c82e4
Disable failing comments test
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 18:01:24 +01:00
Morris Jobke
247ade00e7
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 18:01:24 +01:00
Morris Jobke
d98463f1b2
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 18:01:24 +01:00
Morris Jobke
982081f1ab
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 18:01:24 +01:00
Morris Jobke
f6a12864a5
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 18:01:24 +01:00
Morris Jobke
000a92bcde
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 18:01:24 +01:00
Morris Jobke
cdd84d6631
Merge pull request #14656 from nextcloud/trash-prevent-recursion
prevent recursion when moving a file to the trashbin
2019-03-13 17:16:48 +01:00
Robin Appelman
6a47f924fc
make assemblystream seekable
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-13 16:32:18 +01:00
Roeland Jago Douma
c5c2192061
Merge pull request #14644 from nextcloud/fix/noid/remove-sensitive-smb-values
Remove sensitive SMB arguments from exception log
2019-03-13 14:00:02 +01:00
Robin Appelman
0d41138c6e
prevent recursion when moving a file to the trashbin
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-13 11:42:01 +01:00
Morris Jobke
389c2095a6
Use dependency injection for app manager
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 00:42:39 +01:00
Vinicius Cubas Brand
9bb13fb05f
Created infrastructure to show circles' shared files
There is a proposal to allow users to filter files shared to circles. This commit is needed to provide the infrastucture for it.

Issue: https://github.com/nextcloud/circles/issues/137

Changes to comply to https://github.com/coletivoEITA/circles/pull/2

Polishing: get files shared to circles in caldav

Signed-off-by: Vinicius Cubas Brand <viniciuscb@gmail.com>
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 00:31:38 +01:00
Morris Jobke
f0c85a0f5f
Merge pull request #6512 from coletivoEITA/add_circles_sharing_to_caldav
Change CALDAV to allow calendars be shared with circles.
2019-03-13 00:06:46 +01:00
Morris Jobke
5cc5107cba
Fix PHPUnit
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-12 18:41:37 +01:00
Morris Jobke
c8aad3db81
Fix PHPUnit
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-12 18:27:59 +01:00
Morris Jobke
e8739e1392
Remove sensitive SMB arguments from exception log
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-12 15:51:38 +01:00
Robin Appelman
ed0e3d305e
remove dangling space
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-12 15:30:03 +01:00
Robin Appelman
1bfbfb2c5b
fix database select styling in setup page
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-12 15:25:55 +01:00
Joas Schilling
a0792137cf
Rename the variable aswell
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-12 13:48:05 +01:00
Morris Jobke
33c34ddafa
Merge pull request #14626 from nextcloud/bugfix/14621/make-sure-urlparams-are-correctly-injected-in-global-routes
Make sure urlparams are correctly injected in global routes
2019-03-12 12:46:54 +01:00
Jan-Christoph Borchardt
9306caec3e
Add border around previews in grid view
Signed-off-by: Jan-Christoph Borchardt <hey@jancborchardt.net>
2019-03-12 10:44:51 +01:00
Morris Jobke
aff13a2072
Merge pull request #14586 from nextcloud/hint-user-docs-federation
Add hint to user documentation (Federation)
2019-03-11 20:03:29 +01:00
Joas Schilling
c9026fc75c
Fix plural rule detection for languages
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-11 15:19:23 +01:00
Morris Jobke
1832537571
Merge pull request #14623 from nextcloud/fix/noid/login-page-wrong-password
Fix acceptance tests for wrong password message due to changed message
2019-03-11 12:49:05 +01:00
Morris Jobke
89ed84e8b6
Fix display of i in personal settings
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-11 12:47:14 +01:00
Marius Blüm
ab488a49d0
Add hint to user documentation (Federation)
Signed-off-by: Marius Blüm <marius@lineone.io>
2019-03-11 12:47:14 +01:00
Joas Schilling
a3c9e5b11b
Add a message about disabled global routes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-11 12:43:39 +01:00