aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [tx-robot] updated from transifexNextcloud bot2019-03-1728-80/+280
|
* [tx-robot] updated from transifexNextcloud bot2019-03-1646-144/+230
|
* Merge pull request #14699 from nextcloud/backport/14693/stable15Morris Jobke2019-03-151-0/+4
|\ | | | | [stable15] dont try to restore a trashbin item to a readonly target
| * dont try to restore a trashbin item to a readonly targetRobin Appelman2019-03-141-0/+4
| | | | | | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* | Merge pull request #14700 from nextcloud/backport/14690/stable15Morris Jobke2019-03-151-1/+3
|\ \ | | | | | | [stable15] throw a proper error if rename fails in dav
| * | throw a proper error if rename fails in davRobin Appelman2019-03-141-1/+3
| |/ | | | | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* | Merge pull request #14697 from nextcloud/backport/14687/stable15Morris Jobke2019-03-151-0/+10
|\ \ | | | | | | [stable15] add an integration test that ensures deletion of LDAP users
| * | add an integration test that ensures deletion of LDAP usersArthur Schiwon2019-03-141-0/+10
| |/ | | | | | | Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
* | [tx-robot] updated from transifexNextcloud bot2019-03-15126-366/+368
| |
* | Merge pull request #14694 from nextcloud/backport/14684/stable15Roeland Jago Douma2019-03-151-1/+5
|\ \ | | | | | | [stable15] handle long etags from dav external storage
| * | handle long etags from dav external storageRobin Appelman2019-03-141-1/+5
| |/ | | | | | | | | | | 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>
* | Merge pull request #14672 from nextcloud/backport/14640/disable-failing-testsMorris Jobke2019-03-159-321/+332
|\ \ | |/ |/| [stable15] Disable fragile tests
| * Add time between SMB test runs and properly log full changesetMorris Jobke2019-03-141-1/+3
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing files app test - act 4Morris Jobke2019-03-141-6/+6
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing files app test - act 3Morris Jobke2019-03-141-20/+20
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing app management testMorris Jobke2019-03-141-16/+16
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing comments app test - act 2Morris Jobke2019-03-141-6/+6
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing files app test - act 2Morris Jobke2019-03-141-10/+10
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Wait up to 10 seconds for incoming changes from SMB notifierMorris Jobke2019-03-131-1/+8
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable fragile user acceptance testsMorris Jobke2019-03-131-18/+18
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing login testMorris Jobke2019-03-131-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * Disable failing comments testMorris Jobke2019-03-131-8/+8
| | | | | | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
| * Disable failing files app testMorris Jobke2019-03-131-114/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Disable failing apps management testMorris Jobke2019-03-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Disable failing files tag testMorris Jobke2019-03-131-75/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Disable failing federated sharing testsMorris Jobke2019-03-131-31/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Do not run fragile TrashbinTestMorris Jobke2019-03-131-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | [tx-robot] updated from transifexNextcloud bot2019-03-14612-6256/+7154
| |
* | Merge pull request #14677 from nextcloud/backport/14670/stable15Morris Jobke2019-03-141-3/+3
|\ \ | | | | | | [stable15] Use SCSS variables since CSS vars are not loaded on public pages
| * | Use SCSS variables since CSS vars are not loaded on public pagesJulius Härtl2019-03-141-3/+3
|/ / | | | | | | Signed-off-by: Julius Härtl <jus@bitgrid.net>
* | Merge pull request #14661 from nextcloud/backport/14656/stable15Roeland Jago Douma2019-03-131-1/+4
|\ \ | |/ |/| [stable15] prevent recursion when moving a file to the trashbin
| * prevent recursion when moving a file to the trashbinRobin Appelman2019-03-131-1/+4
|/ | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* Merge pull request #14658 from nextcloud/backport/14644/stable15Morris Jobke2019-03-131-0/+6
|\ | | | | [stable15] Remove sensitive SMB arguments from exception log
| * Remove sensitive SMB arguments from exception logMorris Jobke2019-03-131-0/+6
|/ | | | Signed-off-by: Morris Jobke <hey@morrisjobke.de>
* Merge pull request #14597 from nextcloud/backport/14425/stable15Morris Jobke2019-03-085-8/+70
|\ | | | | [stable15] Do not calculate folder size for parent that also needs proper scan, fixes #3524
| * Avoid calculating folder size for parent that needs scan.Ari Selseng2019-03-085-8/+70
| | | | | | | | Signed-off-by: Ari Selseng <ari@selseng.net>
* | Merge pull request #14591 from nextcloud/backport/14464/stable15Morris Jobke2019-03-087-80/+230
|\ \ | | | | | | [stable15] resolve user and groups in nested groups first before filtering the results
| * | remove unused use statementArthur Schiwon2019-03-071-1/+0
| | | | | | | | | | | | Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
| * | add missing config bits to integration testsArthur Schiwon2019-03-072-0/+7
| | | | | | | | | | | | Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
| * | with LDAP server set offline, config cannot be controlled via ocs anymoreArthur Schiwon2019-03-071-0/+8
| | | | | | | | | | | | Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
| * | fix nested group retrieval also for 2 other casesArthur Schiwon2019-03-076-85/+205
| | | | | | | | | | | | | | | | | | and also consolidate logic in one method Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
| * | Fixed unit test: groupsMatchFilter will not be called multiple times anymore.Roland Tapken2019-03-071-1/+1
| | | | | | | | | | | | Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
| * | Reduce queries to LDAP by caching nested groupsRoland Tapken2019-03-071-6/+18
| | | | | | | | | | | | | | | | | | | | | Nested groups are now cached in a CappedMemoryCache object to reduce queries to the LDAP backend. Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
| * | user_ldap: really resolve nested groupsRoland Tapken2019-03-071-14/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | user_ldap: Filter groups after nexted groupsRoland Tapken2019-03-071-2/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge pull request #14596 from nextcloud/backport/14587/stable15Morris Jobke2019-03-082-2/+0
|\ \ | | | | | | [stable15] Remove Google+ from Social Sharing Bundle
| * | Remove Google+ from Social Sharing Bundle (2)Marius Blüm2019-03-081-1/+0
| | | | | | | | | Signed-off-by: Marius Blüm <marius@lineone.io>
| * | Remove "socialsharing_googleplus" from Social Sharing BundleMarius Blüm2019-03-081-1/+0
| |/ | | | | Signed-off-by: Marius Blüm <marius@lineone.io>
* | Merge pull request #14534 from ↵Morris Jobke2019-03-086-0/+408
|\ \ | | | | | | | | | | | | nextcloud/backport/14502/add-activities-for-group-membership-changes [stable15] Add activities for group membership changes
| * | Fix unit testsJoas Schilling2019-03-073-8/+7
| | | | | | | | | | | | Signed-off-by: Joas Schilling <coding@schilljs.com>