Commit Graph

50632 Commits

Author SHA1 Message Date
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
Evilham de648f6a3e [app:files] Use current directory for hashing.
This fixes collisions that were causing uploads to break in a very
terrible way.

Kudos to @kesselb for finding the problematic place and to
@hottwister for the proposed solution.

Fixes #10527.
2019-03-13 22:21:32 +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
Joas Schilling 4e8b033281
Make sure urlParams are correctly injected in global routes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-11 12:30:44 +01:00
Morris Jobke 065690dcf5
Merge pull request #14620 from nextcloud/fix/noid/copy-paste-typo
Fix unneeded doc link to unrelated resource
2019-03-11 12:01:27 +01:00
Morris Jobke 77cf702220
Fix acceptance tests for wrong password message due to changed message
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-11 11:54:38 +01:00
Morris Jobke 25d700ef30
Fix unneeded doc link to unrelated resource
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-11 11:00:21 +01:00