Compare commits

..

1233 Commits

Author SHA1 Message Date
Nextcloud bot cd4a538fa4
[tx-robot] updated from transifex 2021-06-04 02:28:37 +00:00
Nextcloud bot 15d6770393
[tx-robot] updated from transifex 2021-06-03 02:29:10 +00:00
Nextcloud bot 458feef3d4
[tx-robot] updated from transifex 2021-06-02 02:28:52 +00:00
John Molakvoæ 8246290b34
Merge pull request #27319 from nextcloud/backport/27099/stable20
[stable20] Make user:report command scale
2021-06-01 14:10:38 +02:00
Joas Schilling e7adbbf80d Make user:report command scale
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-01 08:38:16 +00:00
Nextcloud bot 438a4429e9
[tx-robot] updated from transifex 2021-06-01 02:28:44 +00:00
Nextcloud bot 7f5e9ff7fc
[tx-robot] updated from transifex 2021-05-31 02:35:47 +00:00
Nextcloud bot d63a757092
[tx-robot] updated from transifex 2021-05-30 02:25:27 +00:00
Nextcloud bot b7fbab8726
[tx-robot] updated from transifex 2021-05-28 02:27:40 +00:00
Nextcloud bot 2ded52519b
[tx-robot] updated from transifex 2021-05-27 02:28:14 +00:00
Nextcloud bot 5fd1b719d7
[tx-robot] updated from transifex 2021-05-26 02:28:51 +00:00
Nextcloud bot c87c3710f2
[tx-robot] updated from transifex 2021-05-25 02:27:40 +00:00
Nextcloud bot 8be87861a2
[tx-robot] updated from transifex 2021-05-24 02:26:51 +00:00
Nextcloud bot 694454ca0d
[tx-robot] updated from transifex 2021-05-23 02:26:09 +00:00
Nextcloud bot 7ffae790ef
[tx-robot] updated from transifex 2021-05-22 02:27:38 +00:00
Nextcloud bot 3a9c6eef44
[tx-robot] updated from transifex 2021-05-21 02:28:17 +00:00
Nextcloud bot 2f8c2c335a
[tx-robot] updated from transifex 2021-05-20 02:28:18 +00:00
Roeland Jago Douma a8d144a35b
Merge pull request #27014 from nextcloud/backport/27000/stable20
[stable20] Harden apptoken check
2021-05-19 08:40:37 +02:00
Nextcloud bot 99788d3d06
[tx-robot] updated from transifex 2021-05-19 02:31:56 +00:00
Roeland Jago Douma 998bcd92c6 Harden apptoken check
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-18 13:10:51 +00:00
dependabot-preview[bot] 2bc106ae13
Merge pull request #26900 from nextcloud/dependabot/npm_and_yarn/stable20/handlebars-4.7.7 2021-05-18 08:16:53 +00:00
Morris Jobke da32428c3e
Merge pull request #26954 from nextcloud/backport/26879/stable20
[stable20]  Don't break OCC if an app is breaking in it's Application class
2021-05-18 09:32:22 +02:00
dependabot-preview[bot] 4122686afa [Security] Bump handlebars from 4.7.6 to 4.7.7
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-05-18 06:53:34 +00:00
Morris Jobke 247c576533
Merge pull request #27001 from nextcloud/backport/26946/stable20
[stable20] Respect default share permissions for federated reshares
2021-05-18 08:27:07 +02:00
Roeland Jago Douma 00a0b5550d Respect default share permissions for federated reshares
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-17 10:06:12 +00:00
Nextcloud bot 18dd1177c7
[tx-robot] updated from transifex 2021-05-17 02:26:57 +00:00
Nextcloud bot f80b1fe0cb
[tx-robot] updated from transifex 2021-05-16 02:27:10 +00:00
Nextcloud bot 39fa997f80
[tx-robot] updated from transifex 2021-05-15 02:29:40 +00:00
kesselb 3eff603dc5
Merge pull request #26965 from nextcloud/backport/26292/stable20
[stable20] ignore readonly flag for directories
2021-05-14 22:29:18 +02:00
Roeland Jago Douma 7d3bd5445c
Merge pull request #26971 from nextcloud/backport/26958/stable20
[stable20] Throttle MountPublicLinkController when share is not found
2021-05-14 10:55:33 +02:00
Nextcloud bot 18c62accf8
[tx-robot] updated from transifex 2021-05-14 02:25:22 +00:00
Roeland Jago Douma 1bba950e5c Throttle MountPublicLinkController when share is not found
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-12 19:28:41 +00:00
Robin Appelman 23df35feb0 ignore readonly flag for directories
see http://support.microsoft.com/kb/326549

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-12 16:26:32 +00:00
Roeland Jago Douma 57e1ee8d8f
Merge pull request #26956 from nextcloud/backport/26945/stable20
[stable20] Add bruteforce protection to the shareinfo endpoint
2021-05-12 14:13:00 +02:00
Roeland Jago Douma 94be523a40 Add bruteforce protection to the shareinfo endpoint
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-12 08:11:34 +00:00
Joas Schilling a0e0627de0 Don't break OCC if an app is breaking in it's Application class
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-05-12 07:42:04 +00:00
Nextcloud bot b8cb6a8e84
[tx-robot] updated from transifex 2021-05-12 02:26:38 +00:00
dependabot-preview[bot] 7dd0a2c147
Merge pull request #26909 from nextcloud/dependabot/npm_and_yarn/stable20/lodash-4.17.21 2021-05-11 09:21:11 +00:00
dependabot-preview[bot] d945d6a063 [Security] Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-05-11 10:47:07 +02:00
Nextcloud bot e5f74851fa
[tx-robot] updated from transifex 2021-05-11 02:26:21 +00:00
Nextcloud bot 6fbdbfa971
[tx-robot] updated from transifex 2021-05-10 02:32:02 +00:00
Nextcloud bot 6a63c535a0
[tx-robot] updated from transifex 2021-05-09 02:25:37 +00:00
Nextcloud bot b436c3a8df
[tx-robot] updated from transifex 2021-05-08 02:25:13 +00:00
dependabot-preview[bot] 1954fb0f2f
Merge pull request #26920 from nextcloud/dependabot/npm_and_yarn/stable20/hosted-git-info-2.8.9 2021-05-07 20:34:04 +00:00
dependabot-preview[bot] 8f08f0115a
[Security] Bump hosted-git-info from 2.8.8 to 2.8.9
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. **This update includes a security fix.**
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-05-07 19:47:37 +00:00
Nextcloud bot c312a62e86
[tx-robot] updated from transifex 2021-05-07 02:27:08 +00:00
Morris Jobke 6e53742255
Merge pull request #26894 from nextcloud/version/20.0.10
20.0.10
2021-05-06 14:09:54 +02:00
Morris Jobke 96e2a9f20d
20.0.10
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-05-06 13:01:01 +02:00
Nextcloud bot edae9eb9a4
[tx-robot] updated from transifex 2021-05-06 02:25:54 +00:00
Morris Jobke 14b7313042
Merge pull request #26882 from nextcloud/backport/26869/stable20
[stable20] l10n: Spelling unification
2021-05-05 13:43:33 +02:00
Valdnet b893b5563a Fix test
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2021-05-05 11:02:10 +00:00
Valdnet 849130c011 l10n: Spelling unification
Spelling unification in Transifex.

Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2021-05-05 11:02:10 +00:00
Nextcloud bot 83ec0bd360
[tx-robot] updated from transifex 2021-05-04 02:26:38 +00:00
blizzz eca4717ca1
Merge pull request #26862 from nextcloud/backport/26149/stable20
[stable20] Only perform login check during ownership transfer for encryption
2021-05-03 15:02:16 +02:00
Christoph Wurst a82d72e5ce Only perform login check during ownership transfer for encryption
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-05-03 11:37:59 +00:00
Nextcloud bot cb58b11f19
[tx-robot] updated from transifex 2021-05-03 02:25:55 +00:00
Nextcloud bot 0ca700e916
[tx-robot] updated from transifex 2021-05-02 02:25:43 +00:00
Nextcloud bot a27a241d25
[tx-robot] updated from transifex 2021-05-01 02:26:54 +00:00
Roeland Jago Douma f2f15a7b42
Merge pull request #26836 from nextcloud/version/20.0.10/final
20.0.10 RC1
2021-04-30 12:47:19 +02:00
Roeland Jago Douma 12ed9c5cda Update bundle
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-30 12:17:11 +02:00
Roeland Jago Douma 31b6443091
Merge pull request #26542 from nextcloud/stable20-26433
[stable20] Limit size of properties to 2048 characters
2021-04-30 09:27:45 +02:00
Nextcloud bot 3b1ac61331
[tx-robot] updated from transifex 2021-04-30 02:28:11 +00:00
Roeland Jago Douma f8985dcd7c 20.0.10 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-29 20:56:12 +02:00
Roeland Jago Douma f902adf188
Merge pull request #25973 from nextcloud/backport/25417/stable20-fix-account-data-visibility-after-disabling-public-addressbook-upload
[stable20] Fix account data visibility after disabling public addressbook upload
2021-04-29 20:52:38 +02:00
Lukas Reschke 4ec4a99869 Limit size of properties to 2048 characters
It is unreasonable to expect that one of these fields would be longer
than 2048 characters. Whilst some have definitely lower limits (such as
for phone numbers or domain names), a upper bound as sanity check makes
sense.

Backport of https://github.com/nextcloud/server/pull/26433

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-04-29 20:45:11 +02:00
Morris Jobke c8374de7eb
Merge pull request #26824 from nextcloud/backport/26811/stable20
[stable20] Do not try to contact lookup server if not needed
2021-04-29 15:50:18 +02:00
Roeland Jago Douma 02001520e0 Do not try to contact lookup server if not needed
In some cases (for example you never send data to the lookup server)
there is no need for this job to even try.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-29 09:23:02 +02:00
Nextcloud bot eb93e0dd29
[tx-robot] updated from transifex 2021-04-29 02:26:50 +00:00
Julius Härtl 82b93f1cf0
Merge pull request #26809 from nextcloud/backport/26647/stable20
[stable20] Fail when creating new files with an empty path
2021-04-28 15:56:49 -01:00
Julius Härtl 4f8c89f8a5 Fail when creating new files with an empty path
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-28 10:06:03 +00:00
Julius Härtl b5574db974
Merge pull request #26798 from nextcloud/backport/26785/stable20
[stable20] LDAP: do not bother to search after the last page
2021-04-28 08:46:08 -01:00
Joas Schilling f8f32d79d7
Merge pull request #26788 from nextcloud/backport/26718/stable20
[stable20] Fix ratelimit template
2021-04-28 09:54:14 +02:00
Nextcloud bot c5ac15925b
[tx-robot] updated from transifex 2021-04-28 02:26:07 +00:00
Arthur Schiwon 46ae746379 do not try to search after the last page
- saves an LDAP requests in these cases
- prevents a Protocol Error logged on < 7.3 API (for backports)

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-04-27 17:41:58 +00:00
Joas Schilling 498ac1c6f5 Do not allow to overwrite some variables
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-27 13:39:53 +00:00
Joas Schilling 2b0fd23ecf Fix ratelimit template
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-27 13:39:52 +00:00
Morris Jobke f369fdaf94
Merge pull request #26779 from nextcloud/backport/26765/stable20
[stable20] No longer add trusted servers on federated share creation
2021-04-27 14:47:05 +02:00
Julius Härtl 2774ae508c
Merge pull request #26705 from nextcloud/backport/26627/stable20
[stable20] update icewind/smb to 3.4.1
2021-04-27 05:51:19 -01:00
Roeland Jago Douma 42a6ac89bb No longer add trusted servers on federated share creation
It was disabled by default for ages. And often resulted in unwanted
behavior. If admins want trusted servers they just have to do it
manually.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-27 06:11:01 +00:00
Nextcloud bot b8fc36c6be
[tx-robot] updated from transifex 2021-04-27 02:25:56 +00:00
Roeland Jago Douma 68fde88909
Merge pull request #26771 from nextcloud/backport/26763/stable20
[stable20] Improve federated permission handling
2021-04-26 20:51:49 +02:00
Julius Härtl 0f0c8debd9
Merge pull request #26767 from nextcloud/backport/26762/stable20 2021-04-26 16:16:17 -01:00
Roeland Jago Douma 9501514055 Improve federated permission handling
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-26 15:27:05 +00:00
Joas Schilling bcf9c14047 Log deprecation only as debug
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-26 15:14:55 +00:00
Joas Schilling 56d7b1a382 Respect the error level when logging
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-26 15:14:53 +00:00
Roeland Jago Douma 0cb66c5ca0
Merge pull request #26753 from nextcloud/backport/26721/stable20
[stable20] private cannot be final
2021-04-26 10:28:43 +02:00
Maxence Lange 0145fd0b5c private cannot be final
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2021-04-26 07:08:14 +00:00
Nextcloud bot 07b94975d4
[tx-robot] updated from transifex 2021-04-26 02:24:59 +00:00
Nextcloud bot 09c8c985e1
[tx-robot] updated from transifex 2021-04-25 02:25:15 +00:00
Nextcloud bot 1c784b1bf2
[tx-robot] updated from transifex 2021-04-24 02:26:59 +00:00
Daniel Calviño Sánchez 546be0ea63 Handle corrupted scope values
Due to a bug (fixed some commits ago) in the UsersController of the
settings app the scope of the properties can be null (for example, if
lookup server upload was disabled and the user then changed the display
name in the profile information). In that case now the scope menu icon
shows an error to inform the user.

The scope value will not change when other properties are modified until
the user chooses an explicit value from the menu. Note that until a
scope is explicitly set the property will behave as if it is private.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:58 +02:00
Daniel Calviño Sánchez e929d16bbb Fix settings scope menu hidden when lookup server upload is disabled
When upload to the lookup server is disabled the scope menu was hidden
in the personal information settings. However, even if the lookup server
upload is disabled the personal information is still accesible from the
local server as well as trusted servers. Users should be able to still
set if their information is available to other users or if it is
private, so now the scope menu is always show (although the "Public"
option is hidden if the lookup server upload is disabled).

If the user set the information as public before the upload to the
lookup server was disabled the menu will also show the "Public" option
as active, although disabled. Setting the visibility to any of the other
options will hide the "Public" option from the menu (until the lookup
server upload is enabled again).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:58 +02:00
Daniel Calviño Sánchez 4e05a486a3 Add integration tests for searching users in contacts menu
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:57 +02:00
Daniel Calviño Sánchez 67b49edac4 Make possible to set body in requesttoken requests in integration tests
"sendingAToWithRequesttoken" needs to be used to test some non OCS
endpoints which require the request token to be sent in the request. Now
it is possible to specify the body (or, rather, additional contents
beside the cookies and the request token) for those requests, as it will
be needed for example to update the user profile.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:57 +02:00
Daniel Calviño Sánchez 77aba3df3c Fix deleting properties of user settings when not given explicitly
The controller can receive an optional subset of the properties of the
user settings; values not given are set to "null" by default. However,
those null values overwrote the previously existing values, so in
practice any value not given was deleted from the user settings. Now
only non null values overwrite the previous values.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:57 +02:00
Daniel Calviño Sánchez 0ddd892736 Fix TypeError when "email" is not given in the controller request
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:57 +02:00
Daniel Calviño Sánchez 0dfd0ec77a Respect additional user settings not covered by the controller
"AccountManager::updateUser()" wipes previous user data with whichever
user data is given (except for some adjustments, like resetting the
verified status when needed). As the controller overrode the properties
those properties would lose some of their attributes even if they are
not affected by the changes made by the controller. Now the controller
only modifies the attributes set ("value" and "scope") to prevent that.

Note that with this change the controller no longer removes the
"verified" status, but this is not a problem because, as mentioned,
"AccountManager::updateUser()" resets them when needed (for example,
when the value of the website property changes).

This change is a previous step to fix overwritting properties with null
values, and it will prevent the controller from making unexpected
changes if more attributes are added in the future.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:56 +02:00
Daniel Calviño Sánchez bedb97fd57 Add more unit tests for setting user settings
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:55 +02:00
Daniel Calviño Sánchez 1c8295610b Change default test data to values less similar to empty values
Right now it makes no difference, but this should make future tests
clearer, specially in case of failure.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:52 +02:00
Daniel Calviño Sánchez 91e06bc08a Extract default test data to a helper getter
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:49 +02:00
Daniel Calviño Sánchez 32fd379b66 Use constants from interface rather than class
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 16:53:48 +02:00
Nextcloud bot a335ff969d
[tx-robot] updated from transifex 2021-04-23 02:26:35 +00:00
Morris Jobke 35189a914b
Merge pull request #26693 from nextcloud/backport/25714/stable20
[stable20] Explicitly check hex2bin input
2021-04-22 20:54:46 +02:00
Robin Appelman 9318f2d668 update icewind/smb to 3.4.1
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-22 18:01:54 +00:00
Roeland Jago Douma 86de5d9265 Explicitly check hex2bin input
For #23197

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-22 14:01:25 +02:00
Morris Jobke 3c9b923eb1
Merge pull request #26684 from nextcloud/backport/26474/stable20
[stable20] Mention MariaDB in MySQL support warning
2021-04-22 09:47:45 +02:00
Nextcloud bot bef596de06
[tx-robot] updated from transifex 2021-04-22 02:26:44 +00:00
Claas Augner 3082777bfd Mention MariaDB in MySQL support warning 2021-04-21 14:45:41 +00:00
Christoph Wurst 98472c2f85
Merge pull request #26640 from nextcloud/backport/26625/stable20
[stable20] Fix empty password check for mail shares
2021-04-21 15:43:30 +02:00
Morris Jobke adf259d6c7
Merge pull request #26678 from nextcloud/backport/26658/stable20
[stable20] Do not stop directory listing when ACL is blocking access
2021-04-21 14:21:11 +02:00
Julius Härtl 0a24fcfc34 Continue iterating over diretory contents and just hide file if denied by acl
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-21 07:24:25 +00:00
Vincent Petry 6bd49e256b
Fix empty password check for mail shares
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-21 08:00:29 +02:00
Nextcloud bot 80d93acff0
[tx-robot] updated from transifex 2021-04-21 02:26:25 +00:00
Morris Jobke 72857fe0b1
Merge pull request #26656 from nextcloud/psalm/noid/update-psalm-baseline/stable20
[stable20] Update psalm baseline
2021-04-20 17:50:48 +02:00
Vincent Petry cea228ef50
Update psalm baseline
And backport error suppression from stable21 in SFTP class.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-20 17:13:31 +02:00
Roeland Jago Douma fc118f1291
Merge pull request #26642 from nextcloud/backport/26639/stable20
[stable20] ensure redis returns bool for hasKey
2021-04-20 16:25:32 +02:00
Roeland Jago Douma bf7eafcda3
Merge pull request #26620 from nextcloud/backport/26614/stable20
[stable20] Update root.crl due to revoked news.crt
2021-04-20 15:09:54 +02:00
Morris Jobke 342a6f51d2
Merge pull request #26643 from nextcloud/backport/26633/stable20
[stable20] Make lookup search explicit
2021-04-20 14:28:24 +02:00
Roeland Jago Douma e5edc58d11 Make lookup search explicit
Speedsup sharee lookup quite a bit.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-20 08:37:48 +00:00
Arthur Schiwon 89960468ae ensure redis returns bool for hasKey
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-04-20 08:36:55 +00:00
Morris Jobke bd16ddd675
Merge pull request #26637 from nextcloud/backport/26615/stable20
[stable20] Require read permissions for federated shares
2021-04-20 09:06:40 +02:00
Nextcloud bot a4c55e4601
[tx-robot] updated from transifex 2021-04-20 02:26:21 +00:00
Roeland Jago Douma 0324e078f8 Require read permissions for federated shares
Else they end up as weird shares that can't be properly utilized by
other parties anyway.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-19 19:54:24 +00:00
Morris Jobke db87149a47
Merge pull request #26622 from nextcloud/backport/26613/stable20
[stable20] Do not allow adding file drop shares to your own cloud
2021-04-19 21:48:52 +02:00
Roeland Jago Douma 12504d4ab7 Do not allow adding file drop shares to your own cloud
There is no reason for this and you can't create such shares normally
anyway.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-19 13:01:05 +00:00
Morris Jobke d42540fe8d Update root.crl due to revoked news.crt
See https://github.com/nextcloud/app-certificate-requests/pull/382

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-04-19 12:13:56 +00:00
Roeland Jago Douma 70d625fb50
Merge pull request #26602 from nextcloud/dependabot/npm_and_yarn/stable20/ssri-6.0.2
[Security] Bump ssri from 6.0.1 to 6.0.2
2021-04-19 12:46:12 +02:00
Nextcloud bot ed5f446ec1
[tx-robot] updated from transifex 2021-04-19 02:26:26 +00:00
Nextcloud bot 90ea283913
[tx-robot] updated from transifex 2021-04-18 02:24:30 +00:00
Nextcloud bot 36a16bcf63
[tx-robot] updated from transifex 2021-04-17 02:24:25 +00:00
dependabot-preview[bot] 8e4a93fc53
[Security] Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2. **This update includes a security fix.**
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-16 22:06:01 +00:00
Nextcloud bot e57f65cdfe
[tx-robot] updated from transifex 2021-04-16 02:26:13 +00:00
Nextcloud bot 36d2bb05cf
[tx-robot] updated from transifex 2021-04-15 02:25:32 +00:00
Nextcloud bot d35011b3f7
[tx-robot] updated from transifex 2021-04-14 02:27:12 +00:00
Nextcloud bot bb6dc44afb
[tx-robot] updated from transifex 2021-04-13 02:25:18 +00:00
Roeland Jago Douma e5f30d010d
Merge pull request #26515 from nextcloud/backport/26439/stable20
[stable20] Increase subnet matcher
2021-04-12 13:32:14 +02:00
Lukas Reschke 61545e7a89 Increase subnet matcher
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-04-12 10:36:26 +00:00
Roeland Jago Douma 5517ce19ce
Merge pull request #26509 from nextcloud/backport/26230/stable20
[stable20] l10n: Add word user in FederatedShareProvider.php
2021-04-12 10:17:57 +02:00
Valdnet 1e4fc523fe l10n: Add word user in FederatedShareProvider.php
Standardizing text strings with other Nextcloud applications.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-12 06:43:54 +00:00
Nextcloud bot 0cdfea022d
[tx-robot] updated from transifex 2021-04-12 02:25:16 +00:00
Nextcloud bot 7faa8e697b
[tx-robot] updated from transifex 2021-04-11 02:25:03 +00:00
Nextcloud bot ff2a0b3126
[tx-robot] updated from transifex 2021-04-10 02:31:32 +00:00
Nextcloud bot e78e509618
[tx-robot] updated from transifex 2021-04-09 02:25:30 +00:00
Roeland Jago Douma 7022222ac2
Merge pull request #26454 from nextcloud/version/20.0.9/final
20.0.9 final
2021-04-08 14:39:29 +02:00
Roeland Jago Douma bb0966f1c7
Merge pull request #26449 from nextcloud/3rdparty/stable20/phpseclib-2.0.31
[3rdparty][stable20] phpseclib-2.0.31
2021-04-08 14:37:17 +02:00
Roeland Jago Douma a23bed0386 [3rdparty][stable20] phpseclib-2.0.31
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-08 11:47:56 +02:00
Roeland Jago Douma 96bf8a1a92 20.0.9 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-08 10:20:43 +02:00
Nextcloud bot e09760f2bc
[tx-robot] updated from transifex 2021-04-08 02:24:23 +00:00
Nextcloud bot f1fd067db1
[tx-robot] updated from transifex 2021-04-07 02:24:36 +00:00
Lukas Reschke 90386ff920
Merge pull request #26399 from nextcloud/backport/26061/stable20
[stable20] Log and continue when failing to update encryption keys during for individual files
2021-04-06 13:43:55 +02:00
Nextcloud bot 45e63c949c
[tx-robot] updated from transifex 2021-04-06 02:25:51 +00:00
Nextcloud bot ef6a2cfc8f
[tx-robot] updated from transifex 2021-04-05 02:25:05 +00:00
Nextcloud bot bc1331f2c9
[tx-robot] updated from transifex 2021-04-04 02:25:07 +00:00
Nextcloud bot 9d0c2b1984
[tx-robot] updated from transifex 2021-04-03 02:43:54 +00:00
Nextcloud bot 7eb7a91b06
[tx-robot] updated from transifex 2021-04-02 02:26:26 +00:00
Roeland Jago Douma e7948c6738
Merge pull request #26312 from nextcloud/version/20.0.9/RC1
20.0.9 RC1
2021-04-01 20:01:30 +02:00
Morris Jobke 94c8e96a1f
Merge pull request #26405 from nextcloud/backport/26403/stable20
[stable20] remove leftover debug @NoCSRFRequired introduced with #26198
2021-04-01 18:17:08 +02:00
Robin Appelman fb201a5747 remove leftover debug @NoCSRFRequired introduced with #26198
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-01 13:13:47 +00:00
Vincent Petry 3a1444ee71 Fix phpcs issues in encryption update
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-01 07:56:20 +00:00
Julius Härtl c2a072b27d Log and continue when failing to update encryption keys during for individual files
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-01 07:56:19 +00:00
Nextcloud bot 9df8953adf
[tx-robot] updated from transifex 2021-04-01 02:24:59 +00:00
kesselb 1e3e339e69
Merge pull request #26378 from nextcloud/backport/25500/stable20
[stable20] fix(translation): replace static error message
2021-03-31 10:08:34 +02:00
Christoph Wurst 7c4fca57a5
Merge pull request #26381 from nextcloud/backport/26372/stable20
[stable20] gracefully handle deleteFromSelf when share is already gone
2021-03-31 07:43:11 +02:00
Nextcloud bot 35db1b5996
[tx-robot] updated from transifex 2021-03-31 02:25:11 +00:00
Arthur Schiwon 47abd1f37e gracefully handle deleteFromSelf when share is already gone
- handling race conditions

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-30 20:26:20 +00:00
Samuel 8b6706ea7d revert(comment)
Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:14 +00:00
Samuel 09a92dc7cd revert(exception): keep throwing an exception for now
Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:13 +00:00
Samuel 2703777014 fix(translation): replace static error message
as suggested by @kesselb in nextcloud/server#25490

Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:13 +00:00
Roeland Jago Douma 99e2e5f6b9
Merge pull request #26258 from nextcloud/backport/26198/stable20
[stable20] Handle limit offset and sorting in files search
2021-03-30 20:53:11 +02:00
Christoph Wurst f1cde6b4bc
Merge pull request #26364 from nextcloud/backport/26325/stable20
[stable20] Update cipher defaults
2021-03-30 11:30:52 +02:00
Nextcloud bot 60aa785092
[tx-robot] updated from transifex 2021-03-30 02:24:39 +00:00
Roeland Jago Douma dd9890c5b8
Merge pull request #26262 from nextcloud/backport/26046/stable20
[stable20] update icewind/smb to 3.4.0
2021-03-29 21:14:39 +02:00
Roeland Jago Douma f94e8f3ee4
Merge pull request #26356 from nextcloud/backport/26342/stable20
[stable20] Fix broken Calendar Event Invite email icons in Gmail by using PNGs instead of SVGs
2021-03-29 21:03:36 +02:00
J0WI f4683a5fdf Update cipher defaults
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-03-29 18:41:46 +00:00
dependabot-preview[bot] 9f8757de81
Merge pull request #26360 from nextcloud/dependabot/npm_and_yarn/stable20/y18n-4.0.1 2021-03-29 17:29:01 +00:00
dependabot-preview[bot] 003049108f
[Security] Bump y18n from 4.0.0 to 4.0.1
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. **This update includes a security fix.**
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-03-29 16:55:44 +00:00
Nick Sweeting 03df8abca3 change calendar invite emails to use pngs instead of svgs
Signed-off-by: Nick Sweeting <git@sweeting.me>
2021-03-29 16:16:33 +00:00
Nextcloud bot dae4431427
[tx-robot] updated from transifex 2021-03-29 02:24:18 +00:00
Nextcloud bot 86850feaf9
[tx-robot] updated from transifex 2021-03-28 02:24:24 +00:00
Nextcloud bot 53aa26b6c6
[tx-robot] updated from transifex 2021-03-27 02:24:47 +00:00
Morris Jobke a8c6ffaf9a
Merge pull request #26290 from nextcloud/backport/21484/stable20
[stable20] show better error messages when a file with a forbidden path is encountered
2021-03-26 13:51:02 +01:00
Roeland Jago Douma 41375184eb 20.0.9 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-26 10:32:48 +01:00
John Molakvoæ 20cb2b49e6
Merge pull request #26305 from nextcloud/backport/22201/stable20
[stable20] Delete old birthday calendar object when moving contact to another ad…
2021-03-26 08:57:48 +01:00
John Molakvoæ 2262115043
Merge pull request #26297 from nextcloud/backport/26287/stable20
[stable20] Fix l10n
2021-03-26 08:08:53 +01:00
Christian Weiske 92ac67c3d2 Delete old birthday calendar object when moving contact to another address book
When an contact is moved to another address book, the contact is copied to
the second address book.
During copying, the birthday event is created - but it gets the same UID
as the contact's birthday event in the first address book.

To prevent the "Calendar object with uid already exists" error that followed,
we need to delete the old entry before the new one is created.

Resolves: https://github.com/nextcloud/server/issues/20492
Signed-off-by: Christian Weiske <cweiske@cweiske.de>
2021-03-26 07:01:33 +00:00
Nextcloud bot 1a05043008
[tx-robot] updated from transifex 2021-03-26 02:25:53 +00:00
Morris Jobke f3630edf45
Merge pull request #26176 from nextcloud/backport/26076/stable20
[stable20] adds ldap user:reset command
2021-03-25 20:37:06 +01:00
Morris Jobke a9df50c570
Merge pull request #26302 from nextcloud/backport/26299/stable20
[stable20] Log when a storage is marked as unavailable
2021-03-25 20:33:05 +01:00
Morris Jobke 3fe78684ad Log when a storage is marked as unavailable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-25 16:12:12 +00:00
Valdnet ab374f2cde Fix l10n
Issue: #26286
2021-03-25 12:58:49 +00:00
Arthur Schiwon d78b213310
adds ldap user:reset command
- allows to delete data of existing LDAP users, which otherwise is safe
  guarded
- ensures that the user is not being deleted on LDAP through a plugin

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-25 13:36:16 +01:00
Robin Appelman 82a2492c33 show better error messages when a file with a forbidden path is encountered
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-25 10:56:44 +00:00
Nextcloud bot f6cbda9e60
[tx-robot] updated from transifex 2021-03-25 02:25:57 +00:00
Morris Jobke 5f9f997a33
Merge pull request #26275 from nextcloud/backport/26265/stable20
[stable20] Fix casing of core test folder, bring back missing tests
2021-03-24 21:45:42 +01:00
Vincent Petry d86c4f9662
Revert "Fix core tests command for app enabling/disabling"
This reverts commit acfffcc685.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 17:17:38 +01:00
Morris Jobke 07887d62c6
Merge pull request #26278 from nextcloud/backport/26255/stable20
[stable20] l10n: Separate ellipsis
2021-03-24 17:13:56 +01:00
Robin Appelman 4b65a1dcd7
fix type hints
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:35:08 +01:00
Robin Appelman 4ede9dbb07
use node search api for legacy file search endpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:01:17 +01:00
Robin Appelman 10bf93aa24
pass order from unified search to file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:01:11 +01:00
Robin Appelman 055af29371
handle ordering in folder search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:01:05 +01:00
Robin Appelman 671b99251e
folder filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:58 +01:00
Robin Appelman 4e60b9ffe2
cleanup fileinfo creation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:53 +01:00
Robin Appelman dbd8b0ae82
format
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:47 +01:00
Robin Appelman 6a639ec1d0
handle limit and offset in folder file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:41 +01:00
Robin Appelman 4655f6feb1
only require user to be set in a query that handles tags
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:35 +01:00
Robin Appelman a624243236
unify handling of Folder::search methods into "new" query objects
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:29 +01:00
Robin Appelman 60551ced9e
use "newer" node search api directly in unified search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:06 +01:00
Vincent Petry 945eb07497
Revert autocomplete controller tests to match stable20
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 15:24:30 +01:00
Vincent Petry 31f7257c30
Revert controller tests to match stable21 API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 15:24:06 +01:00
Valdnet 680a54c47d l10n: Separate ellipsis
Unifying the text string with the others.
2021-03-24 13:26:48 +00:00
Morris Jobke 75871f76ad
Merge pull request #26250 from nextcloud/backport/25529/stable20
[stable20] Fix non LGC glyphs in avatars and txt file previews
2021-03-24 14:18:19 +01:00
Morris Jobke 22626ae13f
Merge pull request #26272 from nextcloud/backport/26270/stable20
[stable20] Catch invalid cache source storage path
2021-03-24 14:09:05 +01:00
Vincent Petry 6fcb1ab834 Fix language codes test result order
Fixes issue with Oracle by enforcing the order of the results to check.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:47 +00:00
Vincent Petry 522c319385 Bring back forgotten tests
Remove "ocs-provider" test folder reference as it doesn't exist any
more.
Added back "Test" test subdir and fixed the tests inside.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:46 +00:00
Vincent Petry a9a6f519fb Fix more controller tests in Core subdir
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:45 +00:00
Vincent Petry 97c11ff48b Fix more tests in the Core subdir
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:44 +00:00
Vincent Petry acfffcc685 Fix core tests command for app enabling/disabling
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:43 +00:00
Vincent Petry 74447816a4 Fix casing of core test folder
It seems Phpunit < 9 was case insensitive.
Fixed the phpunit config to target the correct name for the "Core" test
directory.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:42 +00:00
John Molakvoæ (skjnldsv) dfcf6ad106 Catch invalid cache source storage path
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-24 11:05:32 +00:00
Nextcloud bot c555e86e63
[tx-robot] updated from transifex 2021-03-24 02:25:25 +00:00
Robin Appelman 4bbf7058af
update icewind/smb to 3.4.0
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 19:08:48 +01:00
Nextcloud bot 1c9904aafc
[tx-robot] updated from transifex 2021-03-23 02:24:24 +00:00
Daniel Calviño Sánchez 24d853e754 Add OCC command to reset rendered texts
The command is meant to be used when the fonts used to render texts
("core/fonts/NotoSans-Regular.ttf" and "core/fonts/NotoSans-Bold.ttf")
are changed (for example, to add support for other scripts). The avatar
and text file previews will be removed, so they will be generated again
with the updated font when needed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-22 20:09:43 +00:00
Daniel Calviño Sánchez 6997e6f755 Include additional scripts in Noto fonts
Generated avatars as well as text file previews are rendered using the
"core/fonts/NotoSans-Regular.ttf" font. The file was the standard hinted
"NotoSans-Regular.ttf" file from https://www.google.com/get/noto/.
However that file does not cover some non LGC (Latin, Greek, Cyrillic)
scripts, like Arabic, Devanagari or Hebrew, to name a few.

Markdown file previews also use "core/fonts/NotoSans-Bold.ttf", which is
in the same situation as the regular one.

Due to limitations in the TTF format it is not possible to provide a
single file for each style that includes all Noto fonts. However, it is
possible to add more scripts to the standard "NotoSans-Regular.ttf" and
"NotoSans-Bold.ttf" files (although no CJK (Chinese, Japanese, Korean)
glyph can be included due to the aforementioned limitations).

This commit replaces the standard files with an extended version created
using the Noto Tools. The build script (as well as a patch for the Noto
Tools) is also included for reference and to be able to update the font
files in the future if needed.

Due to the additional scripts added the font files are now much larger,
although this does not seem to increase the time spent rendering LGC
scripts.

Note that the file for the bold style still contains less scripts than
the regular one, as not all scripts supported by Noto have a bold
weight.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-22 20:09:42 +00:00
John Molakvoæ 7d8aede6dc
Merge pull request #26239 from nextcloud/backport/26231/stable20 2021-03-22 13:55:29 +01:00
Valdnet 70e89e44ec l10n: Add changes to text string for user 2021-03-22 10:30:52 +00:00
Valdnet 68a707c158 l10n: Add word user in ShareByMailProvider.php
Standardizing text strings with other Nextcloud applications.
2021-03-22 10:30:51 +00:00
Nextcloud bot 208f84d2e4
[tx-robot] updated from transifex 2021-03-22 02:24:06 +00:00
Nextcloud bot efdb5cc53c
[tx-robot] updated from transifex 2021-03-21 02:23:27 +00:00
Roeland Jago Douma 7b294aee0d
Merge pull request #26217 from nextcloud/backport/26145/stable20
[stable20] add (hidden) option to always show smb root as writable
2021-03-20 10:53:48 +01:00
Nextcloud bot 01d05c6435
[tx-robot] updated from transifex 2021-03-20 02:24:00 +00:00
Morris Jobke 019ccda25f
Merge pull request #26209 from nextcloud/backport/23718/stable20
[stable20] expand 'path is already shared' error message
2021-03-19 20:04:07 +01:00
Robin Appelman fd29d77817
expand 'path is already shared' error message
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-19 17:32:14 +01:00
Robin Appelman 728488fcf5 add (hidden) option to always show smb root as writable
some smb servers are very insistent in reporting that the root of the share is readonly, even if it isn't.

This works around the problem by adding a hidden option to overwrite the permissions of the root of the share.

This can be enabled using

```bash
occ files_external:config <mount id> root_force_writable true
```

where you can find your mount id using

```bash
occ files_external:list
```

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-19 15:47:23 +00:00
Morris Jobke 37c3930f72
Merge pull request #26205 from nextcloud/backport/26200/stable20
[stable20] Update user share must use correct expiration validation
2021-03-19 15:19:30 +01:00
Vincent Petry 4ad89c1761 Update user share must use correct expiration validation
Updating a user or group share now uses the correct method for the
validation of the expiration date. Instead of using the one from links
it uses the one for internal shares.

To avoid future confusion, the method "validateExpirationDate" has been
renamed to "validateExpirationDateLink".

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-19 09:57:29 +00:00
Morris Jobke f088b942cb
Merge pull request #26125 from nextcloud/backport/25533/stable20
[stable20] send share notification instead of erroring on duplicate share
2021-03-19 09:19:14 +01:00
Nextcloud bot 97d9b3fe0c
[tx-robot] updated from transifex 2021-03-19 02:25:14 +00:00
Morris Jobke ffc4efb894
Merge pull request #26063 from nextcloud/backport/25915/stable20
[stable20] Add appconfig to always show the unique label of a sharee
2021-03-18 20:50:01 +01:00
Roeland Jago Douma 4e617bedda
Merge pull request #26123 from nextcloud/backport/26004/stable20
[stable20] Allow overwriting isAuthenticated
2021-03-18 16:20:37 +01:00
Julius Härtl 96287f336e Add appconfig to always show the unique label of a sharee
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-18 13:07:03 +00:00
Morris Jobke 939db1f466
Merge pull request #26190 from nextcloud/backport/25331/stable20
[stable20] Fix valid storages removed when cleaning remote storages
2021-03-18 13:09:22 +01:00
Vincent Petry 7dfb3afdac
Merge pull request #26088 from nextcloud/backport/26049/stable20
[stable20] limit constructing of result objects in file search
2021-03-18 11:22:53 +01:00
Daniel Calviño Sánchez ec454e7c2b Fix valid storages removed when cleaning remote storages
The remote URL of a share is always stored in the database with a
trailing slash. However, when a cloud ID is generated trailing slashes
are removed.

The ID of a remote storage is generated from the cloud ID, but the
"cleanup-remote-storage" command directly used the remote URL stored in
the database. Due to this, even if the remote storage was valid, its ID
did not match the ID of the remote share generated by the command and
ended being removed.

Now the command generates the ID of remote shares using the cloud ID
instead, just like done by the remote storage, so there is no longer a
mismatch.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-18 07:59:45 +00:00
Daniel Calviño Sánchez 92daa942b0 Add integration tests for "sharing:cleanup-remote-storages" OCC command
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-18 07:59:45 +00:00
Robin Appelman e36e4a571e
implement PagedProvider for file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-18 08:22:34 +01:00
Robin Appelman 57042ab107
limit constructing of result objects in file search
even thought we currently have no proper way of limiting the search itself, we can at least limit the construction of the result objects.

this saves about 40% of the time spend in the search request in my local testing

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-18 08:22:31 +01:00
Nextcloud bot a50f4a42bc
[tx-robot] updated from transifex 2021-03-18 02:25:22 +00:00
Morris Jobke d3b279d98d
Merge pull request #26052 from nextcloud/backport/26048/stable20
[stable20] cache baseurl in url generator
2021-03-17 20:14:05 +01:00
Morris Jobke 4f18ff9815
Merge pull request #25944 from nextcloud/backport/25659/stable20
[stable20] catch notfound and forbidden exception in smb::getmetadata
2021-03-17 20:13:57 +01:00
Morris Jobke 71b793f8a1
Merge pull request #26091 from nextcloud/backport/25722/stable20
[stable20] apply object store copy optimization when 'cross storage' copy is wit…
2021-03-17 20:09:56 +01:00
Morris Jobke c4da8d4e55
Merge pull request #26152 from nextcloud/backport/26137/stable20
[stable20] dont allow creating users with __groupfolders as uid
2021-03-17 20:06:56 +01:00
Morris Jobke 2982fa346b
Merge pull request #26181 from nextcloud/backport/26003/stable20
[stable20] Add getID function to the simplefile implementation
2021-03-17 20:06:15 +01:00
Morris Jobke fe3b3a9cec
Merge pull request #26147 from nextcloud/backport/26013/stable20
[stable20] Return the fileid from `copyFromCache` and use it instead of doing an extra query
2021-03-17 20:04:11 +01:00
Roeland Jago Douma 147134fc31 Add getID function to the simplefile implementation
Sometimes it is useful to get the actual fileid

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-17 16:15:46 +00:00
Morris Jobke 3c1402c2d9
Merge pull request #25876 from nextcloud/psalm/stable20/update
[stable20] Update psalm baseline
2021-03-17 14:17:20 +01:00
Morris Jobke fd53468d7b
Merge pull request #26163 from nextcloud/backport/26153/stable20
[stable20] Use correct exception type hint in catch statement
2021-03-17 13:50:13 +01:00
Morris Jobke 94c47eddea
Merge pull request #26168 from nextcloud/backport/26072/stable20
[stable20] remove explicit fclose from S3->writeStream
2021-03-17 13:46:48 +01:00
Vincent Petry 67e0b194b6
Update and fix baseline
Backported some bits of stable21 to make Psalm happy.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-17 12:04:08 +01:00
Robin Appelman 534a935433 remove explicit fclose from S3->writeStream
streams get closed automatically when dropped, and in some cases the stream seems to be already closed by the S3 library, in which case trying to close it again will raise an error

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-17 09:36:11 +00:00
Vincent Petry f80f7a33e8
Fix baseline further
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-17 10:31:09 +01:00
Roeland Jago Douma 7bb7f4d936
Update psalm baseline
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-17 10:06:06 +01:00
Morris Jobke 9749514649 Use correct exception type hint in catch statement
Found by psalm update 4.6.2 to 4.6.3 in #26111

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-17 08:47:07 +00:00
Nextcloud bot fdabe1172b
[tx-robot] updated from transifex 2021-03-17 02:24:39 +00:00
Robin Appelman 279f0d72f3 dont allow creating users with __groupfolders as uid
Fixes https://github.com/nextcloud/groupfolders/issues/338

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 18:51:58 +00:00
Robin Appelman 436cd31bd2 verify that cache entry is valid
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:04 +00:00
Robin Appelman 9bb73574c3 also implement for FailedCache and NullCache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:03 +00:00
Robin Appelman 20ab946c3f use returned file id for object store copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:01 +00:00
Robin Appelman aaa4c071ed add ICopyFromCache trait to expose existing implementation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:01 +00:00
Morris Jobke 2e14150889
Merge pull request #26134 from nextcloud/backport/25136/stable20
[stable20] do cachejail search filtering in sql
2021-03-16 17:00:29 +01:00
Robin Appelman bdd7f28fa6
only use share cacheentry when available
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:23 +01:00
Robin Appelman f500e2396e
adjust tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:23 +01:00
Robin Appelman 7fd53b91c3
fix search in nested jails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:22 +01:00
Robin Appelman a20eb9a229
fix cachjail searching for root
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:22 +01:00
Robin Appelman 5d08beb3d2
do cachejail search filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:22 +01:00
Christoph Wurst a6357ebcba
Merge pull request #26130 from nextcloud/backport/26115/stable20
[stable20] Log exceptions when creating share
2021-03-16 11:09:44 +01:00
Nextcloud bot 7332b6f75e
[tx-robot] updated from transifex 2021-03-16 02:25:00 +00:00
Vincent Petry 20ebdf4fe0 Log exceptions when creating share
Because the exceptions don't always contain a useful message for the UI,
but also because in some cases we need to find out what went wrong.

In some setups, a ShareNotFoundException might happen during creation
when we try to re-read the just written share. Usually related to Galera
Cluster where node syncing wait is not enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-15 15:06:43 +00:00
Robin Appelman 797645bc49 send share notification instead of erroring on duplicate share
when creating a share that already exists, instead of erroring, resend the notifications

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 14:13:05 +00:00
Roeland Jago Douma ff64514bea Allow overwriting isAuthenticated
* Some implementations might check for different things
* IT will not change how the current ones work

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-15 13:59:10 +00:00
Christoph Wurst 3e18eca7a0
Merge pull request #26059 from nextcloud/backport/25911/stable20
[stable20] Only clear share password model when actually saved
2021-03-15 09:48:19 +01:00
Nextcloud bot 25f27569f5
[tx-robot] updated from transifex 2021-03-15 02:24:17 +00:00
Nextcloud bot 049895f3e7
[tx-robot] updated from transifex 2021-03-14 02:23:58 +00:00
Nextcloud bot b6af167c65
[tx-robot] updated from transifex 2021-03-13 02:23:14 +00:00
Robin Appelman 5827a156af apply object store copy optimization when 'cross storage' copy is within the same object store
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 16:16:32 +00:00
Nextcloud bot 60756e8e3e
[tx-robot] updated from transifex 2021-03-12 02:23:01 +00:00
Vincent Petry 51ba0faeaf Only clear share password model when actually saved
Instead of always clearing the password in the share model, now only do
it when it was actually saved.

Fixes an issue where saving another field would clear the password too
early and prevent it to be saved when the dropdown closed.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-11 10:20:59 +00:00
Roeland Jago Douma b306b88a41
Merge pull request #26040 from nextcloud/backport/25916/stable20
[stable20] Remove trash items from other trash backends when deleting all
2021-03-11 10:34:32 +01:00
Nextcloud bot 28378720f1
[tx-robot] updated from transifex 2021-03-11 02:23:28 +00:00
Robin Appelman a1935d0f74 cache baseurl in url generator
Servers don't tend to change their url in the middle of a request

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-10 19:38:41 +00:00
Roeland Jago Douma ae6c5f2af4
Merge pull request #26027 from nextcloud/backport/25933/stable20
[stable20] Hide expiration date field for remote shares
2021-03-10 15:46:53 +01:00
Vincent Petry aad21777d4 Hide expiration date field for remote shares
Remote shares currently do not support expiration date.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-10 09:08:28 +00:00
Roeland Jago Douma f240f895e7
Merge pull request #25878 from nextcloud/backport/25568/stable20
[stable20] disable trasbin during the moveFromStorage fallback
2021-03-10 09:34:02 +01:00
Julius Härtl 0c98c15555 Remove trash items from other trash backends when deleting all
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-10 08:02:38 +00:00
Nextcloud bot 8dc2b22e35
[tx-robot] updated from transifex 2021-03-10 02:23:17 +00:00
Roeland Jago Douma 0d021249f8
Merge pull request #25938 from nextcloud/backport/25927/stable20
[stable20] Sharebymail: set expiration on creation
2021-03-09 20:20:49 +01:00
Roeland Jago Douma 791868fa25
Merge pull request #25994 from nextcloud/backport/25975/stable20
[stable20] Add missing waits and asserts in acceptance tests
2021-03-09 09:34:25 +01:00
Nextcloud bot df04689af7
[tx-robot] updated from transifex 2021-03-09 02:24:13 +00:00
Roeland Jago Douma 5f3955446a
Merge pull request #26009 from nextcloud/dependabot/npm_and_yarn/stable20/elliptic-6.5.4
[Security] Bump elliptic from 6.5.3 to 6.5.4
2021-03-08 19:37:51 +01:00
dependabot-preview[bot] 7dffaabe8a
[Security] Bump elliptic from 6.5.3 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. **This update includes a security fix.**
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-03-08 16:52:54 +00:00
Daniel Calviño Sánchez ace7b9dfe1 Find directly the label instead of falling back to it
The input element is always hidden, so the check always ended falling
back to the label. Moreover, the label is the element that the user
interacts with, so it must be the one used.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:37 +00:00
Daniel Calviño Sánchez f92a216dcf Assert also element visibility instead of just finding it
Although if the element could not be found an exception would be thrown
and the test aborted if an element is in the DOM but hidden it would be
found and the test would pass.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:37 +00:00
Daniel Calviño Sánchez 30c91a7303 Add explicit locator for "Enable all" bundle button
Instead of looking for the bundle button and then checking its value now
the expected value is included in the locator and the button is checked
similarly to other elements.

No "Disable all" locator was added as it was not currently needed
anywhere.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:36 +00:00
Daniel Calviño Sánchez 00b38db77f Find elements through the actor rather than the driver
"Actor::find" is a more robust way to look for elements, as it handles
some exceptions that may be thrown. Therefore, even if the elements are
not actually used and it is only checked whether they exist or not using
the actor is the preferred way when possible (and it also makes it
consistent with the rest of the acceptance tests).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:35 +00:00
Daniel Calviño Sánchez d293751ba7 Add locator for apps list
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:35 +00:00
Daniel Calviño Sánchez 5859458c52 Fix identation
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:34 +00:00
Daniel Calviño Sánchez d548d212a2 Fix delete user acceptance test
Adding some missing asserts showed that the "delete user" acceptance
test was silently failing, as the deletion was not being confirmed in
the dialog and thus the user was not being deleted.

The dialog button contains a single quote ("user0's"), so the XPath
expression had to be adjusted (it seems that it is not possible to
escape a single quote in a string enclosed in single quotes in XPath
1.0).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:33 +00:00
Daniel Calviño Sánchez dd1a554c79 Verify WaitFor::element... results with an assertion
WaitFor::element... calls only perform the waiting and return whether
the condition succeeded or not, but that result needs to be explicitly
checked to prevent further steps from being executed if the wait failed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:32 +00:00
Daniel Calviño Sánchez 8077dbf097 Add missing waits when finding elements in the acceptance tests
As no timeout was specified the elements were tried to be found just
once. This caused the steps to fail if the elements did not appear yet
in the page when they were tried to be found.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:59:32 +00:00
Roeland Jago Douma 0b8f41f5af
Merge pull request #25963 from nextcloud/backport/25712/stable20
[stable20] Fix admin password strengthify tooltip
2021-03-08 08:54:22 +01:00
Nextcloud bot 2046e71da2
[tx-robot] updated from transifex 2021-03-08 02:23:30 +00:00
Nextcloud bot 14b9c26b8a
[tx-robot] updated from transifex 2021-03-07 02:22:25 +00:00
Roeland Jago Douma f78c3f475b
Merge pull request #25956 from nextcloud/backport/25932/stable20
[stable20] Skip empty obsolete owner when adding to own NC
2021-03-06 10:55:08 +01:00
Nextcloud bot f209e862c2
[tx-robot] updated from transifex 2021-03-06 02:22:41 +00:00
Richard Steinmetz a8b780bdcb
Fix admin password strengthify tooltip
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-03-05 18:20:43 +01:00
Vincent Petry e92afefba7 Skip empty obsolete owner when adding to own NC
The owner field is nowadays always empty when adding a federated share
using "Add to your Nextcloud", so don't check for it.

Fixes an issue where "Add to your Nextcloud" doesn't add anything.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-05 13:38:09 +00:00
Roeland Jago Douma 41405facde
Merge pull request #25934 from nextcloud/backport/25926/stable20
[stable20] Activity: show if files are hidden or not
2021-03-05 14:29:27 +01:00
Roeland Jago Douma f70e6e8482
Merge pull request #25919 from nextcloud/backport/25805/stable20
[stable20] Clear multiselect after selection in share panel
2021-03-05 09:43:52 +01:00
Robin Appelman 326f7ac857 catch notfound and forbidden exception in smb::getmetadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-05 07:54:09 +00:00
Nextcloud bot b4d001db3a
[tx-robot] updated from transifex 2021-03-05 02:22:16 +00:00
Roeland Jago Douma 3089c744d2 Sharebymail: set expiration on creation
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 18:52:43 +00:00
Roeland Jago Douma ede08b0f09 Activity: show if files are hidden or not
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 16:04:27 +00:00
Nextcloud bot 21ff951ca3
[tx-robot] updated from transifex 2021-03-04 02:22:30 +00:00
Vincent Petry d3db0f5000 Clear multiselect after selection in share panel
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-03 16:43:57 +00:00
blizzz 6ee39e204f
Merge pull request #25844 from nextcloud/backport/25757/stable20
[stable20] fix detecting cyclic group memberships
2021-03-03 10:43:21 +01:00
Roeland Jago Douma ff5491bf69
Merge pull request #25873 from nextcloud/backport/25869/stable20
[stable20] Fix namespacing
2021-03-03 08:46:21 +01:00
Roeland Jago Douma fbb719b29d
Merge pull request #25900 from nextcloud/backport/25860/stable20
[stable20] do not die after LDAP auth failed with expired acc
2021-03-03 08:35:16 +01:00
Nextcloud bot 25fbc9fdd6
[tx-robot] updated from transifex 2021-03-03 02:21:42 +00:00
Arthur Schiwon 4b9037e849 do not die after LDAP auth failed with expired acc
- some servers return error code 53

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-02 20:40:06 +00:00
Robin Appelman 59d157f1f2 disable trasbin during the moveFromStorage fallback
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-02 13:28:00 +00:00
Anna Larch 4b9e638cca Fix namespacing
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-03-02 10:10:29 +00:00
Roeland Jago Douma 9fea75d7d7
Merge pull request #25858 from nextcloud/backport/25856/stable20
[stable20] Card::getOwner should return the actual value
2021-03-02 09:24:40 +01:00
Nextcloud bot 5c474ee142
[tx-robot] updated from transifex 2021-03-02 02:22:41 +00:00
Roeland Jago Douma 622a3b8c74 Card::getOwner should return the actual value
I guess we never call this at runtime or it would already ahve done boom
very loudly.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-01 17:30:33 +00:00
Roeland Jago Douma acb8fac983
Merge pull request #25848 from nextcloud/backport/25715/stable20
[stable20] Bump the ca location
2021-03-01 18:26:08 +01:00
Roeland Jago Douma 200a3db58e Bump the ca location
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-01 12:37:56 +00:00
Roeland Jago Douma b94ef32ed8
Merge pull request #25740 from nextcloud/backport/25602/stable20
[stable20] Avoid creating two share links when password is enforced
2021-03-01 12:49:36 +01:00
Arthur Schiwon ce6d64b122 fix detecting cyclic group memberships
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-01 11:13:14 +00:00
Julius Härtl fc935f1bc8
Avoid creating two share links when password is enforced
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-01 10:05:20 +01:00
Nextcloud bot 1c7829ce53
[tx-robot] updated from transifex 2021-03-01 02:20:37 +00:00
Nextcloud bot ccd6063eea
[tx-robot] updated from transifex 2021-02-28 02:20:12 +00:00
Nextcloud bot 7f2985aecd
[tx-robot] updated from transifex 2021-02-27 02:22:40 +00:00
Nextcloud bot 792d82b967
[tx-robot] updated from transifex 2021-02-26 02:22:05 +00:00
Nextcloud bot 1e4af96055
[tx-robot] updated from transifex 2021-02-25 02:21:40 +00:00
Roeland Jago Douma 1ff83111a6
Merge pull request #25719 from nextcloud/version/20.0.8/final
20.0.8 final
2021-02-24 19:36:24 +01:00
Nextcloud bot 147e2798d7
[tx-robot] updated from transifex 2021-02-24 02:22:24 +00:00
Joas Schilling 10a4a144d3
Merge pull request #25709 from nextcloud/backport/25707/stable20
[stable20] Send emails on password reset to the displayname
2021-02-23 11:59:04 +01:00
Nextcloud bot a85fa7b6d3
[tx-robot] updated from transifex 2021-02-23 02:39:44 +00:00
Nextcloud bot ea8e83a000
[tx-robot] updated from transifex 2021-02-21 02:40:17 +00:00
Nextcloud bot 3454f39642
[tx-robot] updated from transifex 2021-02-20 02:37:41 +00:00
Roeland Jago Douma 94099c9b80 20.0.8 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-19 14:10:43 +01:00
Nextcloud bot 17cc8c7579
[tx-robot] updated from transifex 2021-02-19 02:21:14 +00:00
Roeland Jago Douma f80a2bef59
Merge pull request #25494 from nextcloud/version/20.0.8/RC1
20.0.8 RC1
2021-02-18 20:23:58 +01:00
Roeland Jago Douma cb0c2243ac
Merge pull request #25384 from nextcloud/backport/25218/stable20
[stable20] do not remove valid group shares
2021-02-18 20:13:58 +01:00
Roeland Jago Douma b986c9e4e5
Merge pull request #25132 from nextcloud/backport/24661/stable20
[stable20] dont offer to edit external config settings if we can't edit them
2021-02-18 19:41:49 +01:00
Robin Appelman e7805e5009
fix test
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-02-18 15:56:26 +01:00
Robin Appelman 590ef22935
Update apps/files_external/js/statusmanager.js
Co-authored-by: Morris Jobke <hey@morrisjobke.de>
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-02-18 15:55:02 +01:00
Joas Schilling 42e28633f5 Send emails on password reset to the displayname
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-18 14:35:06 +00:00
Roeland Jago Douma d9186a2f46
Merge pull request #25703 from nextcloud/backport/25700/stable20
[stable20] Initialize \OCP\AppFramework\Http\ZipResponse::$resources
2021-02-18 08:31:41 +01:00
Nextcloud bot ae63016e06
[tx-robot] updated from transifex 2021-02-18 02:22:14 +00:00
Christoph Wurst 5b15e16706 Initialize \OCP\AppFramework\Http\ZipResponse::$resources
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-17 21:30:53 +00:00
Roeland Jago Douma 42de5042ba
Merge pull request #25448 from nextcloud/backport/25393/stable20
[stable20] add repair job for unencoded group share uris
2021-02-17 20:59:18 +01:00
Arthur Schiwon 9b3bff87a0
bump affected version
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 17:10:29 +01:00
Arthur Schiwon c882bc68ba
compatibility to Nc 20
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 17:09:33 +01:00
Arthur Schiwon ca7a7a5c85
add missing changes from backport source
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 15:59:50 +01:00
Arthur Schiwon 7c449cd0ba
test: adjust expectation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 15:59:50 +01:00
Arthur Schiwon 04496a71ca
show suggestion to clean up possible invalid shares later
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 15:59:50 +01:00
Arthur Schiwon a6414a7d05
take into account that UNIQUE index might not work as expected
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 15:59:50 +01:00
Arthur Schiwon c2ba3ca0ed
add repair job for unencoded calendars
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 15:59:49 +01:00
Joas Schilling dbae210a06
Merge pull request #25379 from nextcloud/backport/25101/stable20
[stable20] LDAP: make actually use of batch read known groups
2021-02-17 14:56:45 +01:00
Arthur Schiwon 02ae52bb5b
really use known groups
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 13:51:08 +01:00
Roeland Jago Douma 4be1dbe40e
Merge pull request #25651 from nextcloud/backport/25594/stable20
[stable20] Use ownerDisplayName for SharingEntry Tooltip
2021-02-17 10:38:18 +01:00
Arthur Schiwon bf61a439d8 do not remove valid group shares
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 08:51:37 +01:00
Nextcloud bot 39a6ab6b42
[tx-robot] updated from transifex 2021-02-17 02:21:26 +00:00
Roeland Jago Douma c0696c54b5
Merge pull request #25666 from nextcloud/backport/25661/stable20
[stable20] Updated CRL
2021-02-16 08:27:08 +01:00
Nextcloud bot 4923eddaa6
[tx-robot] updated from transifex 2021-02-16 02:21:53 +00:00
Roeland Jago Douma fbf57e5aeb Updated CRL
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-15 21:09:41 +00:00
Roeland Jago Douma 476dcbcf01
Merge pull request #25663 from nextcloud/backport/25655/stable20
[stable20] Fix app icon list in dark mode
2021-02-15 22:05:18 +01:00
Joas Schilling e537a4254a Fix app icon list in dark mode
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-15 19:39:58 +00:00
Dan VerWeire d3df65e86f Use ownerDisplayName for SharingEntry Tooltip
Some NC installations may use a LDAP UUID for the username. If that
is the case, then the tooltip for who a file/folder was shared by may say something
like `Shared with Steve McQueen (smqueen@yada.com) by FKDJ39-38D794JG-4398GJODF9H3G-4534`.

This commit changes the value showed for the owner to the full display name.

Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-02-15 15:54:31 +00:00
Nextcloud bot e83b8fbfae
[tx-robot] updated from transifex 2021-02-15 02:20:26 +00:00
Nextcloud bot 9fb792d1c1
[tx-robot] updated from transifex 2021-02-14 02:20:18 +00:00
Nextcloud bot 4799201c94
[tx-robot] updated from transifex 2021-02-13 02:20:46 +00:00
Roeland Jago Douma f6f6051b73
Merge pull request #25592 from nextcloud/backport/25582/stable20
[stable20] Do not send imip email to invalid recipients
2021-02-12 08:54:48 +01:00
Nextcloud bot 9b978a714d
[tx-robot] updated from transifex 2021-02-12 02:20:35 +00:00
Christoph Wurst d5407764d7 Do not send imip email to invalid recipients
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-11 19:03:14 +00:00
Roeland Jago Douma 47a39803f3
Merge pull request #25382 from nextcloud/backport/25312/stable20
[stable20] do not lower case search provider names on web ui
2021-02-11 10:33:27 +01:00
Nextcloud bot 799ba83095
[tx-robot] updated from transifex 2021-02-11 02:20:54 +00:00
Nextcloud bot 0c4de17482
[tx-robot] updated from transifex 2021-02-10 02:21:17 +00:00
Roeland Jago Douma c3fc3e739e
Merge pull request #25458 from nextcloud/backport/23588/stable20
[stable20] Override default dashboard background with theming one
2021-02-09 22:03:05 +01:00
Julien Veyssier 451cb39122 override default dashboard background with theming one
fix getAppValue default value in theming app
fix cacheBuster value injection

Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-09 21:26:07 +01:00
Roeland Jago Douma 3042a5a833
Merge pull request #25550 from nextcloud/reconnectwrapper-wait-timeout
[20] change reconect wrapper to only check connection after inactivity
2021-02-09 21:14:46 +01:00
Robin Appelman b51f32ec08
change reconect wrapper to only check connection after inactivity
instead of always checking every minute, only check the connection after a minute of inactivity.
this should better reflect how idle timeouts of sql servers work and remove most of the cases where this check was previously done.

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-02-09 16:30:59 +01:00
Nextcloud bot b3ac30c4da
[tx-robot] updated from transifex 2021-02-09 02:21:02 +00:00
Nextcloud bot 783b519886
[tx-robot] updated from transifex 2021-02-08 02:20:22 +00:00
Nextcloud bot 83cb1897f3
[tx-robot] updated from transifex 2021-02-07 02:21:08 +00:00
Roeland Jago Douma 30230a436e
Merge pull request #25388 from nextcloud/backport/25302/stable20
[stable20] Use RFC-compliant URL encoding for cookies
2021-02-06 10:56:27 +01:00
Nextcloud bot a6ebb5be79
[tx-robot] updated from transifex 2021-02-06 02:21:08 +00:00
Roeland Jago Douma b6ac93dff9
Merge pull request #25497 from nextcloud/backport/25487/stable20
[stable20] Log deprecation notice of GenericEventWrapper just once
2021-02-05 16:17:16 +01:00
Roeland Jago Douma fa2ed5b93f
Merge pull request #25504 from nextcloud/tests/node-build-clean/stable20
[stable20] Cleanup bundle files before checking the rebuild
2021-02-05 16:15:47 +01:00
Julius Härtl 88d4dcac44
Cleanup bundle files before checking the rebuild
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-02-05 15:08:50 +01:00
Vincent Petry efe9ef223d
Merge pull request #25475 from nextcloud/backport/25443/stable20
[stable20] Make user list pagination more tolerant
2021-02-05 14:46:49 +01:00
Roeland Jago Douma 4717aeb6f7
Merge pull request #25477 from nextcloud/backport/25441/stable20
[stable20] Fix duplicate tag info view registration
2021-02-05 13:21:04 +01:00
Christoph Wurst 61278d2461 Log deprecation notice of GenericEventWrapper just once
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-05 10:17:16 +00:00
Vincent Petry 1936895a42
Fix duplicate tag info view registration
Only register the tag info view once as it's stored in a singleton.
This fixes an issue where the tag info view did not get rendered after
swiching between different file views.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-05 11:09:01 +01:00
Vincent Petry ccaa593a44
Make user list pagination more tolerant
In case the server returns more results than expected by the limit, it
is now still interpreted as there being more results to query.

This situation can happen when there are multiple user backends in
place.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-05 11:08:36 +01:00
Roeland Jago Douma e4bfbfe177
Merge pull request #25492 from nextcloud/bugfix/25491/ci-fix-notifications-branch/stable20
Fix CI branch for notifications app
2021-02-05 11:05:21 +01:00
Roeland Jago Douma c781bebf64
Merge pull request #25480 from nextcloud/stable20-stray-asset-deletion
[stable20] Remove stray compiled assets
2021-02-05 11:01:52 +01:00
Roeland Jago Douma 931ee2c0b8 20.0.8 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-05 10:53:29 +01:00
Vincent Petry 8abd227498
Fix CI branch for notifications app
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-05 10:38:37 +01:00
Nextcloud bot 6552f03d1f
[tx-robot] updated from transifex 2021-02-05 02:21:51 +00:00
Vincent Petry cbc06719c2
Remove stray assets
This was automatically deleted and not regenerated by:
make dev-setup && make build-js-production

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-04 11:50:32 +01:00
Nextcloud bot 333ff64b40
[tx-robot] updated from transifex 2021-02-04 02:20:21 +00:00
Nextcloud bot bb32ba0c07
[tx-robot] updated from transifex 2021-02-03 02:20:01 +00:00
Roeland Jago Douma 841aa4d32c
Merge pull request #25430 from nextcloud/backport/25424/stable20
[stable20] Keep direct login active when redirecting
2021-02-02 21:25:13 +01:00
Roeland Jago Douma 370ae8ac04
Merge pull request #25387 from nextcloud/version/20.0.7/final
20.0.7 final
2021-02-02 20:51:53 +01:00
Julius Härtl e70ad108f6
Merge pull request #25421 from nextcloud/backport/25383/stable20
[stable20] Properly handle SMB ACL blocking scanning a directory
2021-02-02 20:44:31 +01:00
Julius Härtl e7c07e722b Keep direct login active when redirecting
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-02-02 09:30:36 +00:00
Nextcloud bot 9bb3212433
[tx-robot] updated from transifex 2021-02-02 02:20:04 +00:00
Julius Härtl fcfa39183c Properly handle SMB ACL blocking scanning a directory
This makes sure that a possible ForbiddenException is properly passed
through the storage as a ForbiddenException and can be catched when
trying to fetch the quota info of a parent folder

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-02-01 11:13:44 +00:00
Nextcloud bot 20cc5584f9
[tx-robot] updated from transifex 2021-02-01 02:19:48 +00:00
Nextcloud bot a49a9a4945
[tx-robot] updated from transifex 2021-01-31 02:19:14 +00:00
Nextcloud bot dcce572b55
[tx-robot] updated from transifex 2021-01-30 02:20:45 +00:00
Marco Ziech 52229154a5 Use RFC-compliant URL encoding for cookies
PHP 7.4.2 changed the way how cookies are decoded, applying RFC-compliant raw URL decoding. This leads to a conflict Nextcloud's own cookie encoding, breaking the remember-me function if the UID contains a space character.

Fixes #24438

Signed-off-by: Marco Ziech <marco@ziech.net>
2021-01-29 12:41:59 +00:00
Roeland Jago Douma 173122846a 20.0.7 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-29 12:58:49 +01:00
Arthur Schiwon 28d521afcf
built assets
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-29 11:23:23 +01:00
Arthur Schiwon d809fa3ae9
do not lower case search provider names on web ui
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-29 11:18:23 +01:00
Roeland Jago Douma 63a48cf5a9
Merge pull request #25368 from nextcloud/version/20.0.7/RC1
20.0.7 RC1
2021-01-29 09:00:24 +01:00
Roeland Jago Douma 2d63998bb7
Merge pull request #25374 from nextcloud/backport/25369/stable20
[stable20] The objectid is a string
2021-01-29 08:56:39 +01:00
Roeland Jago Douma b745acdc14 The objectid is a string
This allows the query to use the index. Else it has to resort on
scanning all the rows.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-29 07:15:16 +00:00
Nextcloud bot cde8b977a0
[tx-robot] updated from transifex 2021-01-29 02:21:27 +00:00
Julius Härtl e6fb478dbe
Merge pull request #25366 from nextcloud/backport/25361/stable20
[stable20] fix parameter provided as string not array
2021-01-28 22:12:36 +01:00
Julius Härtl 2c23dd4b51
Merge pull request #25352 from nextcloud/backport/25185/stable20
[stable20] Show the actual error on share requests
2021-01-28 22:05:25 +01:00
Roeland Jago Douma ba6a0da73a 20.0.7 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-28 21:19:47 +01:00
Arthur Schiwon 71a762b3a7 fix parameter provided as string not array
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-28 19:40:13 +00:00
Nextcloud bot d7f6a4800c
[tx-robot] updated from transifex 2021-01-28 02:24:21 +00:00
Roeland Jago Douma 5caf554d27
Merge pull request #25347 from nextcloud/backport/25335/stable20
[stable20] Fix/app fetcher php compat comparison
2021-01-27 21:01:11 +01:00
Julius Härtl a2476e19e6 Show the actual error on share requests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-01-27 19:00:45 +00:00
Christoph Wurst 9010937535 Fix app fetcher php comparison to allow wider ranges
When app app specifies php 7.4 as upper limit we have to allow the
installation on php>7.4.0. The previous version check didn't do that.
This adjusts the regexes to discard any irrelevant suffix after the
three version numbers so that we can use more fine granular checks than
php's version_compare can do out of the box, like for php 7.4 we only
compare the major and minor version numbers and ignore the patch level.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-01-27 14:51:54 +00:00
Christoph Wurst fbe893016f Revert "Fix comparison of PHP versions"
This reverts commit bedd9acf78.
2021-01-27 14:51:54 +00:00
Nextcloud bot b527ffc4c9
[tx-robot] updated from transifex 2021-01-27 02:20:58 +00:00
Christoph Wurst 891fbe100e
Merge pull request #25324 from nextcloud/backport/25310/stable20
[stable20] [CalDAV] Validate notified emails
2021-01-26 10:48:21 +01:00
Nextcloud bot 7e2552f142
[tx-robot] updated from transifex 2021-01-26 02:21:43 +00:00
Thomas Citharel 9d0319446e [CalDAV] Validate notified emails
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-25 19:49:20 +00:00
Roeland Jago Douma 7ecb8d122e
Merge pull request #25315 from nextcloud/backport/25313/stable20
[stable20] Catch NotFoundException when querying quota
2021-01-25 20:44:54 +01:00
Roeland Jago Douma fd26cb1870
Merge pull request #25294 from nextcloud/version/20.0.6/final
20.0.6
2021-01-25 15:56:13 +01:00
Vincent Petry ead953addd Catch NotFoundException when querying quota
Fixes parent folder that becomes inaccessible when it contains a
non-existing / broken entry because the quota check made the PROPFIND
on parent fail altogether.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-01-25 12:32:18 +00:00
Nextcloud bot 16509c61a0
[tx-robot] updated from transifex 2021-01-25 02:20:41 +00:00
Nextcloud bot d602b047ca
[tx-robot] updated from transifex 2021-01-24 02:19:55 +00:00
Roeland Jago Douma 30af7ad53e 20.0.6
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-23 16:30:54 +01:00
Roeland Jago Douma 5663d3e463
Merge pull request #25244 from nextcloud/backport/25234/stable20
[stable20] Fix encoding issue with OC.Notification.show
2021-01-23 10:47:29 +01:00
Nextcloud bot 6cc8c337dc
[tx-robot] updated from transifex 2021-01-23 02:20:14 +00:00
Morris Jobke 653db23551
Merge pull request #25278 from nextcloud/backport/25274/stable20
[stable20] Do not obtain userFolder of a federated user
2021-01-22 16:18:47 +01:00
Morris Jobke f7d13f1613
Merge pull request #25276 from nextcloud/backport/25128/stable20
[stable20] extend ILDAPProvider to allow reading arbitrairy ldap attributes for users
2021-01-22 16:15:21 +01:00
Roeland Jago Douma b249abc624 Do not obtain userFolder of a federated user
Federated shares are somewhat special. So we can't move the files from
the main user and we should try to get it from the intialized root
already.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-22 13:40:25 +00:00
Roeland Jago Douma 1a1beafeeb
Merge pull request #25261 from nextcloud/backport/25255/stable20
[stable20] also use storage copy when dav copying directories
2021-01-22 14:37:01 +01:00
blizzz b6d175a609 adjust since
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

Co-authored-by: Morris Jobke <hey@morrisjobke.de>
2021-01-22 13:33:33 +00:00
Robin Appelman b38149edaa extend ILDAPProvider to allow reading arbitrairy ldap attributes for users
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-22 13:33:32 +00:00
Morris Jobke 24a7772d6c
Merge pull request #25263 from nextcloud/backport/25253/stable20
[stable20] silence log message
2021-01-22 10:24:53 +01:00
Nextcloud bot f92289f5a7
[tx-robot] updated from transifex 2021-01-22 02:20:07 +00:00
Arthur Schiwon 9d8b597605 silence log message
- this appears too often (in some configurations) when qualifying group
members which do not meet the criteria

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-21 21:09:57 +00:00
Robin Appelman e0598117e1 also use storage copy when dav copying directories
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-21 21:08:58 +00:00
Joas Schilling b7d8b3a72d
Fix encoding issue with OC.Notification.show
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-21 10:43:20 +01:00
Nextcloud bot 5f5203a285
[tx-robot] updated from transifex 2021-01-21 02:20:47 +00:00
Morris Jobke 1dcfab0d76
Merge pull request #25225 from nextcloud/backport/24600/stable20
[stable20] Update handling of user credentials
2021-01-20 14:57:48 +01:00
Joas Schilling fcdbd4eca3
Fix potential empty result
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-20 10:11:56 +01:00
Joas Schilling 85781d8d36
Compare and store the login name via the event
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-20 09:09:15 +01:00
Roeland Jago Douma ae48e26d37
Merge pull request #25219 from nextcloud/backport/25216/stable20
[stable20] Bump CA bundle
2021-01-20 09:08:14 +01:00
Joas Schilling 0c7f0a7d89
Also fix the username when it changed
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-20 09:08:08 +01:00
Joas Schilling 8e3e1f9a32
Don't save credentials of another user
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-20 09:08:00 +01:00
Nextcloud bot 37f3195c6b
[tx-robot] updated from transifex 2021-01-20 02:21:05 +00:00
Roeland Jago Douma 3c1a9a5e66 Bump CA bundle
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-19 21:56:28 +00:00
Roeland Jago Douma 0855173ae1
Merge pull request #25203 from nextcloud/version/20.0.6/RC1
20.0.6 RC1
2021-01-19 14:52:34 +01:00
Roeland Jago Douma c442f49162
20.0.6 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-19 13:48:34 +01:00
Morris Jobke 8395819a93
Merge pull request #25199 from nextcloud/update-3rdparty
[stable20] Update 3rdparty after Archive_Tar
2021-01-19 13:41:50 +01:00
Joas Schilling 31b704038a
Update 3rdparty after Archive_Tar
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-19 13:05:00 +01:00
Roeland Jago Douma 18d43a012b
Merge pull request #25190 from nextcloud/backport/25181/stable20
[stable20] Update CRL due to revoked gravatar.crl
2021-01-19 09:35:00 +01:00
Roeland Jago Douma b04d566c89
Merge pull request #25193 from nextcloud/backport/25186/stable20
[stable20] Don't log keys on checkSignature
2021-01-19 09:34:49 +01:00
Nextcloud bot f94215a58e
[tx-robot] updated from transifex 2021-01-19 02:20:55 +00:00
Joas Schilling aa309afc59 Don't log keys on checkSignature
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-18 21:26:01 +00:00
Morris Jobke 55da2dce39 Update CRL due to revoked gravatar.crl
https://github.com/nextcloud/app-certificate-requests/pull/362

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-01-18 19:25:13 +00:00
Morris Jobke 2c643d7b9f
Merge pull request #25178 from nextcloud/backport/25176/stable20
[stable20] Add "composer.lock" for acceptance tests to git
2021-01-18 13:33:33 +01:00
Daniel Calviño Sánchez 26a6e46eb3 Add "composer.lock" for acceptance tests to git
As "composer.lock" was not versioned the dependencies had to be resolved
everytime that the acceptance tests run, which took some precious time.

Besides that the dependency versions were also tightened for better
control.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-01-18 11:52:30 +00:00
Nextcloud bot 63a8349e1b
[tx-robot] updated from transifex 2021-01-18 02:19:40 +00:00
Roeland Jago Douma 71f57e0b5e
Merge pull request #25152 from nextcloud/backport/25138/stable20
[stable20] Fix comparison of PHP versions
2021-01-17 21:16:34 +01:00
Nextcloud bot 6ef830a7d9
[tx-robot] updated from transifex 2021-01-17 02:20:08 +00:00
Nextcloud bot 996d6ce994
[tx-robot] updated from transifex 2021-01-16 02:20:15 +00:00
Morris Jobke 8103fd98d1
Update psalm baseline to allow warning of implicit cast to string
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-01-15 16:55:47 +01:00
Morris Jobke 5ec9ce0bf1
Merge pull request #25146 from nextcloud/backport/25142/stable20
[stable20] Do not redirect to logout after login
2021-01-15 16:45:36 +01:00
Damien Goutte-Gattat 151abca91c Fix comparison of PHP versions
Use the builtin function `version_compare` to check an app's
compatibility with the available PHP version, instead of reusing
the `OC\App\CompareVersion::isCompatible` method which is intended
to compare Nextcloud versions. PHP version strings do not always
necessarily follow the simple Major.Minor.Patch format used by
Nextcloud and therefore cannot be properly compared by that method.

Signed-off-by: Damien Goutte-Gattat <dgouttegattat@incenp.org>
2021-01-15 14:20:51 +00:00
Roeland Jago Douma 23f466fb10 Do not redirect to logout after login
This can happen when the session was killed due to a timeout. Then
logout was triggered. Nobody wants to login only to be logged out again.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-15 10:56:18 +00:00
Morris Jobke ac14e42b49
Merge pull request #25143 from nextcloud/backport/25141/stable20
[stable20] Add a hint about the direction of priority
2021-01-15 10:10:04 +01:00
Joas Schilling b07ff57b2b Add a hint about the direction of priority
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-15 08:49:19 +00:00
Morris Jobke 48eea6f74b
Merge pull request #25077 from nextcloud/backport/25034/stable20
[stable20] Make sure to do priority app upgrades first
2021-01-15 09:31:57 +01:00
Nextcloud bot 7c8d3709d9
[tx-robot] updated from transifex 2021-01-15 02:20:37 +00:00
blizzz 591c4fdd02
Merge pull request #25120 from nextcloud/backport/25036/stable20
[stable20] respect DB restrictions on number of arguments in statements and queries
2021-01-14 21:40:54 +01:00
Robin Appelman 6404627d0c adjust tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-14 16:33:13 +00:00
Robin Appelman e0d85ed9a8 dont offer to edit external config settings if we can't edit them
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-14 16:33:13 +00:00
Arthur Schiwon 26f77d879e
CI satisfaction
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-14 13:16:02 +01:00
Arthur Schiwon 5dd7665f21
silence psalm false positive
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-14 13:04:02 +01:00
Arthur Schiwon b82efbdee5
DB: warn on parameter number constraints
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-14 13:03:54 +01:00
Arthur Schiwon b0ea654653
respect DB limits limit per statement and query
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-14 13:03:36 +01:00
Roeland Jago Douma 1ef9a3f039
Merge pull request #25102 from nextcloud/version/20.0.5/final
20.0.5
2021-01-14 10:22:39 +01:00
Nextcloud bot 631f28eb74
[tx-robot] updated from transifex 2021-01-14 02:19:15 +00:00
Nextcloud bot 4ca0fb2282
[tx-robot] updated from transifex 2021-01-13 02:20:30 +00:00
Roeland Jago Douma 5f56b1ac67
20.0.5
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-12 23:01:01 +01:00
Roeland Jago Douma a5738cc175
Merge pull request #25064 from nextcloud/version/20.0.5/rc2
20.0.5 RC2
2021-01-12 11:51:22 +01:00
Roeland Jago Douma e89d4a4f40
Merge pull request #25076 from nextcloud/backport/25016/stable20
[stable20] Add setup check to verify that the used DB version is still supported…
2021-01-12 11:50:52 +01:00
Morris Jobke 349c9ef74f
Add setup check to verify that the used DB version is still supported in the next major release
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-01-12 10:18:19 +01:00
Nextcloud bot 6a1d17312c
[tx-robot] updated from transifex 2021-01-12 02:20:00 +00:00
Julius Härtl f17033fa12 Make sure to do priority app upgrades first
Otherwise those apps might not be loaded when the others app migrations
are running. The previous loading of authentication apps in the upgrade
step never worked as it just returns in maintenance mode

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-11 13:46:47 +00:00
Morris Jobke 4ee41a7679
Merge pull request #25074 from nextcloud/backport/25069/stable20
[stable20] Don't remove assignable column for now
2021-01-11 14:26:14 +01:00
Vincent Petry c96f3e830a Don't remove assignable column for now
It causes side effects.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-01-11 12:19:54 +00:00
Roeland Jago Douma 6594ca4bbb
Merge pull request #25066 from nextcloud/psalm/noid/update-psalm-baseline
[stable20] Update psalm-baseline.xml
2021-01-11 10:46:08 +01:00
Morris Jobke 08f6444474
Merge pull request #25019 from nextcloud/backport/24999/stable20
[stable20] Set the user language when adding the footer
2021-01-11 10:24:17 +01:00
Morris Jobke 568d46a3a5
[stable20] Update psalm-baseline.xml
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-01-11 10:18:58 +01:00
Morris Jobke 43ec70d43b
Merge pull request #25035 from nextcloud/backport/25017/stable20
[stable20] Fix clearing the label of a share
2021-01-11 10:02:21 +01:00
Roeland Jago Douma f71f9a32ec
20.0.5 RC2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-11 09:41:58 +01:00
Nextcloud bot a156722ece
[tx-robot] updated from transifex 2021-01-11 02:20:05 +00:00
Nextcloud bot c7b9964b4a
[tx-robot] updated from transifex 2021-01-10 02:22:51 +00:00
Nextcloud bot df3ba2fde2
[tx-robot] updated from transifex 2021-01-09 02:21:47 +00:00
Daniel Calviño Sánchez b078f28029 Fix clearing the label of a share
When the label is being edited its value is stored in "newLabel", and
the original label is shown only if "newLabel" is not set. However, as
it was checked against any falsy value instead of only undefined when
the label was cleared and thus it has an empty value the original label
was shown instead.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-01-08 17:30:17 +00:00
Roeland Jago Douma f66d88c85a
Merge pull request #25030 from nextcloud/backport/25029/stable20
[stable20] Change defaultapp in config.sample.php to dashboard to improve docs and align it to source code
2021-01-08 12:17:42 +01:00
rakekniven a4e6c44581 Change defaultapp to dashboard
Result of discussion at https://help.nextcloud.com/t/enable-dashboard-on-per-user-basis/94872

Code reference:
db86bea18c/lib/private/legacy/OC_Util.php (L1106)

Signed-off-by: rakekniven <mark.ziegler@rakekniven.de>
2021-01-08 09:10:24 +00:00
Julius Härtl 36388085f6
Set the user language when adding the footer
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-08 10:09:41 +01:00
Nextcloud bot 0e20ce014a
[tx-robot] updated from transifex 2021-01-08 02:22:41 +00:00
Roeland Jago Douma 6d5f5bfa61
Merge pull request #24960 from nextcloud/version/20.0.5/rc1
20.0.5 RC1
2021-01-07 20:43:19 +01:00
Roeland Jago Douma 102a6fedd0
Merge pull request #25009 from nextcloud/backport/25001/stable20
[stable20] Fix column name to check prior to deleting
2021-01-07 19:46:56 +01:00
blizzz b2cfd43b8f
Merge pull request #25013 from nextcloud/backport/25011/stable20
[stable20] Catch throwable instead of exception
2021-01-07 18:14:22 +01:00
Roeland Jago Douma cb958df63a Catch throwable instead of exception
The error that gets thrown can also be a type error etc. So we should
properly catch the Throwable.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-07 14:25:15 +00:00
Morris Jobke 8295cc90d8
Merge pull request #24590 from nextcloud/backport/24358/stable20
[stable20] use storage copy implementation when doing dav copy
2021-01-07 14:08:17 +01:00
Joas Schilling 1142b17cda Fix column name to check prior to deleting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-07 12:33:01 +00:00
Morris Jobke fb0067a777
Merge pull request #24592 from nextcloud/backport/23912/stable20
[stable20] use in objectstore copy
2021-01-07 13:28:10 +01:00
Roeland Jago Douma 7db2278ef9
Merge pull request #24716 from nextcloud/backport/24402/stable20
[stable20] LDAP: fix inGroup for memberUid type of group memberships
2021-01-07 13:17:59 +01:00
Roeland Jago Douma 0f395d8527
Merge pull request #24976 from nextcloud/backport/24961/stable20
[stable20] Fix unreliable ViewTest
2021-01-07 13:17:29 +01:00
Roeland Jago Douma 2dbf407f7e
Merge pull request #24963 from nextcloud/backport/24829/stable20
[stable20] Add migration for oc_share_external columns
2021-01-07 13:16:56 +01:00
Roeland Jago Douma 2fa3f24d04
Merge pull request #24997 from nextcloud/backport/24988/stable20
[stable20] Set the JSCombiner cache if needed
2021-01-07 09:56:06 +01:00
Vincent Petry 9c7d733c01
Also add missing oc_share_external.share_type column
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-01-07 09:39:10 +01:00
Vincent Petry 9c54467c94
Adjust share_external table
Add column "parent" if missing.
Drop column "lastscan" if exists.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-01-07 09:38:59 +01:00
Roeland Jago Douma 9e6cc31f60
Merge pull request #24972 from nextcloud/backport/24964/stable20
[stable20] Don't throw a 500 when importing a broken ics reminder file
2021-01-07 09:08:11 +01:00
Roeland Jago Douma 82fab4d621 Set the JSCombiner cache if needed
Found while debugging a customer setup. They had to flush their Redis.
Hence the info was no longer there. Since they also used S3 this meant
requesting the files over and over on template render. Which on S3 is
not cheap.

Now we just write it back if we can't get it from the cache in the first
place. So that the next run has it cached properly again.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-07 07:43:25 +00:00
Nextcloud bot 2f1c118d3b
[tx-robot] updated from transifex 2021-01-07 02:21:21 +00:00
Morris Jobke da150d49be
Merge pull request #24990 from nextcloud/backport/24986/stable20
[stable20] Update root.crl due to revocation of transmission.crt
2021-01-06 21:06:29 +01:00
Morris Jobke 9fb384cf7c Update root.crl due to revocation of transmission.crt
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-01-06 19:44:38 +00:00
blizzz cb610c9b31
Merge pull request #24760 from nextcloud/backport/24703/stable20
[stable20] enables the file name check also to match name of mountpoints
2021-01-06 09:54:44 +01:00
Nextcloud bot bf0bbc0846
[tx-robot] updated from transifex 2021-01-06 02:20:12 +00:00
blizzz 25143fc87b
Merge pull request #24763 from nextcloud/backport/24515/stable20
[stable20] fixes sharing to group ids with characters that are being url encoded
2021-01-05 23:35:26 +01:00
Arthur Schiwon f34202190c
fixes sharing to group ids /w chars that are being url encoded, carddav
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-05 18:54:15 +01:00
Arthur Schiwon b4434833af
fix finding of groups with decodable chars in their id via DAV
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-05 18:54:15 +01:00
Arthur Schiwon 3ce013fa14
fixes sharing to group ids with characters that are being url encoded
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-01-05 18:54:15 +01:00
Julius Härtl 8d9fa73371
Properly handle result when copying with failure and throw in tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-05 16:57:51 +01:00
Julius Härtl 865e4ab0ec Fix writeStream mocking
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-05 14:51:40 +00:00
Julius Härtl 2f6b2b6fa4
Merge pull request #24878 from nextcloud/backport/stable20/23017 2021-01-05 15:14:21 +01:00
Joas Schilling 088418fd91 Don't throw a 500 when importing a broken ics reminder file
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-01-05 11:59:40 +00:00
Julius Härtl 24053edf8a
Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-05 10:05:52 +01:00
Julius Härtl 61b574b130
Show unique displayname context in the user share list entries
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-05 10:05:52 +01:00
Julius Härtl 3666754be7
Show unique displayname context in the sharing input
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-05 10:05:52 +01:00
Julius Härtl defdaf1e18
Make share results distinguishable if there are more than one with the exact same display name
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-01-05 10:05:52 +01:00
Roeland Jago Douma f96e680fdf
20.0.5 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-05 09:20:14 +01:00
Nextcloud bot 48865b30f5
[tx-robot] updated from transifex 2021-01-05 02:21:38 +00:00
Nextcloud bot 13e5504dcc
[tx-robot] updated from transifex 2021-01-04 02:21:58 +00:00
Nextcloud bot ddeb7446cb
[tx-robot] updated from transifex 2021-01-03 02:21:07 +00:00
Nextcloud bot 85d5a815fc
[tx-robot] updated from transifex 2021-01-01 02:21:13 +00:00
Nextcloud bot 0943120949
[tx-robot] updated from transifex 2020-12-31 02:27:13 +00:00
Roeland Jago Douma f16746e902
Merge pull request #24876 from nextcloud/backport/24874/stable20
[stable20] Avoid huge exception argument logging
2020-12-30 10:51:01 +01:00
Nextcloud bot f00e1e778a
[tx-robot] updated from transifex 2020-12-30 02:19:19 +00:00
Roeland Jago Douma 6762e616f5 Avoid huge exception argument logging
In some cases it might happen that you have an argument that deep down
somewhere has an array with a lot of entries (think thousands). Now
before we would just happily print them all. Which would fill the log.

Now it will just print the first 5. And add a line that there are N
more.

If you are on debug level we will still print them all.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-29 10:46:56 +00:00
Nextcloud bot af77e89e67
[tx-robot] updated from transifex 2020-12-29 02:20:01 +00:00
Roeland Jago Douma d96555c413
Merge pull request #24854 from nextcloud/backport/24833/stable20
[stable20] Fix total upload size overwritten by next upload
2020-12-28 14:19:49 +01:00
Julius Härtl 530e637e35
Merge pull request #24853 from nextcloud/backport/24832/stable20
[stable20] Make oc_files_trash.auto_id a bigint
2020-12-28 12:40:20 +01:00
Roeland Jago Douma fc327ee9de
Merge pull request #24728 from nextcloud/backport/24721/stable20
[stable20] Cancel user search requests to avoid duplicate results being added
2020-12-28 11:27:30 +01:00
Roeland Jago Douma 1935993e47
Merge pull request #24709 from nextcloud/backport/24683/stable20
[stable20] [Fix #24682]: ensure federation cloud id is retruned if FN property not found
2020-12-28 11:24:29 +01:00
Daniel Calviño Sánchez d4b1ba7785 Fix total upload size overwritten by next upload
The upload progress is based on the "totalToUpload" variable. However,
as the variable is set when an upload is submitted, if another upload is
submitted before the previous one finished the upload progress only took
into account the size of the new upload (although the upload itself
worked fine; the files of the new submitted upload are added to the
active one). Now "totalToUpload" is either increased or set depending on
whether an upload is active or not.

Note that although "data.total" holds the total size of the files being
uploaded "totalToUpload" needs to be used in "fileuploadprogressall"
instead; "totalToUpload" is calculated when the upload is submitted, but
since 7c4c5fe6ae the actual upload of the files, and thus updating the
value of "data.total", may be deferred until the parent folders were
created.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-12-28 10:21:13 +00:00
Roeland Jago Douma afbc2d5cd3
Merge pull request #24826 from nextcloud/backport/24824/stable20
[stable20] Catch the error on heartbeat update
2020-12-28 10:47:29 +01:00
Vincent Petry 558cf72a28 Make oc_files_trash.auto_id a bigint
Adjusted migration.
Added to occ command to update existing tables.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-12-28 09:46:02 +00:00
Nextcloud bot fab7e85bbb
[tx-robot] updated from transifex 2020-12-28 02:19:20 +00:00
Nextcloud bot 3cb3125c4c
[tx-robot] updated from transifex 2020-12-27 02:24:54 +00:00
Nextcloud bot 421244e777
[tx-robot] updated from transifex 2020-12-26 02:19:59 +00:00
Nextcloud bot 1524e7b431
[tx-robot] updated from transifex 2020-12-24 02:20:20 +00:00
Roeland Jago Douma 72c5356a55 Catch the error on heartbeat update
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-12-23 11:48:21 +00:00
Roeland Jago Douma e97a0c1307
Merge pull request #24823 from nextcloud/backport/24730/stable20
[stable20] Fix IPv6 localhost regex
2020-12-23 09:33:42 +01:00
Nextcloud bot f4a2a7302e
[tx-robot] updated from transifex 2020-12-23 02:20:21 +00:00
J0WI d749f515de Fix IPv6 localhost regex
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2020-12-22 20:55:55 +00:00
John Molakvoæ 680e03c628
Merge pull request #24806 from nextcloud/backport/24604/stable20
[stable20] Allow to force rename a conflicting calendar
2020-12-22 10:59:08 +01:00
Roeland Jago Douma d5f4ca6e74
Merge pull request #24798 from nextcloud/backport/24796/stable20
[stable20] Actually set the TTL on redis set
2020-12-22 09:10:47 +01:00
John Molakvoæ (skjnldsv) 4fa34362a3 Allow to force rename a conflicting calendar
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-12-22 07:35:23 +00:00
Nextcloud bot 1b19cc5bae
[tx-robot] updated from transifex 2020-12-22 02:19:17 +00:00
Guillaume Virlet a8f60c82e4 [Fix #24682]: ensure federation cloud id is retruned if FN property not found
Signed-off-by: Guillaume Virlet <github@virlet.org>
2020-12-21 22:59:43 +01:00
Roeland Jago Douma 34b8e42bf0 Actually set the TTL on redis set
Else well the keys remain for ever and ever.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-21 13:51:18 +00:00
Roeland Jago Douma db22392fd0
Merge pull request #24792 from nextcloud/backport/23319/stable20
[stable20] Fix Argon2 descriptions
2020-12-21 13:32:55 +01:00
Roeland Jago Douma 98c235a436
Merge pull request #24751 from nextcloud/backport/24737/stable20
[stable20] Also unset the other possible unused paramters
2020-12-21 11:43:49 +01:00
Roeland Jago Douma 2a91d7837b
Merge pull request #24791 from nextcloud/backport/24715/stable20
[stable20] Limit getIncomplete query to one row
2020-12-21 10:32:28 +01:00
MichaIng d8ff570971 Fix Argon2 descriptions
The threads option for the password_hash function does not define the maximum allowed number of CPU threads to be used by the hashing algorithm but the exact number of threads that is used.

Similarly the memory_cost option for the password_hash function does not define the maximum allowed memory to be used by the hashing algorithm, but the exact amount of memory that is used by the hashing table. The minimum value is 8 KiB per thread.

The time_cost option for the password_hash function does not define the allowed time in seconds, but the number of iterations for the hash function.

If the minimum values are understood, the minimum values are used instead.

Signed-off-by: MichaIng <micha@dietpi.com>
2020-12-21 08:26:34 +00:00
Daniel Kesselberg d22ff8624b Limit getIncomplete query to one row
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-12-21 08:17:46 +00:00
Nextcloud bot 98c22e2c77
[tx-robot] updated from transifex 2020-12-21 02:19:05 +00:00
Nextcloud bot bfb8c07724
[tx-robot] updated from transifex 2020-12-20 02:19:39 +00:00
Nextcloud bot b47bbce075
[tx-robot] updated from transifex 2020-12-19 02:19:47 +00:00
Arthur Schiwon b432a9f5da consider local external storages, too
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-18 10:48:46 +00:00
Arthur Schiwon c0c88e3bd8 enables the file name check also to match name of mountpoints
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-18 10:48:42 +00:00
Roeland Jago Douma 5de0c3c5f7 Also unset the other possible unused paramters
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-18 07:41:00 +00:00
Nextcloud bot 5ea6481355
[tx-robot] updated from transifex 2020-12-18 02:20:20 +00:00
Nextcloud bot 8363530294
[tx-robot] updated from transifex 2020-12-17 02:20:29 +00:00
Julius Härtl 979331baae Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-12-16 13:16:04 +00:00
Julius Härtl 824b10956f Only let the infinite handler fetch more results if the limit is hit
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-16 12:59:40 +00:00
Julius Härtl d2e63cd31a Cancel user search requests to avoid duplicate results being added
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-16 12:59:38 +00:00
Roeland Jago Douma 6c8cd720b8
Merge pull request #24714 from nextcloud/backport/24713/stable20
[stable20] Do not include non-required scripts on the upgrade page
2020-12-16 08:55:17 +01:00
Nextcloud bot 257e3dd50b
[tx-robot] updated from transifex 2020-12-16 02:20:51 +00:00
Arthur Schiwon 270eb6c593 php-cs happyness
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-15 21:37:58 +00:00
Arthur Schiwon 43c6bc134e add unit tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-15 21:37:56 +00:00
Arthur Schiwon cca1fb792b check number of members after potential resolving of rdns
- the type check is not necessary anymore for the return type of
  _groupMembers()

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-15 21:37:54 +00:00
Arthur Schiwon 213464afca use faster and less hungry foreach
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-15 21:37:51 +00:00
Tobias Perschon 250c7535cd moved the array_reduce to fix large search case
also added some additional comments and renamed some vars to make it intuitive whats in them

Signed-off-by: Tobias Perschon <tobias@perschon.at>
2020-12-15 21:37:49 +00:00
Arthur Schiwon d818975d84 flatten result array as expected by following code
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-12-15 21:37:47 +00:00
Julius Härtl 55d7848384 Do not include non-required scripts on the upgrade page
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-15 20:42:07 +00:00
Roeland Jago Douma 9305a00414
Merge pull request #24546 from nextcloud/backport/24543/stable20
[stable20] Don't log params of imagecreatefromstring
2020-12-15 16:36:00 +01:00
Roeland Jago Douma e6e6725024
Merge pull request #24697 from nextcloud/backport/24589/stable20
[stable20] Add tel, note, org and title search
2020-12-15 09:17:30 +01:00
Roeland Jago Douma f0c2807cac
Merge pull request #24698 from nextcloud/backport/24416/stable20
[stable20] Check php compatibility of app store app releases
2020-12-15 09:15:17 +01:00
Nextcloud bot 2304f1ef10
[tx-robot] updated from transifex 2020-12-15 02:22:22 +00:00
Roeland Jago Douma d50e8d85c7
Merge pull request #24693 from nextcloud/version/20.0.4/final
20.0.4
2020-12-14 19:40:45 +01:00
Christoph Wurst 0ae5c8dd3b Check php compatibility of app store app releases
Apps might increase the minimum php version requirement, in which case
an update could break the app or even the whole instance. We must not
install those releases, or better, don't even show them for
update/installation. This extends the app fetcher code to filter out the
releases that are not installable.

The filter respects minimum and maximum requirements. E.g. apps that are
still only released for php7.3 won't show up for php7.4 instances. This
behavior is new but if an app lists an explicit version requirement,
then we ought to repect that.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-14 17:22:10 +00:00
John Molakvoæ (skjnldsv) d44c6aa524 Add tel, note, org and title search
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-12-14 16:41:55 +00:00
Roeland Jago Douma 176a07895b
Bump bundle
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-14 15:54:56 +01:00
Roeland Jago Douma 556a14f283
20.0.4
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-14 15:36:19 +01:00
Roeland Jago Douma 24fe3ee439
Merge pull request #24653 from nextcloud/backport/23044/stable20
[stable20] Handle owncloud migration to latest release
2020-12-14 15:35:00 +01:00
Roeland Jago Douma 209d4c0ff8
Merge pull request #24654 from nextcloud/backport/24247/stable20
[stable20] Use string for storing a OCM remote id
2020-12-14 15:31:12 +01:00
Roeland Jago Douma 8fc1ab560a
Merge pull request #24636 from nextcloud/fix/noid/dashboard-without-accessibility
[stable20] Avoid dashboard crash when accessibility app is not installed
2020-12-14 15:14:52 +01:00
Julius Härtl be0936daed
Bump dav app version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:14:07 +01:00
Julius Härtl 5dbc94bfad
Add missing table columns
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:52 +01:00
Julius Härtl b84bdb1080
Make sure the migrations table schema is always checked
Signed-off-by: Julius Härtl <jus@bitgrid.net>

Revert "Make sure the migrations table schema is always checked"

This reverts commit 258955ef738a52d9da2ac2fe59466e6093d7e9bc.

Set current vendor during upgrade and perform migrations table change if needed

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:52 +01:00
Julius Härtl 0207be4c79
Change further columns to be nullable with a default of 0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:52 +01:00
Julius Härtl 368dac3ba3
Properly migrate from new owncloud avatar location
as the files are not scanned we cannot use the OCP\Files api

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:52 +01:00
Julius Härtl 7c3d3c58d3
Dump autoloader
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:52 +01:00
Julius Härtl 7ce95a4fcb
Readd repair steps that are relevant when migrating from ownCloud
This reverts commit d9b1492e03.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:52 +01:00
Julius Härtl de369fdeaa
Handle oc_dav_properties migration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:51 +01:00
Julius Härtl df44acfa07
Add missing index on oc_cards and rename if it previously existed
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:51 +01:00
Julius Härtl 8e72e8c622
Move authtoken login_name column to varchar(255)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:51 +01:00
Julius Härtl 7c9fcc434f
Add missing mount_id index
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:51 +01:00
Julius Härtl 1fe7836c8d
Drop attributes on oc_share table
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:51 +01:00
Julius Härtl 3373eff308
Drop assignable systemtag column
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:51 +01:00
Julius Härtl a35cba722d
Drop oc_dav_job_status table
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:50 +01:00
Vincent Petry d9bdb5b94b
Adjust execution duration to 0
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-12-14 11:12:50 +01:00
Vincent Petry 958f7968e3
Adjust further columns
- calendarsubscriptions.lastmodified -> not null
- external_config.value -> allow null

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-12-14 11:12:50 +01:00
Vincent Petry 1fef301334
Adjust calendars.components to 64 chars
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-12-14 11:12:50 +01:00
Julius Härtl ab40a7c585
Allow major/minor match for owncloud version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:50 +01:00
Julius Härtl 934f8a17f9
Avoid checking for brute force protection capabilities when upgrading
This might happen a releases that doesn't have this table yet

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:50 +01:00
Julius Härtl 7f1f8963e4
Fix missing authtoken scope
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:50 +01:00
Julius Härtl 5d2988e3bd
Drop fk constraints on locks table
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:49 +01:00
Julius Härtl cc9825c70d
Allow upgrade from oc 10.5
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:12:49 +01:00
Julius Härtl 5c0e8c648b
Bump app versions for federatedfilesharing and files_sharing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:11:56 +01:00
Julius Härtl 05919a27b8
Update psalm baseline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:11:00 +01:00
Julius Härtl e155943a3b
Resolve conflict in addShare parameters
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:11:00 +01:00
Julius Härtl 0bbc0dde10
Update psalm baseline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:59 +01:00
Julius Härtl ace90466d6
Add temporary test for migrating int to string
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:59 +01:00
Julius Härtl 3cf7041c94
Adjust default
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:59 +01:00
Julius Härtl ff544a2880
Do not register share menu in cases where the files app has not been registered yet
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:59 +01:00
Julius Härtl e97897cfa5
Get rid of database.xml in files_sharing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:59 +01:00
Julius Härtl 58f6238af2
Move columns to bigint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:58 +01:00
Julius Härtl 40a8bb53b1
Migrate files_sharing to migrations and move remote_id to a string in share_external
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:58 +01:00
Julius Härtl 62ecb57c7f
Move remoteId of remote reshares to string
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-14 11:10:58 +01:00
Nextcloud bot adc00127ab
[tx-robot] updated from transifex 2020-12-14 02:19:37 +00:00
Nextcloud bot cbad21aa2c
[tx-robot] updated from transifex 2020-12-13 02:18:42 +00:00
Nextcloud bot c676da759e
[tx-robot] updated from transifex 2020-12-12 02:18:57 +00:00
Julien Veyssier ec02f6f3a5 avoid dashboard js crash when accessibility app is not installed
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-12-11 12:22:27 +00:00
Roeland Jago Douma dec23ed599
Merge pull request #24649 from nextcloud/dependabot/npm_and_yarn/stable20/ini-1.3.7
[Security] Bump ini from 1.3.5 to 1.3.7
2020-12-11 13:05:42 +01:00
Nextcloud bot 62a7ec3d28
[tx-robot] updated from transifex 2020-12-11 02:20:27 +00:00
dependabot-preview[bot] 7f755a0718
[Security] Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7. **This update includes a security fix.**
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 17:45:20 +00:00
Nextcloud bot 4a51875a73
[tx-robot] updated from transifex 2020-12-10 02:20:27 +00:00
Roeland Jago Douma 9c053c6660
Merge pull request #24621 from nextcloud/version/20.0.3/final
20.0.3
2020-12-09 20:24:07 +01:00
Roeland Jago Douma 7830a6dd14
20.0.3
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-09 20:05:53 +01:00
Nextcloud bot f413277fe1
[tx-robot] updated from transifex 2020-12-09 02:19:57 +00:00
Nextcloud bot c007cd01e9
[tx-robot] updated from transifex 2020-12-08 02:20:33 +00:00
Roeland Jago Douma 0576ca83fd
Merge pull request #24584 from nextcloud/version/20.0.3/RC2
20.0.3 RC2
2020-12-07 21:20:14 +01:00
Robin Appelman 694032c54c use in objectstore copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-12-07 16:07:21 +00:00
Robin Appelman 6790369cfe use storage copy implementation when doing dav copy
instead of using the sabredav fallback (which does a read+write stream copy)

this greatly speeds up dav copies

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-12-07 16:07:06 +00:00
Roeland Jago Douma b9011c1d1d
Merge pull request #24563 from nextcloud/backport/24552/stable20
[stable20] Remember me is not an app_password
2020-12-07 11:52:17 +01:00
Roeland Jago Douma d73ba6595a
20.0.3 RC2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-07 11:44:46 +01:00
Roeland Jago Douma 519ce1add9
Merge pull request #24582 from nextcloud/backport/24581/stable20
[stable20] Do not load nonexisting setup.js
2020-12-07 11:16:12 +01:00
Julius Härtl 6e2dc3e4f0 Do not load nonexisting setup.js
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-07 08:20:02 +00:00
Nextcloud bot b8e8bc5ddd
[tx-robot] updated from transifex 2020-12-07 02:20:52 +00:00
Nextcloud bot 80ef7e14da
[tx-robot] updated from transifex 2020-12-06 02:19:39 +00:00
Nextcloud bot 4a2abf3d49
[tx-robot] updated from transifex 2020-12-05 02:19:00 +00:00
Morris Jobke 607e902070 Fix typo
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-04 15:56:29 +00:00
Roeland Jago Douma e6947bd6ca Remember me is not an app_password
While technically they are stored the same. This session variable is
used to indicate that a user is using an app password to authenticate.
Like from a client. Or when having it generated automatically.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-04 15:56:24 +00:00
Christoph Wurst d22fb14d92
Merge pull request #24557 from nextcloud/bugfix/noid/force-composerv1/stable20
[stable20] dont use system composer for autoload checker
2020-12-04 16:17:26 +01:00
Roeland Jago Douma 233d4164a6
Merge pull request #24553 from nextcloud/backport/24550/stable20
[stable20] Generate a new session id if the decrypting the session data fails
2020-12-04 16:09:52 +01:00
Roeland Jago Douma c7cb8eb007
Merge pull request #24556 from nextcloud/revert/stable20/21090
Revert "Do not read certificate bundle from data dir by default"
2020-12-04 15:09:22 +01:00
Julius Härtl 55b9e554ec
Force composer v1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-04 14:27:35 +01:00
Robin Appelman c55197791a
cleanup after autoloader generation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-12-04 14:27:14 +01:00
Robin Appelman ec041c3ad5
dont use system composer for autoload checker
this ensures that the same composer version is used by everyone (and ci)

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-12-04 14:27:03 +01:00
Morris Jobke b1e9752169
Revert "Do not read certificate bundle from data dir by default"
This reverts commit 18b0d753f2.
2020-12-04 13:37:10 +01:00
Roeland Jago Douma f52337e8be Generate a new session id if the decrypting the session data fails
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-04 11:55:31 +00:00
Vincent Petry d4d009fc8e Don't log params of imagecreatefromstring
To prevent flooding the log with actual image data.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-12-04 09:45:29 +00:00
Nextcloud bot a53871f629
[tx-robot] updated from transifex 2020-12-04 02:19:34 +00:00
Morris Jobke 84250221d7
Merge pull request #24472 from nextcloud/version/20.0.3/RC1
20.0.3 RC1
2020-12-03 13:49:47 +01:00
Roeland Jago Douma 8f2ba14e0a
20.0.3 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-03 13:11:53 +01:00
Morris Jobke 55a76ab3e2
Merge pull request #24534 from nextcloud/3rdparty/stable20/archive_tar
[3rdparty][security] Archive TAR to 1.4.11
2020-12-03 13:11:12 +01:00
Roeland Jago Douma ce953d1571
Merge pull request #24532 from nextcloud/backport/24409/stable20
[stable20] Also run repair steps when encryption is disabled but a legacy key is present
2020-12-03 12:22:41 +01:00
Roeland Jago Douma a91320ff0c
[3rdparty][security] Archive TAR to 1.4.11
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-03 11:28:41 +01:00
Morris Jobke 1a041f7ac7
Merge pull request #24530 from nextcloud/fix/stable20-nextcloud-log-normalizer
[stable20] Replace abandoned log normalizer with our fork
2020-12-03 11:14:46 +01:00
Morris Jobke 73f854dc0a
Merge pull request #24531 from nextcloud/backport/24516/stable20
[stable20] Add icon to user limit notification
2020-12-03 11:14:03 +01:00
Roeland Jago Douma ff0d6c1cb9
Merge pull request #24527 from nextcloud/backport/24519/stable20
[stable20] Fix vsprint parameter
2020-12-03 11:00:56 +01:00
Julius Härtl 14d95cb2e3 Also handle legacy cipher support when encryption is disabled but an old master key is present
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-03 09:56:59 +00:00
Morris Jobke 4c5662a658 Improve wording
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-03 09:00:56 +00:00
Morris Jobke 3d132f293f Add icon to user limit notification
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-03 09:00:54 +00:00
Christoph Wurst 67e5af58ed
Replace abandoned log normalizer with our fork
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-03 09:50:10 +01:00
Roeland Jago Douma f6c24133a4
Merge pull request #24517 from nextcloud/backport/24459/stable20
[stable20] Only execute plain mimetype check for directories and do the fallback…
2020-12-03 09:37:44 +01:00
Roeland Jago Douma 428f0ec151 Fix vsprint parameter
%2\$; is not valid. On php7 this is just ignored but on php8 it gives an
error. %2\$s; works.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-03 08:20:04 +00:00
Nextcloud bot 6093d1bcc1
[tx-robot] updated from transifex 2020-12-03 02:20:01 +00:00
Morris Jobke 1181058d18 Only execute plain mimetype check for directories and do the fallback only for non-directories
Ref #23096

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-02 20:02:27 +00:00
Morris Jobke 54ab2b9f28
Merge pull request #24513 from nextcloud/backport/24501/stable20
[stable20] set mountid for personal external storage mounts
2020-12-02 20:50:08 +01:00
Roeland Jago Douma bdbb60a67b
Merge pull request #24509 from nextcloud/backport/23257/stable20
[stable20] Fix file size computation on 32bit platforms
2020-12-02 20:03:24 +01:00
Robin Appelman 987cd0d5ed set mountid for personal external storage mounts
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-12-02 18:50:58 +00:00
Roeland Jago Douma 4d68c618e3
Merge pull request #24511 from nextcloud/backport/23278/stable20
[stable20] Allow subscription to indicate that a userlimit is reached
2020-12-02 19:47:18 +01:00
Morris Jobke a8780debd3 Add notification for user limit
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-02 17:24:44 +00:00
Morris Jobke d2fd49c461 Allow subscription to indicate that a userlimit is reached
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-02 17:24:42 +00:00
Greta 02427cd76f
Merge pull request #24491 from nextcloud/backport/24376/stable20
[stable20] fix loading mtime of new file in conflict dialog in firefox
2020-12-02 16:45:17 +01:00
aler9 dc7eb53a8f Fix file size computation on 32bit platforms
Signed-off-by: aler9 <46489434+aler9@users.noreply.github.com>
2020-12-02 15:27:30 +00:00
Morris Jobke e8b284e807
Merge pull request #24502 from nextcloud/backport/24499/stable20
[stable20] Harden setup check for TLS version if host is not reachable
2020-12-02 16:14:12 +01:00
Morris Jobke 03956c5862 Harden setup check for TLS version if host is not reachable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-12-02 13:27:43 +00:00
Robin Appelman 1f6e5c6d8e fix loading mtime of new file in conflict dialog in firefox
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-12-02 07:37:19 +00:00
Nextcloud bot 2a0c0ea584
[tx-robot] updated from transifex 2020-12-02 02:20:20 +00:00
Morris Jobke 4949429567
Merge pull request #24477 from nextcloud/backport/24189/stable20
[stable20] Set frame-ancestors to none if none are filled
2020-12-01 23:44:35 +01:00
Morris Jobke 41cc1f7360
Merge pull request #24478 from nextcloud/backport/24186/stable20
[stable20] Move the password fiels of chaging passwords to post
2020-12-01 23:29:35 +01:00
Morris Jobke 74f734dc97
Merge pull request #24479 from nextcloud/backport/24188/stable20
[stable20] Move the global password for files external to post
2020-12-01 23:28:33 +01:00
Morris Jobke 910fecf8f8
Merge pull request #24483 from nextcloud/backport/24094/stable20
[stable20] Only attempt to move to trash if a file is not in appdata
2020-12-01 23:20:48 +01:00
Roeland Jago Douma 3fb850940f
Set frame-ancestors to none if none are filled
frame-ancestors doesn't fall back to default-src. So when we apply a
very restricted CSP we should make sure to set it to 'none' and not
leave it empty.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-01 22:23:13 +01:00
Roeland Jago Douma 3e982a3346
Move the password fiels of chaging passwords to post
* This is not actually used with GET (obviously). But else some scanners
  trip on it

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-01 22:23:02 +01:00
Roeland Jago Douma c24534866b
Move the global password for files external to post
Again more false positives in some scanners

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-01 22:22:33 +01:00
Julius Härtl 7d786a4e37
Only attempt to move to trash if a file is not in appdata
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-01 22:20:11 +01:00
Morris Jobke 86da5013c8
Merge pull request #24325 from nextcloud/backport/24103/stable20
[stable20] Only check path for being accessible when the storage is a object home
2020-12-01 11:04:22 +01:00
Roeland Jago Douma ebf046bc15
Merge pull request #24462 from nextcloud/backport/24460/stable20
[stable20] Use correct l10n source in files_sharing JS code
2020-12-01 08:48:16 +01:00
Nextcloud bot 965614f3e2
[tx-robot] updated from transifex 2020-12-01 02:19:56 +00:00
Morris Jobke fba0145bef Use correct l10n source in files_sharing JS code
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-30 19:30:28 +00:00
Morris Jobke d56300a86c
Merge pull request #24455 from nextcloud/backport/24451/stable20
[stable20] external storages: save group ids not display names in configuration
2020-11-30 17:22:42 +01:00
Morris Jobke 4a2b72dcbe
Merge pull request #24453 from nextcloud/backport/24449/stable20
[stable20] Store scss variables under a different prefix for each theming config version
2020-11-30 16:54:02 +01:00
Arthur Schiwon a6d288e1ac save group ids not display names in configuration
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-11-30 14:49:11 +00:00
Julius Härtl 7d57b2c317 Store scss variables under a different prefix for each theming config version
The main issue with using the general theming- prefix is that with APCu caching
the cache is not shared between processes, so when trying to reset the cache
through the CLI, e.g. when updating the theming config the old cache is never
invalidated.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-30 14:24:28 +00:00
Morris Jobke 6916240d98
Merge pull request #24446 from nextcloud/backport/23652/stable20
[stable20] Fix public calendars shared to circles
2020-11-30 11:24:38 +01:00
Morris Jobke b1f3f5d7cb
Merge pull request #24443 from nextcloud/backport/24357/stable20
[stable20] Make sure we add new line between vcf groups exports
2020-11-30 10:24:27 +01:00
Daniel Kesselberg 6635dbb3bd A valid user session is required for circles.
The circles app depends on a valid userId. A public shared calender might be viewed by guests without a user session. For such requests the principal is null.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-11-30 09:01:53 +00:00
Daniel Kesselberg 761ee14fd7 Update phpdoc for circleToPrincipal
as the QueryException is already catched inside circleToPrincipal.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-11-30 09:01:51 +00:00
John Molakvoæ (skjnldsv) 8e262d9e59 Make sure we add new line between vcf groups exports
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-11-30 08:13:46 +00:00
Nextcloud bot c1e993333e
[tx-robot] updated from transifex 2020-11-30 02:19:54 +00:00
Nextcloud bot 7ea0f2b936
[tx-robot] updated from transifex 2020-11-29 02:19:21 +00:00
Nextcloud bot 7ad1420e61
[tx-robot] updated from transifex 2020-11-28 02:18:33 +00:00
Christoph Wurst f4d1f01209
Merge pull request #24387 from nextcloud/backport/24382/stable20
[stable20] Properly encode path when fetching inherited shares
2020-11-27 09:44:45 +01:00
Nextcloud bot 80bf325bb0
[tx-robot] updated from transifex 2020-11-27 02:18:26 +00:00
blizzz e78989fd8a
Merge pull request #24391 from nextcloud/backport/24375/stable20
[stable20] formatting remote sharer should take protocol, path into account
2020-11-26 22:13:43 +01:00
npmbuildbot-nextcloud[bot] ad79aa3f32 Compile assets
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-26 14:11:40 +00:00
Joas Schilling 61f1c12fb1
Merge pull request #24333 from nextcloud/backport/24315/stable20
[stable20] avoid empty null default with value that will be inserted anyways
2020-11-26 14:50:27 +01:00
Arthur Schiwon 8e8861f716 formatting remote sharer should take protocol, path into account
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-11-26 13:12:11 +00:00
Julius Härtl 72a3f5cd31 Properly encode path when fetching inherited shares
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-26 12:39:57 +00:00
Nextcloud bot 921f9441d3
[tx-robot] updated from transifex 2020-11-26 02:18:57 +00:00
blizzz 76671c2a46
Merge pull request #24377 from nextcloud/backport/24374/stable20
[stable20] Use proper bundles for files client and fileinfo
2020-11-25 20:38:29 +01:00
Julius Härtl 49bd82292c Files client and info bundles are always loaded so we don't need to load them again
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-25 16:11:36 +00:00
Roeland Jago Douma 2003995e32
Merge pull request #24353 from nextcloud/backport/24162/stable20
[stable20] set the display name of federated sharees from addressbook
2020-11-25 16:18:23 +01:00
Roeland Jago Douma ae9fd3e225
Merge pull request #24367 from nextcloud/backport/24363/stable20
[stable20] Catch storage not available in versions expire command
2020-11-25 16:17:34 +01:00
Arthur Schiwon 4e6f0df777
send expected format of cloud id
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-11-25 14:16:08 +01:00
Christoph Wurst 2ff42f6b1a Catch storage not available in versions expire command
External storage with session credentials is not accessible without a
user session, hence background jobs and CLI commands can't work with
them. The previously unhandled exception causes logged errors in the
nextcloud log. This patch catches the specific exception and logs it as
warnings. So for a production instance the error won't spam their logs
for this non-recoverable and technically unsolvable error if the minimum
log level is set to the default of 3 (error).

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-11-25 10:40:21 +00:00
Nextcloud bot 940e8c3a99
[tx-robot] updated from transifex 2020-11-25 02:19:04 +00:00
Arthur Schiwon c9814c716a
set the display name of federated sharees from addressbook
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-11-24 22:52:31 +01:00
John Molakvoæ 6e279bf6c6
Merge pull request #24346 from nextcloud/backport/24341/stable20
[stable20] Fix the config key on the sharing expire checkbox
2020-11-24 18:38:46 +01:00
John Molakvoæ bd4931032e
Merge pull request #24342 from nextcloud/backport/24331/stable20
[stable20] Fix contacts menu position and show uid as a tooltip
2020-11-24 18:37:23 +01:00
Julius Härtl a1a178eb53 Fix contacts menu position and show uid as a tooltip
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-24 14:55:21 +00:00
Christoph Wurst 4b9d8c75ec Fix the config key on the sharing expire checkbox
We don't use `shareapi_internal_enforce_expire_date` anywhere.
`shareapi_enforce_internal_expire_date` is the one we want.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-11-24 14:54:02 +00:00
Arthur Schiwon 4850019fcd avoid empty null default with value that will be inserted anyways
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-11-24 10:31:27 +00:00
Julius Härtl 866e273599 Only check path for being accessible when the storage is a object home
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-24 09:14:39 +00:00
Nextcloud bot 56cee9e405
[tx-robot] updated from transifex 2020-11-24 02:19:05 +00:00
Morris Jobke e375010589
Merge pull request #24297 from nextcloud/backport/stable20/23023
[stable20] Delete files that exceed trashbin size immediately
2020-11-23 21:06:33 +01:00
Christoph Wurst fcaa75858c
Merge pull request #24311 from nextcloud/fix/stable20-sabre-parse-xml-errors
[stable20] Update sabre/xml to fix XML parsing errors
2020-11-23 14:40:34 +01:00
Christoph Wurst 55d9834c95
Update sabre/xml to fix XML parsing errors
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-11-23 14:00:19 +01:00
Julius Härtl e241f14f24
Delete files that exceed trashbin size immediately
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-23 09:11:53 +01:00
Nextcloud bot aaa9c0ba6c
[tx-robot] updated from transifex 2020-11-23 02:18:57 +00:00
Nextcloud bot ac8bb267a3
[tx-robot] updated from transifex 2020-11-22 02:18:39 +00:00
Nextcloud bot 9a0c85d0cd
[tx-robot] updated from transifex 2020-11-21 02:19:27 +00:00
Morris Jobke 347aaf23b2
Merge pull request #24249 from nextcloud/backport/24241/stable20
[stable20] Harden EncryptionLegacyCipher a bit
2020-11-20 22:42:17 +01:00
Morris Jobke e772fd6409
Merge pull request #24263 from nextcloud/backport/24108/stable20
[stable20] Use correct year for generated birthdays events
2020-11-20 22:41:51 +01:00
Sven Strickroth 5aac8a1b34 Use correct year for generated birthdays events
'X-APPLE-OMIT-YEAR' is not always present, at least iOS 12.4 uses the hard coded date of 1604 (the start of the gregorian calendar) when the year is unknown.

cf. https://forums.bitfire.at/topic/2050/bday-without-year-for-vcard-3-0-if-server-drops-property-x-apple-omit-year and https://gitlab.com/CardBook/CardBook/-/issues/586

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2020-11-20 20:47:56 +00:00
Morris Jobke cb2bed6a8a
Merge pull request #24258 from nextcloud/backport/24242/stable20
[stable20] Update ScanLegacyFormat.php
2020-11-20 21:31:17 +01:00
Morris Jobke 72ba3dfe3c
Merge pull request #24259 from nextcloud/backport/24257/stable20
[stable20] Simple typo in comments
2020-11-20 21:29:15 +01:00
Carlos Ferreira a8ba2df8e6 Simple typo in comments 2020-11-20 19:45:23 +00:00
essys 8d44a1006a Update ScanLegacyFormat.php
Fixed a small typo on line 99.
2020-11-20 19:42:37 +00:00
Morris Jobke e0e3334fc2
Merge pull request #24230 from nextcloud/backport/24007/stable20
[stable20] allow selecting multiple columns with SELECT DISTINCT
2020-11-20 14:27:27 +01:00
Morris Jobke 7fa352b28c
Merge pull request #24228 from nextcloud/backport/24135/stable20
[stable20] Fix nextcloud logo in email notifications misalignment
2020-11-20 14:23:00 +01:00
Roeland Jago Douma 06286f8c0e Harden EncryptionLegacyCipher a bit
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-20 13:18:25 +00:00
Roeland Jago Douma 322b0ab2b3
Merge pull request #24239 from nextcloud/backport/24203/stable20
[stable20] Use regex when searching on single file shares
2020-11-20 10:15:04 +01:00
Roeland Jago Douma 3839c8449a
Merge pull request #24231 from nextcloud/backport/23757/stable20
[stable20] use file name instead of path in 'not allowed to share' message
2020-11-20 10:04:54 +01:00
Roeland Jago Douma 10086b3f43
Merge pull request #24232 from nextcloud/backport/24211/stable20
[stable20] Fix setting images through occ for theming
2020-11-20 10:04:30 +01:00
Roeland Jago Douma 37df208bd7 Limit shared cache search if it is just a file
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-20 07:27:47 +00:00
Nextcloud bot 78b62b6b65
[tx-robot] updated from transifex 2020-11-20 02:20:19 +00:00
Julius Härtl c8e9694a69 Fix setting images through occ for theming
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-19 22:18:55 +00:00
Robin Appelman f65a89dd07 use file name instead of path in 'not allowed to share' message
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-11-19 21:44:42 +00:00
Robin Appelman 22bf656e02 allow selecting multiple columns with SELECT DISTINCT
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-11-19 21:41:13 +00:00
medcloud 7ccf700432 Fix #23357
Signed-off-by: medcloud <42641918+medcloud@users.noreply.github.com>
2020-11-19 20:38:54 +00:00
Roeland Jago Douma 8021bacbdc
Merge pull request #24181 from nextcloud/backport/24102/stable20
[stable20] Check quota of subdirectories when uploading to them
2020-11-19 10:40:11 +01:00
Roeland Jago Douma 2c5a1fd636
Merge pull request #24196 from nextcloud/backport/24098/stable20
[stable20] circleId too short in some request
2020-11-19 10:09:45 +01:00
Roeland Jago Douma d0417e0d1f
Merge pull request #24212 from nextcloud/backport/24207/stable20
[stable20] missing level in ScopedPsrLogger
2020-11-19 09:50:32 +01:00
Maxence Lange 8c398453ac missing level
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2020-11-19 07:40:38 +00:00
Nextcloud bot 6a4ced077e
[tx-robot] updated from transifex 2020-11-19 02:20:21 +00:00
Roeland Jago Douma 96f99a40f5
Merge pull request #24172 from nextcloud/version/20.0.2/final
20.0.2
2020-11-18 20:35:11 +01:00
Maxence Lange d4ea5fd63f circleId too short in some request
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2020-11-18 07:57:22 +00:00
Nextcloud bot c03db79569
[tx-robot] updated from transifex 2020-11-18 02:18:47 +00:00
Roeland Jago Douma cc42b5e502
Merge pull request #24183 from nextcloud/revert-24178-backport/24098/stable20
Revert "[stable20] circleId too short in some request"
2020-11-17 21:53:22 +01:00
Julius Härtl 8c7030e0bd
Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-17 19:47:56 +01:00
Julius Härtl 892bb8cae5
Check for target folder available quota when uploading
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-11-17 15:33:54 +01:00
Julius Härtl b134107316
Fetch quota with files propfind
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-17 15:33:54 +01:00
Christoph Wurst 1941f1b1a8
Revert "[stable20] circleId too short in some request" 2020-11-17 14:20:02 +01:00
Christoph Wurst f06f9a91b3
Merge pull request #24178 from nextcloud/backport/24098/stable20
[stable20] circleId too short in some request
2020-11-17 13:31:57 +01:00
Maxence Lange 6db68e9ba3 circleId too short in some request
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2020-11-17 10:28:24 +00:00
Roeland Jago Douma 35c29b46ea
20.0.2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-17 09:38:45 +01:00
Nextcloud bot 51d8134e50
[tx-robot] updated from transifex 2020-11-17 02:18:36 +00:00
Roeland Jago Douma f1da86e7a1
Merge pull request #24091 from nextcloud/version/20.0.2/rc2
20.0.2 RC2
2020-11-16 20:55:05 +01:00
Daniel Calviño Sánchez cdbb2b3e4b
Merge pull request #24159 from nextcloud/backport/24069/stable20
[stable20] Fix default internal expiration date
2020-11-16 17:46:37 +01:00
Daniel Calviño Sánchez 34a143b05f Add integration tests for creating shares with default expiration dates
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:17:01 +00:00
Daniel Calviño Sánchez bf844567a5 Reset app configs by deleting the values instead of setting the defaults
This avoids the need to keep the default values in the integration tests
in sync with the code, and also makes possible to reset values with
"dynamic" defaults (defaults that depend on other values).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:17:00 +00:00
Daniel Calviño Sánchez 1464ace788 Add unit tests for "validateExpirationDateInternal"
They were copied and adjusted as needed from the tests for
"validateExpirationDate".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:59 +00:00
Daniel Calviño Sánchez 182e28bfbc Fix default internal expiration date
The default expiration date for internal shares was set from the default
link expiration date instead of the internal one.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:57 +00:00
Daniel Calviño Sánchez 709abd4fc7 Add explicit time to test date for clarity
This shows in a clearer way that the expected expiration date is the
original one, but without time.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:56 +00:00
Daniel Calviño Sánchez 731cce4542 Add unit test for expiration date with date and with default
This adds back what was being actually tested in the unit test fixed in
the previous commit.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:55 +00:00
Daniel Calviño Sánchez 115a988cd2 Fix unit test for expiration date without date but with default
The expiration date was explicitly given, so it was not testing what it
should. Moreover, "link_defaultExpDays" needs to be mapped when testing
the default value (even if it will just fallback to the value of
"shareapi_expire_after_n_days").

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:53 +00:00
Daniel Calviño Sánchez eaa43d22e2 Fix unit test method name
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:52 +00:00
Daniel Calviño Sánchez 4e418100bf Fix unit test for verifying enforced valid expiration date.
The enforced expiration date was not actually enabled, as for that
"shareapi_default_expire_date" needs to be explicitly set to "yes".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:51 +00:00
Daniel Calviño Sánchez 20c72ac03e Fix unit test for verifying enforced expire date too far in the future
The test should fail if no exception was thrown, and no exception was
thrown due to a missing configuration parameter. However, the use of
"addToAssertionCount(1)" made the test pass even if no exception was
thrown and, therefore, to silently fail.

Now the missing configuration parameter was added and the test will fail
if the expected exception is not thrown.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:49 +00:00
Daniel Calviño Sánchez 22357a72e5 Add unit tests to enforce a relaxed default share expiration date
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:48 +00:00
Daniel Calviño Sánchez b75c171ee2 Remove wrong and misleading comment
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:47 +00:00
Daniel Calviño Sánchez d6ba3b2f7c Remove extra spaces
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:45 +00:00
Daniel Calviño Sánchez 76bbbca220 Fix typo in variable name
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:44 +00:00
Daniel Calviño Sánchez 446c90879f Fix typos in method names
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-16 13:16:42 +00:00
Roeland Jago Douma b14ec966c1
Merge pull request #24156 from nextcloud/backport/24112/stable20
[stable20] Set up FS before querying storage info in settings
2020-11-16 14:14:43 +01:00
John Molakvoæ f4d92d2e3a
Merge pull request #24153 from nextcloud/dependencies/dompurify 2020-11-16 13:12:40 +01:00
Roeland Jago Douma bca0633e2b
Merge pull request #24147 from nextcloud/backport/24146/stable20
[stable20] Don't throw on SHOW VERSION query
2020-11-16 12:08:56 +01:00
Vincent Petry 32758894a4 Set up FS before querying storage info in settings
The personal info section of the personal settings is querying the
storage quota information. For this it requires the FS to be setup which
is not always guaranteed.

This fixes an issue where refreshing the settings page would cause it to
fail after Redis caches are full. It is likely that when Redis cache is
populated, some code path is initializing the FS, so it works so far.
But when the cache is populated, that code path is skipped so the FS is
not guaranteed to be setup...

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-11-16 11:06:35 +00:00
Julius Härtl 889d162ab7
Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-16 11:36:35 +01:00
Julius Härtl ccc845b1c4
Bump dompurify to 2.2.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-16 11:30:59 +01:00
Joas Schilling 7a821da1bc
Merge pull request #24079 from nextcloud/backport/24053/stable20
[stable20] Make is_user_defined nullable so we can store false on oracle
2020-11-16 11:23:17 +01:00
John Molakvoæ 18f5ad1a34
Merge pull request #24114 from nextcloud/backport/24096/stable20
[stable20] Convert the card resource to a string if necessary
2020-11-16 10:15:18 +01:00
Joas Schilling f10327b245 Don't throw on SHOW VERSION query
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-16 08:59:47 +00:00
Joas Schilling 9b694e59f5
Bump versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-16 08:54:30 +01:00
Joas Schilling d334dd1455
Merge pull request #24106 from nextcloud/backport/24085/stable20
[stable20] Register new command db:add-missing-primary-keys
2020-11-16 08:50:01 +01:00
Nextcloud bot 9abc65c573
[tx-robot] updated from transifex 2020-11-16 02:19:33 +00:00
Nextcloud bot c9001eb7ef
[tx-robot] updated from transifex 2020-11-15 02:19:11 +00:00
Nextcloud bot 66b6ccc69e
[tx-robot] updated from transifex 2020-11-14 02:19:47 +00:00
Christoph Wurst 07861fe52d Convert the card resource to a string if necessary
Apparently the fetched column can be a string or resource. Hence we have
to catch the resource type and convert it to a string.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-11-13 18:18:24 +00:00
MichaIng e0dbfdf575 Register new command db:add-missing-primary-keys
Introduced with: d5df033ede

Signed-off-by: MichaIng <micha@dietpi.com>
2020-11-13 14:41:51 +00:00
Roeland Jago Douma bf95044a29
20.0.2 RC2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-13 08:38:57 +01:00
Roeland Jago Douma 8ebafbb7dc
Merge pull request #24081 from nextcloud/backport/24066/stable20
[stable20] Fix default internal expiration date enforce
2020-11-13 08:37:54 +01:00
John Molakvoæ (skjnldsv) 680853d077 Fix default internal expiration date enforce
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-13 06:31:16 +00:00
Nextcloud bot 584cfa4e2e
[tx-robot] updated from transifex 2020-11-13 02:19:35 +00:00
Morris Jobke ca363131d9 Dump autoloader
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-12 20:46:59 +00:00
Joas Schilling 1def6f92ee Also make direct_edit.accessed nullable
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 20:46:57 +00:00
Joas Schilling 32d7459d8b Make is_user_defined nullable so we can store false on oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 20:46:55 +00:00
Roeland Jago Douma 105fc60eb1
Merge pull request #23989 from nextcloud/version/20.0.2/rc1
20.0.2 RC1
2020-11-12 21:08:19 +01:00
Roeland Jago Douma e61e3f9eb3
20.0.2 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-12 19:57:13 +01:00
Morris Jobke 2e3637f826
Merge pull request #24049 from nextcloud/backport/23882/stable20
[stable20] Run unit tests against oracle
2020-11-12 19:54:36 +01:00
Morris Jobke 9497dca2b0
Update psalm-baseline
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-12 19:38:06 +01:00
Robin Appelman 388b3107eb
fix migration of oc_credentials table
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-11-12 15:56:34 +01:00
Joas Schilling d09a22069f
Update baseline, I'm sorry
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:52 +01:00
Joas Schilling dabed84bd4
Fix unique key in test table
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:52 +01:00
Joas Schilling 07c28f1576
Fix naming of jobs and steps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:52 +01:00
Joas Schilling cd76043691
Fix CS
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:52 +01:00
Joas Schilling bb52911d16
Create primary keys on all tables and add a command to create the afterwards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:52 +01:00
Joas Schilling f3c183b6c3
Replace the credentials table with one that can have empty user
Primary key columns on Oracle can not have empty strings

Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:52 +01:00
Joas Schilling dee42027ed
Don't try to update on NotNullConstraintViolationException, only on unique or foreign key
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling a66591ee79
Fix comparing the empty string for global credentials
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling 97b0402984
Empty string is returned as null, but empty string in file cache is the root and exists
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling b6ce689e25
Fix public calendars as they are stored with null on oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling 8ff0523c3d
Make sure columns with an empty default are nullable for Oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling fcef3c0e8a
Fix "Invalid fetch style: 12" on Oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling 48c2f6d5a0
Make the test pass on repeating calls
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling e3b3ff6d43
Skip the insertIfNotExists() tests on Oracle because it doesn't work with clob
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:51 +01:00
Joas Schilling 3ec48cd59f
Easier debugging and spell fix
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:50 +01:00
Joas Schilling f58ffadb34
Use a different column for the primary key as we can not insert it on oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-12 12:57:50 +01:00
Julius Härtl a35b0956f1
Add github action for oci8
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-12 12:57:50 +01:00
Nextcloud bot 140068e91d
[tx-robot] updated from transifex 2020-11-12 02:19:35 +00:00
Roeland Jago Douma a0f95cd1d3
Merge pull request #24058 from nextcloud/backport/24054/stable20
[stable20] Manually iterate over calendardata when oracle is used
2020-11-11 21:54:55 +01:00
Roeland Jago Douma 8270aed206
Merge pull request #24050 from nextcloud/backport/23915/stable20
[stable20] Use png icons in caldav reminder emails
2020-11-11 21:27:53 +01:00
Julius Härtl bf0dbffe81 Manually iterate over calendardata when oracle is used
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-11 16:12:25 +00:00
Morris Jobke bcb6a71548
Merge pull request #24044 from nextcloud/backport/24042/stable20
[stable20] Fix sharing tab state not matching resharing admin settings
2020-11-11 13:45:46 +01:00
Richard Steinmetz b82b3b0140 Use png icons in caldav reminder emails
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2020-11-11 12:38:21 +00:00
Daniel Calviño Sánchez 487c603f95 Add integration tests for default share permissions
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-11 11:51:28 +01:00
Daniel Calviño Sánchez f58174fdd8 Add acceptance tests for reshares by link when resharing is disabled
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-11 11:51:28 +01:00
Daniel Calviño Sánchez 7d7169fdbe Add acceptance tests for reshares when resharing is disabled
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-11 11:51:28 +01:00
Daniel Calviño Sánchez bafab8af2d Disable share input for a received share if resharing is not allowed
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-11 11:51:26 +01:00
Daniel Calviño Sánchez c034dff408 Do not show "Can reshare" in the menu if resharing is not allowed
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-11-11 11:51:18 +01:00
Joas Schilling 60ca39bb53
Merge pull request #24033 from nextcloud/backport/23993/stable20
[stable20] Don't leave cursors open
2020-11-11 10:56:53 +01:00
Nextcloud bot 3d3cebc321
[tx-robot] updated from transifex 2020-11-11 02:20:23 +00:00
Joas Schilling 19816fe85f Don't leave cursors open when tests fail
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-10 14:18:02 +00:00
Morris Jobke 6a5b921284
Merge pull request #23950 from nextcloud/backport/23928/stable20
[stable20] Fix repair mimetype step to not leave stray cursors
2020-11-10 13:46:15 +01:00
Morris Jobke cecf579e81
Update psalm-baseline.xml to accept new errors
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-10 13:43:51 +01:00
Joas Schilling 5f3d62600e
Fix repair mimetype step to not leave stray cursors
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-10 10:27:09 +01:00
Morris Jobke 73c2ad293b
Merge pull request #23998 from nextcloud/backport/23937/stable20
[stable20] Use query builder instead of OC_DB in OC\Files\*
2020-11-10 10:26:04 +01:00
Morris Jobke bf6aa03eb3
Merge pull request #23995 from nextcloud/backport/23741/stable20
[stable20] Unlock when promoting to exclusive lock fails
2020-11-10 10:16:34 +01:00
Roeland Jago Douma 8edc29bfef
Merge pull request #23955 from nextcloud/backport/23938/stable20
[stable20] Replace some usages of OC_DB in OC\Share\* with query builder
2020-11-10 08:59:54 +01:00
John Molakvoæ 7032c880f0
Merge pull request #24012 from nextcloud/backport/23981/stable20
[stable20] Fix js search in undefined ocs response
2020-11-10 07:00:19 +01:00
Nextcloud bot 34fae53598
[tx-robot] updated from transifex 2020-11-10 02:18:56 +00:00
John Molakvoæ (skjnldsv) 49676d909b Fix js search in undefined ocs response
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-09 19:28:15 +00:00
Roeland Jago Douma c1e43efa35
Merge pull request #24001 from nextcloud/backport/23889/stable20
[stable20] Shortcut to avoid file system setup when generating the logo URL
2020-11-09 19:55:38 +01:00
Roeland Jago Douma 0d52ba6239
Merge pull request #24004 from nextcloud/backport/23999/stable20
[stable20] Remove old legacy scripts references
2020-11-09 19:38:21 +01:00
John Molakvoæ 559acf83ed Removed config.js 2020-11-09 16:01:06 +00:00
John Molakvoæ 750455399d Remove old legacy search script 2020-11-09 16:01:05 +00:00
Morris Jobke 1a26b63246
Merge pull request #23996 from nextcloud/backport/23982/stable20
[stable20] Make sure root storage is valid before checking its size
2020-11-09 15:37:24 +01:00
Morris Jobke cc777911c2 Shortcut to avoid file system setup when generating the logo URL
If an SVG is requested and the app config value for logoMime is set then the logo is there. Otherwise we need to check it and maybe also generate a PNG from the SVG (that's done in getImage() which needs to be called then).

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-09 13:13:31 +00:00
Morris Jobke 3459db0472
Merge pull request #23992 from nextcloud/backport/23574/stable20
[stable20] Fix link share label placeholder not showing
2020-11-09 14:10:41 +01:00
Joas Schilling adcc942553 Use query builder instead of OC_DB in OC\Files\*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-09 11:01:09 +00:00
John Molakvoæ (skjnldsv) 0c4297cee9 Make sure root storage is valid before checking its size
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-11-09 10:05:54 +00:00
Ashod Nakashian 7298d037b2 Unlock when promoting to exclusive lock fails
In certain cases changeLock to EXCLUSIVE fails
and throws LockedException. This leaves the
file locked as SHARED in file_put_contents,
which prevents retrying (because on second
call file_put_contents takes another SHARED
lock on the same file, and changeLock doesn't
allow more than a single SHARED lock to promote
to EXCLUSIVE).

To avoid this case, we catch the LockedException
and unlock before re-throwing.

Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2020-11-09 10:03:15 +00:00
Morris Jobke 20885847c8
Merge pull request #23971 from nextcloud/backport/23936/stable20
[stable20] Use query builder instead of OC_DB in trashbin
2020-11-09 10:27:29 +01:00
Morris Jobke f28c436fd5
Check in failing psalm checks
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-09 10:21:05 +01:00
Morris Jobke 40c4d24e31
Merge pull request #23975 from nextcloud/backport/23923/stable20
[stable20] Fix greatest/least order for oracle
2020-11-09 10:17:11 +01:00
Daniel Kesselberg a01da78f1d
Add explicit typecast for $value.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-11-09 10:13:36 +01:00
Gary Kim baf06b9894 Fix link share label placeholder not showing
Signed-off-by: Gary Kim <gary@garykim.dev>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-09 08:29:05 +00:00
Nextcloud bot 0624ca3527
[tx-robot] updated from transifex 2020-11-09 02:19:02 +00:00
Nextcloud bot d34145f942
[tx-robot] updated from transifex 2020-11-08 02:18:33 +00:00
Joas Schilling b3dfa9290d Update parameters
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 15:57:47 +00:00
Joas Schilling 2e3cffc53b Make sure Oracle always casts everything in the best way
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 15:57:46 +00:00
Joas Schilling c71cc6824e Use Query builder function
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 15:57:45 +00:00
Joas Schilling d111e88d4c Fix order of GREATEST for Oracle
As per https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions060.htm
Oracle uses the first value to cast the rest or the values.
So when the first value is a plain int, instead of doing the math,
it will cast the expression to int and continue with a potential 0.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 15:57:44 +00:00
Roeland Jago Douma 71de05f775
Merge pull request #23951 from nextcloud/backport/23922/stable20
[stable20] Improve query type detection
2020-11-07 10:49:06 +01:00
Joas Schilling ef22580a32 Use query builder instead of OC_DB in trashbin
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 09:21:46 +00:00
Roeland Jago Douma bac92bb814
Merge pull request #23954 from nextcloud/backport/23943/stable20
[stable20] Fix iLike() falsely turning escaped % and _ into wildcards
2020-11-07 09:18:23 +01:00
Roeland Jago Douma a5c6abc93a
Merge pull request #23948 from nextcloud/backport/23940/stable20
[stable20] Skip already loaded apps in loadApps
2020-11-07 07:59:52 +01:00
Nextcloud bot c9f3f2563f
[tx-robot] updated from transifex 2020-11-07 02:19:08 +00:00
Joas Schilling 73a09a4f54 Replace some usages of OC_DB in OC\Share\* with query builder
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-06 21:43:46 +00:00
Joas Schilling 3a7e2fbff1 Fix iLike() falsely turning escaped % and _ into wildcards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-06 21:29:48 +00:00
Morris Jobke f8b550dab7
Merge pull request #23935 from nextcloud/backport/23921/stable20
[stable20] Fix casting of integer and boolean on Oracle
2020-11-06 22:24:31 +01:00
Joas Schilling 3ffd31353c Improve query type detection
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-06 21:20:44 +00:00
Morris Jobke a2c9915ca4
Merge pull request #23924 from nextcloud/backport/23920/stable20
[stable20] Bearer must be in the start of the auth header
2020-11-06 22:10:01 +01:00
Roeland Jago Douma ef5cee12d1 Skip already loaded apps in loadApps
Otherwise you might end up calling a lot of functions unneeded.
And while the individual calls are cheap if you multiply them by 20k
they still get somewhat expensive.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-06 21:01:12 +00:00
Joas Schilling 990bb07002
Cast bool things to numbers as that is how they are stored in the database
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-06 13:36:57 +01:00
Joas Schilling 2b0b57d304 Fix casting to integer on Oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-06 10:42:15 +00:00
Roeland Jago Douma 93211e7ded
Merge pull request #23917 from nextcloud/backport/23887/stable20
[stable20] Do not emit UserCreatedEvent twice
2020-11-06 10:55:41 +01:00
Roeland Jago Douma c9bf32b454 Bearer must be in the start of the auth header
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-11-06 08:21:30 +00:00
Nextcloud bot 43a80714a7
[tx-robot] updated from transifex 2020-11-06 02:19:21 +00:00
Tobias Assmann 2b55a90ae4
fix: also remove use statement of UserCreatedEvent
Signed-off-by: Tobias Assmann <tobias.assmann@ecsec.de>
2020-11-05 23:08:14 +01:00
Tobias Assmann 6d1ecf2218
fix: no more translation from postCreateUser hook to UserCreatedEvent anymore, as event is already emitted in user manager
Signed-off-by: Tobias Assmann <tobias.assmann@ecsec.de>
2020-11-05 23:08:04 +01:00
Greta 7ad87937c8
Merge pull request #23902 from nextcloud/backport/23798/stable20
[stable20] Add default font size
2020-11-05 10:50:37 +01:00
GretaD 6787f5de50 Add default font size
Signed-off-by: GretaD <gretadoci@gmail.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-05 08:40:28 +00:00
Nextcloud bot 841801b9ac
[tx-robot] updated from transifex 2020-11-05 02:18:59 +00:00
Morris Jobke e30c80c490
Merge pull request #23894 from nextcloud/backport/23799/stable20-minimal
[stable20] fix potentially passing null to events where IUser is expected
2020-11-04 21:14:51 +01:00
Morris Jobke 5e4debcd98
Merge pull request #23899 from nextcloud/backport/23898/stable20
[stable20] Make user status styles scoped
2020-11-04 19:34:55 +01:00
Morris Jobke cea90b9dcb
Merge pull request #23900 from nextcloud/backport/23897/stable20
[stable20] Move help to separate stylesheet
2020-11-04 19:34:44 +01:00
Julius Härtl 2386f8e1cc Make user status styles scoped
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-04 14:51:48 +00:00
John Molakvoæ 54fd9bfecf
Merge pull request #23884 from nextcloud/backport/23097/stable20
[stable20] Restrict query when searching for versions of trashbin files
2020-11-04 15:40:32 +01:00
Julius Härtl 0d457ce76d Move help to separate stylesheet
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-04 14:34:33 +00:00
Arthur Schiwon 59f9183ea1
fix potentially passing null to events where IUser is expected
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-11-04 11:59:09 +01:00
Morris Jobke 54fb4c28c4
Merge pull request #23419 from nextcloud/backport/23350/stable20
[stable20] Inidicate preview availability in share api responses
2020-11-04 08:45:44 +01:00
Julius Härtl 07506dd10c Restrict query when searching for versions of trashbin files
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-04 07:32:47 +00:00
Julius Härtl ba201aace6
Merge pull request #23874 from nextcloud/backport/23866/stable20
[stable20] Fix grid view toggle in tags view
2020-11-04 08:28:55 +01:00
Nextcloud bot c14defb527
[tx-robot] updated from transifex 2020-11-04 02:19:13 +00:00
Richard Steinmetz 4baeaeccdb Indicate preview availability in share api responses
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-03 19:55:35 +00:00
Morris Jobke 28b4420797
Merge pull request #23858 from nextcloud/backport/23842/stable20
[stable20] UserStatus: clear status message if message is null
2020-11-03 20:41:11 +01:00
Morris Jobke 33c27e61c2 Fix grid view in tags view
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-03 19:25:40 +00:00
Morris Jobke cb31977ba6
Merge pull request #23850 from nextcloud/backport/23841/stable20
[stable20] ensure filepicker list is empty before populating
2020-11-03 10:47:11 +01:00
Morris Jobke 59df41170a
Merge pull request #23846 from nextcloud/backport/23839/stable20
[stable20] No need to check if there is an avatar available, because it is gener…
2020-11-03 10:46:41 +01:00
Simon Spannagel 9750efe5ab UserStatus: no message means clear status message. This fixes #23332
Signed-off-by: Simon Spannagel <simonspa@kth.se>
2020-11-03 09:31:05 +00:00
Nextcloud bot a81b901c71
[tx-robot] updated from transifex 2020-11-03 02:19:28 +00:00
Robin Appelman 773bc3b496 ensure filepicker list is empty before populating
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-02 20:20:07 +00:00
Morris Jobke 23d3586865 No need to check if there is an avatar available, because it is generated on the fly nowadays
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-02 18:10:23 +00:00
Roeland Jago Douma 7e1c26ebea
Merge pull request #23829 from nextcloud/backport/23267/stable20
[stable20] Remove bold font-weight and lower font-size for empty search box
2020-11-02 12:28:06 +01:00
Nextcloud bot 3b887153c4
[tx-robot] updated from transifex 2020-11-02 02:19:14 +00:00
Jacob Neplokh 633b760c6d Change font-weight and font-size for empty search
Signed-off-by: Jacob Neplokh <me@jacobneplokh.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-11-01 15:36:02 +00:00
Nextcloud bot d02186e985
[tx-robot] updated from transifex 2020-11-01 02:18:34 +00:00
Roeland Jago Douma d156a7c121
Merge pull request #23794 from nextcloud/backport/23788/stable20
[stable20] Only run phpunit when "php" changed
2020-10-31 08:49:39 +01:00
Nextcloud bot b1159294a8
[tx-robot] updated from transifex 2020-10-31 02:18:57 +00:00
Morris Jobke 7bf32677b8
Add script to old versions
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-30 13:37:49 +01:00
Joas Schilling 3f5d275e6d Also run for .sh and .json (when not package or package-lock)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-30 12:12:39 +00:00
Joas Schilling 0a7fef6272 Also run all tests when drone config is modified
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-30 12:12:39 +00:00
Joas Schilling 53c18b8c26 Only run phpunit when php, xml or test files are modified
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-30 12:12:38 +00:00
Christoph Wurst c099469ece
Merge pull request #23789 from nextcloud/backport/23742/stable20
[stable20] Type the event dispatcher listener callables with Psalm
2020-10-30 12:40:19 +01:00
Morris Jobke f2a0ba4b55
Merge pull request #23787 from nextcloud/backport/23783/stable20
[stable20] Fetch the logger and system config once for all query builder instances
2020-10-30 11:03:33 +01:00
Roeland Jago Douma 5e496cd2e8 Fix invalid usages of the new dispatcher
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-30 08:57:07 +00:00
Christoph Wurst 7ef3c95fa3 Type the event dispatcher listener callables with Psalm
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-30 08:57:06 +00:00
Morris Jobke 24e93bbba4 Fetch the logger and system config once for all query builder instances
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-30 06:40:43 +00:00
Nextcloud bot dac9c01eb5
[tx-robot] updated from transifex 2020-10-30 02:19:19 +00:00
Morris Jobke ebbb4857f1
Merge pull request #23779 from nextcloud/backport/23775/stable20
[stable20] Document the backend registered events of LDAP
2020-10-29 15:08:37 +01:00
Morris Jobke 0207d34d57 Document the backend registered events of LDAP
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-29 13:08:13 +00:00
Roeland Jago Douma fcd7bcfe2f
Merge pull request #23774 from nextcloud/backport/23762/stable20
[stable20] catch errors when closing file conflict dialog
2020-10-29 10:30:42 +01:00
Robin Appelman eb59fd2baa catch errors when closing file conflict dialog
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2020-10-29 09:10:33 +00:00
Morris Jobke 62f81da02e
Merge pull request #23759 from nextcloud/backport/23752/stable20
[stable20] inform the user when flow config data exceeds thresholds
2020-10-29 08:55:43 +01:00
Nextcloud bot 6f31880a63
[tx-robot] updated from transifex 2020-10-29 02:19:27 +00:00
Morris Jobke 2c69c7c863
Merge pull request #23763 from nextcloud/backport/23746/stable20
[stable20] Type the \OCP\IUserManager::callForSeenUsers closure with Psalm
2020-10-28 21:10:50 +01:00
Morris Jobke bce4ca7bf2
Merge pull request #23751 from nextcloud/backport/23744/stable20
[stable20] Type the \OCP\AppFramework\Services\IInitialState::provideLazyInitial…
2020-10-28 21:10:37 +01:00
Christoph Wurst c509410b1d Type the \OCP\IUserManager::callForSeenUsers closure with Psalm
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-28 19:08:14 +00:00
Arthur Schiwon e2577440b3 inform the user when flow config data exceeds thresholds
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-28 15:11:06 +00:00
Morris Jobke 9dbc227043
Merge pull request #23749 from nextcloud/backport/23743/stable20
[stable20] Type the \OCP\IUserManager::callForAllUsers closure with Psalm
2020-10-28 15:27:16 +01:00
Roeland Jago Douma 092f346d6e
Merge pull request #23753 from nextcloud/backport/23750/stable20
[stable20] Don't overwrite the event if we use it later
2020-10-28 15:19:56 +01:00
Roeland Jago Douma f14c0dec40 Don't overwrite the event if we use it later
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-28 13:41:38 +00:00
Christoph Wurst 29aa60d65a Type the \OCP\AppFramework\Services\IInitialState::provideLazyInitialState closure with Psalm
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-28 13:05:58 +00:00
Christoph Wurst adc1b28419 Type the \OCP\IUserManager::callForAllUsers closure with Psalm
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-28 12:16:45 +00:00
Morris Jobke 3869c235de
Merge pull request #23745 from nextcloud/backport/23723/stable20
[stable20] Also run the SabreAuthInitEvent for the main server
2020-10-28 13:13:18 +01:00
Roeland Jago Douma aa12dd403e Also run the SabreAuthInitEvent for the main server
else for example trusted servers breaks

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-28 08:10:21 +00:00
Morris Jobke ca4eaf9ab5
Merge pull request #23736 from nextcloud/backport/23721/stable20
[stable20] reset avatar cropper before showing
2020-10-28 08:49:49 +01:00
Morris Jobke 21e9ec1f08
Merge pull request #23733 from nextcloud/backport/23720/stable20
[stable20] save email as lower case
2020-10-28 08:49:29 +01:00
Roeland Jago Douma da92c70823
Merge pull request #23732 from nextcloud/backport/23725/stable20
[stable20] Specify accept argument to avatar upload input field
2020-10-28 08:43:16 +01:00
Nextcloud bot 9150a8bce6
[tx-robot] updated from transifex 2020-10-28 02:19:02 +00:00
Robin Appelman 5c93d08bc1 reset avatar cropper before showing
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-27 20:25:40 +00:00
Robin Appelman d4303b6e8a save email as lower case
email addresses are case insensitive

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-27 20:25:25 +00:00
Morris Jobke 2337ce2efd Specify accept argument to avatar upload input field
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-27 20:15:25 +00:00
Roeland Jago Douma 86c66c29a9
Merge pull request #23726 from nextcloud/backport/23711/stable20
[stable20] Fix default quota display value in user row
2020-10-27 20:07:29 +01:00
Roeland Jago Douma 9cfaf9081d
Merge pull request #23727 from nextcloud/backport/23722/stable20
[stable20] Use lib instead if core as l10n module in OC_Files
2020-10-27 20:04:37 +01:00
Roeland Jago Douma bc8740a46a
Merge pull request #23710 from nextcloud/backport/23701/stable20
[stable20] Make sure the function signatures of the backgroundjob match
2020-10-27 19:54:51 +01:00
Morris Jobke 017a3f86c2 Use lib instead if core as l10n module in OC_Files
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-27 16:30:26 +00:00
Vincent Petry 2230585765
Fix default quota display value in user row
When selecting default quota in the dropdown, the actual numeric value
or "Unlimited" will be displayed instead of "0 B". This matches whatever
is displayed after refreshing the page.

In the case where the default quota is unlimited, for which the server
returns -3 instead of "none", the frontend now also shows "Unlimited"
instead of "0 B".

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-10-27 16:58:03 +01:00
Morris Jobke 4ea4918b62
Merge pull request #23713 from nextcloud/backport/23645/stable20
[stable20] Check if array elements exist before using them
2020-10-27 16:25:35 +01:00
Roeland Jago Douma 42d56c9655 Check if array elements exist before using them
It seems that in some recent upgrade here. Not always the entries we
expect are returned. So we should first check if they exist. As to not
spam the log.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-27 10:57:51 +00:00
Roeland Jago Douma 0277829be8 Make sure the function signatures of the backgroundjob match
Else PHP says no

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-27 09:16:03 +00:00
John Molakvoæ b0eec52c85
Merge pull request #23702 from nextcloud/fix/noid/remnants-sharee-display-20-and-older 2020-10-27 09:46:24 +01:00
Morris Jobke c4d016887b
Merge pull request #23699 from nextcloud/backport/23680/stable20
[stable20] Enable theming background transparency
2020-10-27 09:06:05 +01:00
Nextcloud bot e4534d8389
[tx-robot] updated from transifex 2020-10-27 02:18:45 +00:00
John Molakvoæ (skjnldsv) 3e4e05bb93 Enable theming background transparency
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-26 19:51:38 +00:00
Arthur Schiwon 37301a5378
fixes determining whether former user is a share owner
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-26 14:00:57 +01:00
Morris Jobke 429700ac3a
Merge pull request #23690 from nextcloud/backport/23688/stable20
[stable20] Use bigint for fileid in filecache_extended
2020-10-26 13:57:41 +01:00
Arthur Schiwon 71c34876a6
split instantiation from business logic in OfflineUser
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-26 13:54:03 +01:00
Arthur Schiwon 2a1e5d8beb
add test for active shares flag
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-26 13:52:27 +01:00
timm2k 6a3889b531 Update CheckSetupController.php 2020-10-26 09:00:18 +00:00
timm2k 67211199e1 Update ConvertFilecacheBigInt.php 2020-10-26 09:00:16 +00:00
Nextcloud bot 792e42d411
[tx-robot] updated from transifex 2020-10-26 02:18:16 +00:00
Morris Jobke badb56b952
Merge pull request #23636 from nextcloud/backport/23630/stable20
[stable20] Bring back the restore share button
2020-10-25 21:57:52 +01:00
Morris Jobke 2b12d71a0d
Merge pull request #23641 from nextcloud/backport/23602/stable20
[stable20] Fix updates of NULL appconfig values
2020-10-25 21:38:49 +01:00
Nextcloud bot 42339e0cdc
[tx-robot] updated from transifex 2020-10-25 02:18:40 +00:00
Roeland Jago Douma 1ab03a0d3e
Merge pull request #23563 from nextcloud/backport/23497/stable20
[stable20] CalDavBackend: check if timerange is array before accessing
2020-10-24 10:57:58 +02:00
Roeland Jago Douma 5a7a0a2f64
Merge pull request #23583 from nextcloud/backport/23580/stable20
[stable20] Also expire share type email
2020-10-24 10:54:41 +02:00
Roeland Jago Douma 2d3a2e20ae
Merge pull request #23575 from nextcloud/backport/23415/stable20
[stable20] Some emojis are in CHAR_CATEGORY_GENERAL_OTHER_TYPES
2020-10-24 10:54:29 +02:00
Roeland Jago Douma 0b46ebe3c6
Merge pull request #23611 from nextcloud/backport/23606/stable20
[stable20] Only use index of mount point when it is there
2020-10-24 10:53:45 +02:00
Roeland Jago Douma 50d39324a2
Merge pull request #23633 from nextcloud/backport/23374/stable20
[stable20] Only retry fetching app store data once every 5 minutes in case it fails
2020-10-24 10:53:01 +02:00
Roeland Jago Douma 0b67ea0d67
Merge pull request #23646 from nextcloud/backport/23627/stable20
[stable20] Fix sharing input placeholder for emails
2020-10-24 10:52:33 +02:00
Roeland Jago Douma 89d88b3ea5
Merge pull request #23639 from nextcloud/version/noid/20.0.1
20.0.1
2020-10-24 10:32:10 +02:00
Nextcloud bot 3674d341ea
[tx-robot] updated from transifex 2020-10-24 02:18:55 +00:00
John Molakvoæ (skjnldsv) 2562d45af2 Fix sharing input placeholder for emails
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-23 13:06:01 +00:00
Roeland Jago Douma 1cc6a0f8e3 Fix updates of NULL appconfig values
The comparisson of NULL is a bit special.
So we need to handle this a tad beter else it might not replace NULL
values. or allow you to set NULL values on updates.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-23 08:45:29 +00:00
Nextcloud bot 526a392002
[tx-robot] updated from transifex 2020-10-23 02:18:59 +00:00
Morris Jobke dcc146a5c0
20.0.1
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-22 23:11:04 +02:00
Vincent Petry d391e7fe02 Bring back the restore share button
Fix disabled default file action to still use an anchor element, as this
is used in many other places (and potentially apps).

Adjusted anchor style to not look like it's clickable and added extras
to make sure everything inside still looks clickable as before.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-10-22 18:58:57 +00:00
Julius Härtl 367a7bd87e Only retry fetching app store data once every 5 minutes in case it fails
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-10-22 14:14:49 +00:00
Morris Jobke 820881168d
Merge pull request #23621 from nextcloud/backport/23613/stable20
[stable20] Disable unreliable app-files.feature:108
2020-10-22 15:58:35 +02:00
Daniel Calviño Sánchez 0dcdb14966
Merge pull request #23622 from nextcloud/backport/23614/stable20
[stable20] Disable unreliable app-files-sharing.feature:108
2020-10-22 15:39:20 +02:00
Morris Jobke eba5eb8876 Disable unreliable app-files-sharing.feature:108
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-22 10:22:53 +00:00
Morris Jobke 78d233276f Disable unreliable app-files.feature:108
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-22 10:20:38 +00:00
Nextcloud bot f7798def38
[tx-robot] updated from transifex 2020-10-22 02:19:16 +00:00
Joas Schilling 2160dc9583 Only use index of mount point when it is there
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-21 18:46:13 +00:00
blizzz 36070d70d7
Merge pull request #23570 from nextcloud/backport/23566/stable20
[stable20] LDAP: when nesting is not enabled, the group filter can be applied right away
2020-10-21 16:12:58 +02:00
Nextcloud bot e6ed412c2a
[tx-robot] updated from transifex 2020-10-21 02:18:54 +00:00
John Molakvoæ (skjnldsv) 2aa69ba895 Also expire share type email
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-20 09:35:45 +00:00
Nextcloud bot 2005119af2
[tx-robot] updated from transifex 2020-10-20 02:18:50 +00:00
Joas Schilling 57cfed3f3d Some emojis are in CHAR_CATEGORY_GENERAL_OTHER_TYPES
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-19 15:19:50 +00:00
Arthur Schiwon 7fad750a2d tame psalm. why does it ignore '@property'?
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-19 13:37:23 +00:00
Arthur Schiwon fbfac673c9 when nesting is not enabled, the group filter can be applied right away
- helps performance, but skipping unnecessary entries
- reduces reoccuring info-level log output against groups that do not
  qualify ("no or empty name")

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-19 13:37:22 +00:00
Morris Jobke 97ad590aea
Merge pull request #23474 from nextcloud/version/noid/20.0.1RC1
20.0.1 RC 1
2020-10-19 13:31:27 +02:00
Simon Spannagel b1d3877625 CalDavBackend: check if timerange is array before accessing
Signed-off-by: Simon Spannagel <simonspa@kth.se>
2020-10-19 10:56:51 +00:00
Morris Jobke b6bd757644
Update CA bundle
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-19 10:30:14 +02:00
Morris Jobke 9db12a5651
20.0.1 RC 1
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-19 10:16:43 +02:00
Morris Jobke 41090d0faa
Merge pull request #23205 from nextcloud/backport/23012/stable20
[stable20] Make BeforeTemplateRenderedEvent aware of the actual response
2020-10-19 10:15:22 +02:00
Morris Jobke cbde9d878f
Merge pull request #23514 from nextcloud/backport/23508/stable20
[stable20] fixes potential passing of null to getUserGroupIds
2020-10-19 10:14:06 +02:00
Morris Jobke 3f180d2946
Merge pull request #23422 from nextcloud/backport/23295/stable20
[stable20] Fix undefined index and consequential damages in versions code
2020-10-19 10:12:49 +02:00
Morris Jobke bd11c9c620
Merge pull request #23426 from nextcloud/backport/23021/stable20
[stable20] allow using saved login credentials for notify
2020-10-19 10:12:38 +02:00
Morris Jobke ae5500b0cb
Merge pull request #23438 from nextcloud/disable-notify-self-check-20
[20] add option to disable notify self check
2020-10-19 10:12:09 +02:00
Morris Jobke a6b4770afc
Update @since tag
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-19 10:00:15 +02:00
blizzz 52f873942c
Merge pull request #23548 from nextcloud/backport/23264/stable20
[stable20] Add local version of escapeHTML
2020-10-19 09:32:26 +02:00
Nextcloud bot 6e8f9b7aef
[tx-robot] updated from transifex 2020-10-19 02:18:07 +00:00
Daniel Kesselberg 732f65b5fd Add local version of escapeHTML
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-10-18 15:28:17 +00:00
Nextcloud bot 97eb117251
[tx-robot] updated from transifex 2020-10-18 02:17:52 +00:00
Nextcloud bot 5e52e63672
[tx-robot] updated from transifex 2020-10-17 02:18:57 +00:00
Morris Jobke 401c245101
Merge pull request #23513 from nextcloud/backport/23478/stable20
[stable20] Clear cached app config while waiting for the SCSSCache lock to return
2020-10-16 18:15:58 +02:00
Morris Jobke e95a1420f1
Clear cached app config while waiting for the SCSSCache to finish processing the file
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-16 15:46:59 +02:00
Arthur Schiwon a615e7dcfa fixes potential passing of null to getUserGroupIds
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-10-16 13:01:06 +00:00
Morris Jobke 130689ac2a
Merge pull request #23510 from nextcloud/backport/23488/stable20
[stable20] SCSSCacher - Lock should not be removed
2020-10-16 14:55:47 +02:00
Morris Jobke 2dcf50cd78 SCSSCacher - Lock should not be removed
This is within the failed lock acquiring branch. So the lock is free by another process and should not be removed because the cached file (that was created by the process having the lock) appeared on the filesystem.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-16 11:27:36 +00:00
Morris Jobke bc41e93bf8
Merge pull request #23503 from nextcloud/backport/23490/stable20
[stable20] Provide log statements for SCSS cache
2020-10-16 13:23:40 +02:00
Morris Jobke 3c1a745301
Merge pull request #23480 from nextcloud/backport/23401/stable20
[stable20] Use own psalm instead of a global one
2020-10-16 13:22:33 +02:00
Morris Jobke 7054159cda
Do not fail on changes to baseline.xml
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-16 13:17:19 +02:00
Morris Jobke 8c9fe98446
Update psalm-baseline
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-16 13:17:19 +02:00
Morris Jobke 8985f4679a
Merge pull request #23498 from nextcloud/backport/23492/stable20
[stable20] SharedMountTest.php:367 is unreliable
2020-10-16 10:57:31 +02:00
Morris Jobke 3d765dafe7
Merge pull request #23472 from nextcloud/backport/23464/stable20
[stable20] Add psalm types for the migration schema closure
2020-10-16 09:50:22 +02:00
Morris Jobke 96e08a508e Provide log statements for SCSS cache
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-16 07:50:21 +00:00
Morris Jobke dd7c6d1947
Merge pull request #23491 from nextcloud/backport/23481/stable20
[stable20] Add psalm types for the event dispatcher
2020-10-16 09:32:47 +02:00
Morris Jobke 5994f66659
Merge pull request #23336 from nextcloud/backport/23239/stable20
[stable20] Fix database password visibility toggle
2020-10-16 09:31:53 +02:00
Christoph Wurst 6536501579
Update the baseline
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-16 09:15:54 +02:00
Christoph Wurst be3a46038f
Use own psalm instead of a global one
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-16 08:45:07 +02:00
Morris Jobke 653596b2c9 SharedMountTest.php:367 is unreliable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-16 06:41:23 +00:00
Richard Steinmetz a7b0778b4b Fix password visibility toggles
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-16 06:15:07 +00:00
Nextcloud bot 7aeb050124
[tx-robot] updated from transifex 2020-10-16 02:18:20 +00:00
Christoph Wurst 3a3d7ea6cd Type the authentication listeners
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-15 22:34:18 +00:00
Christoph Wurst dff399973f Add psalm types for the event dispatcher
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-15 22:34:18 +00:00
John Molakvoæ 904396c5d2
Merge pull request #23458 from nextcloud/backport/23448/stable20
[stable20] Fix app sidebar mountpoint
2020-10-15 16:43:30 +02:00
John Molakvoæ (skjnldsv) 1d5ffe3326 Fix app sidebar mountpoint
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-15 13:25:31 +00:00
Morris Jobke 646e0ac99d
Merge pull request #23473 from nextcloud/backport/23436/stable20
[stable20] Remove posix_getpwuid and compare only userid
2020-10-15 14:04:34 +02:00
hoellen 0201154183 Adjust sudo command to UID instead of username
Signed-off-by: hoellen <dev@hoellen.eu>
2020-10-15 11:35:21 +00:00
hoellen 6e3513aa89 Remove posix_getpwuid and compare only userid
Signed-off-by: hoellen <dev@hoellen.eu>
2020-10-15 11:35:20 +00:00
Christoph Wurst 5290cc77bc Add psalm types for the migration schema closure
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-15 11:24:10 +00:00
Morris Jobke c9d196af78
Merge pull request #23466 from nextcloud/dependencies/nextcloud-vue-2.6.9
[stable20] Bump @nextcloud/vue to 2.6.9
2020-10-15 13:15:03 +02:00
Julius Härtl 8c132c30bf Bump @nextcloud/vue to 2.6.9
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-15 09:48:06 +00:00
Nextcloud bot 76f62e3891
[tx-robot] updated from transifex 2020-10-15 02:18:34 +00:00
Morris Jobke 5e9e90655e
Merge pull request #23446 from nextcloud/backport/23377/stable20
[stable20] Annotate IContainer so Psalm knows what resove and query return
2020-10-14 17:40:06 +02:00
Christoph Wurst 327ec78e15 Annotate IContainer so Psalm knows what resove and query return
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-14 15:07:07 +00:00
Christoph Wurst d77ed81666
Merge pull request #23384 from nextcloud/backport/23284/stable20
[stable20] Fix adminpass strengthify margin
2020-10-14 15:58:46 +02:00
Robin Appelman 43778d8aae
add option to disable notify self check
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-14 14:06:40 +02:00
Nextcloud bot 1b8d9e9c13
[tx-robot] updated from transifex 2020-10-14 02:18:55 +00:00
Morris Jobke dc972cc162
Merge pull request #23420 from nextcloud/backport/23402/stable20
[stable20] Encode requesttoken for logout url in auto logout
2020-10-13 21:43:53 +02:00
Robin Appelman d5e77685a4 also give storage backend it's change to manipulate the config
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-13 17:44:21 +00:00
Robin Appelman b750503f4a allow using saved login credentials for notify
when only the user is provided, we use to provided user to try and get saved login credentials

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-13 17:44:20 +00:00
Julius Härtl 098c631129 Encode requesttoken for logout url in auto logout
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-13 15:57:25 +00:00
Morris Jobke 09b4f9b13e
Merge pull request #23395 from nextcloud/backport/23300/stable20
[stable20] Stop transfer of ownership between same users
2020-10-13 17:46:32 +02:00
Morris Jobke 2b1f3df3da Return all keys in getAllVersions() instead
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-13 15:39:33 +00:00
Christoph Wurst 8a25ded758 Fix undefined index and consequential damages in versions code
If the user has no space and there are no versions, there won't be an
`all` index in the versions entry. Hence this triggers a warning and
becomes `null`, afterwards `count`, `foreach` and friends will happily
throw even more warnings and errors because they don't want to play with
`null`. Thus adding a fallback to an empty array.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-13 15:39:32 +00:00
Christoph Wurst 4af8bf2468
Merge pull request #23403 from nextcloud/backport/23396/stable20
[stable20] VersioningTest.php:729 is unreliable and should be disabled
2020-10-13 11:45:24 +02:00
Morris Jobke 3fc4120ebb VersioningTest:729 is unreliable and should be disabled
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-13 07:10:52 +00:00
Morris Jobke f730812af3
Merge pull request #23281 from nextcloud/backport/23269/stable20
[stable20] Fix the user remove from group in UI
2020-10-13 00:29:44 +02:00
Sujith Haridasan 67fa9edef0 Stop transfer of ownership between same users
Stop the transfer of ownership between same user.

Signed-off-by: Sujith Haridasan <sujith.h@gmail.com>
2020-10-12 20:03:17 +00:00
npmbuildbot[bot] 64da029df9 Compile assets
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-12 19:53:34 +00:00
Morris Jobke a70bbf1f4b
Merge pull request #23388 from nextcloud/backport/23378/stable20
[stable20] Fix typo 'shared'
2020-10-12 21:50:14 +02:00
Morris Jobke cf9c643793
Merge pull request #23390 from nextcloud/backport/23379/stable20
[stable20] Expose CLOUD federation for local users in the recent addressbook
2020-10-12 21:38:25 +02:00
John Molakvoæ (skjnldsv) a9425c7ebf Drop X-NEXTCLOUD-UID
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-12 18:51:53 +00:00
John Molakvoæ (skjnldsv) a9a552ec95 Expose CLOUD federation for local users as well
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-12 18:51:53 +00:00
Morris Jobke a7ff7c47ab Fix code style
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-12 18:08:36 +00:00
Robin Windey 06895ef8cc Fix typo 'shared' 2020-10-12 18:08:36 +00:00
kesselb 830d911507
Merge pull request #23383 from nextcloud/backport/23371/stable20
[stable20] Add Psalm type for the bootstrap registration context
2020-10-12 19:12:21 +02:00
Richard Steinmetz a8e7b5ad3a Fix adminpass strengthify margin
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2020-10-12 15:43:13 +00:00
Christoph Wurst bab06f9bf9 Add Psalm type for the bootstrap registration context
This can potentially catch a few bugs with wrong class strings.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-12 15:16:34 +00:00
Morris Jobke aff015661f
Merge pull request #23375 from nextcloud/backport/23310/stable20
[stable20] Add template typing to the QBMapper
2020-10-12 13:50:35 +02:00
Christoph Wurst a1856176d5 Add template typing to the QBMapper
The QBMapper is kind of a generic type, though this concept does not
exist in php. Hence you have a lot of type coercion in subtypes (mappers
in the individual apps) because you suddenly don't expect an Entity[]
but your specific type.

Luckily Psalm lets us type those. Then in the subclass you can
psalm-implement the mapper with a concrete type and psalm will do all
the magic to ensure types are used correctly.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-12 11:12:35 +00:00
Roeland Jago Douma e58134e0c9
Merge pull request #23288 from nextcloud/backport/23275/stable20
[stable20] Fix dashboard statuses sort
2020-10-08 20:06:03 +02:00
Julien Veyssier 07ad1978a8 fix dashboard statuses sort function
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-08 13:39:54 +00:00
Sujith Haridasan 22b24b8f5d Fix the user remove from group in UI
Fix the removal of user from the group in UI.

Signed-off-by: Sujith Haridasan <sujith.h@gmail.com>
2020-10-08 11:21:02 +00:00
John Molakvoæ c578b11fe3
Merge pull request #23271 from nextcloud/fix/sidebar-updateTabs
Fix sidebar updateTabs method
2020-10-08 12:25:59 +02:00
Roeland Jago Douma 2d2cba3c9b
Merge pull request #23256 from nextcloud/backport/23184/stable20
[stable20] Make sure getUsersFavoritingObject can be run without a user
2020-10-08 11:49:03 +02:00
John Molakvoæ (skjnldsv) fbf77cb653 Fix sidebar updateTabs method
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-08 09:36:24 +00:00
Joas Schilling d68d62f052 Make sure getUsersFavoritingObject can be run without a user
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-07 11:10:38 +00:00
Morris Jobke f4891da160
Merge pull request #23254 from nextcloud/backport/23252/stable20
[stable20] Use the correct l10n for activities
2020-10-07 12:24:28 +02:00
Roeland Jago Douma 1f3e3e782f Use the correct l10n for activities
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-07 09:37:23 +00:00
Roeland Jago Douma f26998364b
Merge pull request #23216 from nextcloud/backport/23183/stable20
[stable20] Don't influence toastify errors and always use white
2020-10-07 11:06:53 +02:00
Morris Jobke 7581ba94f4
Merge pull request #23235 from nextcloud/backport/22974/stable20
[stable20] Fix appid in translation
2020-10-06 22:13:15 +02:00
Joas Schilling f3060b62c6
Fix appid in translation
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-06 18:55:40 +02:00
Morris Jobke 21f00069fe
Merge pull request #23213 from nextcloud/backport/22937/stable20
[stable20] Allow configuring the activity update interval of token
2020-10-06 16:07:54 +02:00
Roeland Jago Douma ca32ee1a65
Merge pull request #23220 from nextcloud/backport/23215/stable20
[stable20] Only run the query to get the account data once
2020-10-06 14:46:06 +02:00
Roeland Jago Douma ee1a6ad434
Merge pull request #23195 from nextcloud/backport/23175/stable20
[stable20] Fix legacy update notifications
2020-10-06 13:29:26 +02:00
Roeland Jago Douma a81ec17235
Merge pull request #23170 from nextcloud/backport/22913/stable20
[stable20] add mount point to quota warning message
2020-10-06 13:18:12 +02:00
Roeland Jago Douma 3bd9297bb1
Merge pull request #23211 from nextcloud/backport/23096/stable20
[stable20] Also check the path based mimetype for flow rule checks
2020-10-06 13:07:11 +02:00
Joas Schilling 851acc1d74 Only run the query to get the account data once
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-06 10:48:24 +00:00
Joas Schilling 27854f05a8 Don't influence toastify errors and always use white
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-06 09:09:01 +00:00
Roeland Jago Douma e0bc29d907 Allow configuring the activity update interval of token
On some systems with a lot of users this creates a lot of extra DB
writes.
Being able to increase this interval helps there.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-06 08:04:12 +00:00
Morris Jobke 76fe051ecb
Merge pull request #23185 from nextcloud/backport/23109/stable20
[stable20] dont hold a transaction during the move to trash
2020-10-06 09:10:57 +02:00
Morris Jobke 853b17b2a9
Merge pull request #23207 from nextcloud/backport/23028/stable20
[stable20] Fix array to string conversion on event search
2020-10-06 09:09:34 +02:00
Julius Härtl 53ac186473 Make sure to check the mimetype on the path if a secure one could not be detemined though the content
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-10-06 06:08:04 +00:00
Joas Schilling 732cf6b8d3 Fix array to string conversion on event search
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-05 21:07:05 +00:00
Morris Jobke 20524cff33
Merge pull request #23203 from nextcloud/backport/23182/stable20
[stable20] Fix the user email issue while creating a user
2020-10-05 23:03:48 +02:00
Julius Härtl bc0a429822 Add acutal response to BeforeTemplateRenderedEvent
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-10-05 19:53:05 +00:00
Julius Härtl 7b65eecf72 Only load user status script when needed
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-10-05 19:53:04 +00:00
Sujith Haridasan c998209ec1 Fix the user email issue while creating a user
When the user is created, the provisioning api
was not adding the email address of the user
when provided if the `send email to new user`
is not set.

Signed-off-by: Sujith Haridasan <sujith.h@gmail.com>
2020-10-05 19:34:24 +00:00
Roeland Jago Douma 453aafee73
Fix unit tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-05 21:33:40 +02:00
Roeland Jago Douma 4f5a24bb50
Merge pull request #23192 from nextcloud/backport/23179/stable20
[stable20] Fix dashboard rendering if accessibility app is disabled
2020-10-05 20:01:30 +02:00
Julius Härtl 2070ef6270 Fix dashboard rendering if accessibility app is disabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2020-10-05 14:13:56 +00:00
mrtnmtth 608fab3741 Fix legacy update notifications
Signed-off-by: mrtnmtth <mrtn.mtth@gmx.de>
2020-10-05 14:07:51 +00:00
Robin Appelman acef3620e0
dont hold a transaction during the move to trash
because moving to trash can take a long time, keeping a transaction active for the duration can lead to issues

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-05 15:25:36 +02:00
Robin Appelman aec422a874 add mount point to quota warning message
makes it more clear to the user what the quota applies to

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-10-04 11:05:24 +00:00
Roeland Jago Douma 615b994816
Merge pull request #23071 from nextcloud/version/20.0.0/final
20 final
2020-10-02 18:42:10 +02:00
Roeland Jago Douma c2eb39d662
Merge pull request #23143 from nextcloud/backport/23114/stable20
[stable20]  Show icon only with dnd status in the message
2020-10-02 18:33:17 +02:00
Joas Schilling d2bd0664be
Show the full status and icon all the time
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-02 17:18:43 +02:00
Julius Härtl d3d7209be9
Show icon only with dnd status in the message
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-10-02 17:13:26 +02:00
Roeland Jago Douma 2c149fbd9a
Merge pull request #23141 from nextcloud/backport/23136/stable20
[stable20] Mark all compiled JS as binary
2020-10-02 17:01:03 +02:00
Roeland Jago Douma 998ab15206
Merge pull request #23132 from nextcloud/backport/23130/stable20
[stable20] Move online status into modal
2020-10-02 16:58:35 +02:00
Joas Schilling d204e5855c Mark all compiled JS as binary
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-02 13:41:55 +00:00
John Molakvoæ (skjnldsv) bb662c20fe
Bump @nextcloud/vue to v2.6.8
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-02 13:33:43 +02:00
John Molakvoæ (skjnldsv) 097d62049d
Fix subline hint
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-02 13:22:42 +02:00
Joas Schilling be778c94e1
Show the subline
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-10-02 12:50:29 +02:00
Joas Schilling ac3a32f305 Set status is also there now
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-02 09:26:53 +00:00
Joas Schilling 28ae039588 Update @nextcloud/vue to 2.6.7
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-02 09:26:52 +00:00
Jan C. Borchardt 1f0a5aeae3 Status: Add subline for Invisible to explain it properly
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2020-10-02 09:26:50 +00:00
Jan C. Borchardt 741ebf5177 Enable scrollbar for too long content, same way as in Dashboard customize
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2020-10-02 09:26:50 +00:00
John Molakvoæ (skjnldsv) 4817005733 Move online status into modal
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-10-02 09:26:50 +00:00
Roeland Jago Douma fa4cd4435b
Merge pull request #23089 from nextcloud/backport/23074/stable20
[stable20] Do not match sharees on an empty email address
2020-10-01 19:29:39 +02:00
Roeland Jago Douma 61a0069dd5
Merge pull request #23115 from nextcloud/backport/23108/stable20
[stable20] Reset the user status when clearing the custom message
2020-10-01 19:23:51 +02:00
Roeland Jago Douma 2433550eff
Merge pull request #23121 from nextcloud/backport/23112/stable20
[stable20] Increase the timeout of statuses
2020-10-01 15:09:51 +02:00
Joas Schilling d7d805ef79 Increase the timeout of statuses
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-01 09:45:46 +00:00
Roeland Jago Douma 612306d290
Merge pull request #23116 from nextcloud/backport/23113/stable20
[stable20] Change wording from 'custom status' to 'status message'
2020-10-01 08:29:27 +02:00
Jan C. Borchardt b66f5c55e5
Change wording from 'custom status' to 'status message'
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
Signed-off-by: Gary Kim <gary@garykim.dev>
2020-09-30 22:26:57 -04:00
Joas Schilling 413a6042f3 Reset the user status when clearing the custom message
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-30 17:27:14 +00:00
Roeland Jago Douma f0dc0d1347
Merge pull request #23098 from nextcloud/backport/22999/stable20
[stable20] Adjust scroll container height to make it a proper boundary element for actions
2020-09-30 13:48:05 +02:00
Roeland Jago Douma 6b8356ce35
Merge pull request #23095 from nextcloud/backport/23043/stable20
[stable20] Avoid crash when unauthenticated users make weather-related requests
2020-09-29 21:35:17 +02:00
Julius Härtl 143c6356c5 Adjust scroll container height to make it a proper boundary element for actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-09-29 16:43:41 +00:00
Roeland Jago Douma 2e87668f77
Merge pull request #23092 from nextcloud/backport/23083/stable20
[stable20] Generate exception to log on php errors
2020-09-29 16:38:56 +02:00
Julien Veyssier 2364808913 avoid crash when unauthenticated users make weather-related requests, mention it in UI
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2020-09-29 12:18:55 +00:00
Roeland Jago Douma f72ebcd956
Merge pull request #23085 from nextcloud/backport/23013/stable20
[stable20] Show federation and email results also with exact user match unless c…
2020-09-29 12:16:00 +02:00
Roeland Jago Douma b1879c4fcb
Merge pull request #23084 from nextcloud/backport/22983/stable20
[stable20] Sync all users to the system addresssbook
2020-09-29 11:52:15 +02:00
Julius Härtl 05fa5e4d9e Generate exception to log on php errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-09-29 08:17:21 +00:00
Christoph Wurst 851333edab Do not match sharees on an empty email address
When asking for sharees we compare not only UID and displayname but also
the email address. And if that matches we return the sharee as an exact
match. This logic had a flaw as in that it also matched the empty string
to users with no email address.

This is most noticeable when you disable sharee enumeration and open the
ownership transfer dialog. It suggested other users of the instance
before. This has stopped now.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-09-29 07:29:43 +00:00
Joas Schilling 71b33fb87a Show federation and email results also with exact user match unless containing @
Before when you have a user "smith" and a federated user "smith@example.com"
you could see the federation result with "smit" but not with "smith" anymore.
With most LDAP configurations and local backend setups this is disturbing and
causes issues.
The idea of not showing the email and federation on a matching user was with:
Local user registered with "smith@example.com" user id and having that same
email / cloud id in your contacts addressbook. So we now only hide those
"side results" when the search does contain an @

Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-29 07:16:12 +00:00
Joas Schilling 6365e7e162 Sync all users to the system addresssbook
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-29 07:15:49 +00:00
Roeland Jago Douma fb426c90b7
Merge pull request #23072 from nextcloud/backport/23051/stable20
[stable20] Fix app text going too far down on hover/focus
2020-09-28 12:40:18 +02:00
Roeland Jago Douma 15ff980583
Merge pull request #23029 from nextcloud/backport/23024/stable20
[stable20] Add occ command to set theming values
2020-09-28 12:24:23 +02:00
Jan C. Borchardt d358f9dddf Fix app text going too far down on hover/focus
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2020-09-28 07:34:29 +00:00
Roeland Jago Douma 7496a10227
Merge pull request #23032 from nextcloud/backport/23015/stable20
[stable20] Log slow dashboard widgets
2020-09-28 09:33:56 +02:00
Roeland Jago Douma 7630052a60
Merge pull request #23048 from nextcloud/backport/23034/stable20
[stable20] Fix numeric folders throwing on markDirty
2020-09-28 09:32:40 +02:00
Roeland Jago Douma 5ab7392d56
20 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-09-28 09:28:36 +02:00
Joas Schilling aefbf4c01d Fix numeric folders throwing on markDirty
TypeError: strpos() expects parameter 1 to be string, int given

The problem is that in cacheNode() we strip of any slashes, so
a folder "0/" will be trimmed to "0" and be used as an array key.
Since PHP automatically casts numeric array keys to integers,
you afterwards get $nodePath as int(0). Since it's now a number,
the strpos() function does not accept it anymore. Simply casting
$nodePath to a string again in the foreach solves the issue

Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-25 13:14:49 +00:00
Roeland Jago Douma d81b4e2ff7
Merge pull request #23030 from nextcloud/backport/22948/stable20
[stable20] Add more integration tests for "files:transfer-ownership" command
2020-09-24 21:32:28 +02:00
Roeland Jago Douma 3320d8ecf1
Merge pull request #23038 from nextcloud/fix-running-video-verification-integration-tests-in-drone-in-stable20
[stable20] Fix running video verification integration tests in Drone
2020-09-24 21:30:23 +02:00
Daniel Calviño Sánchez a1d3213e7d Fix running video verification integration tests in Drone in stable20
In order to run the video verification integration tests the Talk app
needs to be cloned in a branch compatible with the server.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-09-24 16:52:04 +02:00
Joas Schilling 5475bb4083 Log a warning if a "lazy" initial state loads longer than 1 second
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-24 13:00:19 +00:00
Joas Schilling 87f8e1e366 Log an error if a dashboard widget loads longer than 1 second
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-24 13:00:19 +00:00
Daniel Calviño Sánchez 0dd18e0356 Add integration tests to check that only the given path is transferred
Until recently (it was fixed in ac2999a26a) when a path was transferred
other shares with the target user were removed, so a test was added to
ensure that it does not happen again.

Besides that a test to ensure that other files with the target user are
not transferred was added too (it did not fail before, but seemed
convenient to have that covered too :-) ).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-09-24 12:47:47 +00:00
Daniel Calviño Sánchez bf9a24efbe Add integration tests for transferring files of a user with a risky name
The files:transfer-ownership performs a sanitization of users with
"risky" display names (including characters like "\" or "/").

In order to allow (escaped) double quotes in the display name the
regular expression used in the "user XXX with displayname YYY exists"
step had to be adjusted.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-09-24 12:47:47 +00:00
Daniel Calviño Sánchez 87b9dbdb56 Add integration test for transferring the path of a single file
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-09-24 12:47:47 +00:00
Julius Härtl 19390a4b5e Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-09-24 12:38:53 +00:00
Julius Härtl 99b25ef3fe Add occ command to set theming values
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-09-24 12:38:53 +00:00
Roeland Jago Douma d247f198a9
Merge pull request #23000 from nextcloud/version/20.0.0/RC2
20 RC2
2020-09-24 13:41:12 +02:00
Roeland Jago Douma e29b5c6d92
Merge pull request #23026 from nextcloud/backport/23014/stable20
[stable20] Make 'Reasons to use Nextcloud' button translatable, fix #22977
2020-09-24 11:31:39 +02:00
Roeland Jago Douma fa0f815dda
Merge pull request #23001 from nextcloud/backport/22940/stable20
[stable20] Never copy the share link when the password is forced
2020-09-24 09:37:22 +02:00
Jan C. Borchardt 2be71de5a1 Make 'Reasons to use Nextcloud' button translatable, fix #22977
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2020-09-24 07:26:18 +00:00
Roeland Jago Douma 724276c7a7
Merge pull request #23018 from nextcloud/backport/23016/stable20
[stable20] Don't log a known shared section
2020-09-24 09:24:42 +02:00
Joas Schilling 26603c7cdd Don't log "duplicate section" for the shared "connected-accounts" section
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-23 11:03:50 +00:00
Joas Schilling 7edced3807
Merge pull request #23009 from nextcloud/backport/23008/stable20
[stable20] Add padding to the empty content and center it
2020-09-23 10:46:50 +02:00
Joas Schilling 3daddfce14 Add padding to the empty content and center it
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-22 19:16:30 +00:00
Joas Schilling 9838d54cb5 Never copy the share link when the password is forced
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-09-22 11:45:58 +00:00
Roeland Jago Douma 46babff37b
Merge pull request #22928 from nextcloud/backport/22915/stable20
[stable20] improve handling of out of space errors for smb
2020-09-22 13:08:21 +02:00
Roeland Jago Douma ff8eb8dfa2
20 RC2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-09-22 13:05:52 +02:00
John Molakvoæ 289bc8e345
Merge pull request #22946 from nextcloud/backport/22924/stable20
[stable20] Make sure most app names don’t ellipsize, fix #22845, fix #22219
2020-09-19 00:02:01 +02:00
Morris Jobke a0e8a78945
Fix transifex name of dashboard app
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-18 20:47:38 +02:00
Morris Jobke 065f3e125e
Merge pull request #22950 from nextcloud/backport/22949/stable20
[stable20] Add transifex config for all new apps
2020-09-18 20:43:29 +02:00
Morris Jobke bf58dcb247 Add transifex config for all new apps
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-18 18:42:09 +00:00
Jan C. Borchardt ada7ad6930 Make sure most app names don’t ellipsize, fix #22845, fix #22219
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2020-09-18 16:18:48 +00:00
Morris Jobke 5d81cb36b5
Merge pull request #22938 from nextcloud/backport/22911/stable20
[stable20] Allow to run occ preview:repair in parallel
2020-09-18 18:14:29 +02:00
Morris Jobke 03d00afe31
Merge pull request #22935 from nextcloud/backport/22868/stable20
[stable20] Fix/unified search papercuts
2020-09-18 18:14:17 +02:00
Morris Jobke b35daf665f Migrate verbose messages to inline syntax of writeln()
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-18 11:13:52 +00:00
Morris Jobke 55393939ce Show lock messages only in verbose mode
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-18 11:13:52 +00:00
Morris Jobke e9e5a02d7c Allow to run occ preview:repair in parallel
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-18 11:13:52 +00:00
John Molakvoæ (skjnldsv) 7ad973494a Prevent empty search placeholder
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-09-18 09:36:41 +00:00
John Molakvoæ (skjnldsv) 5646144fae Build assets and fix unified search event syntax
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-09-18 09:36:40 +00:00
John Molakvoæ (skjnldsv) 839f597921 Properly show loading state if there are still pending requests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-09-18 09:36:39 +00:00
John Molakvoæ (skjnldsv) 3c6319f275 Properly use form role=search and unify reset button
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-09-18 09:36:39 +00:00
John Molakvoæ (skjnldsv) 2672f5da59 Fix loading error catch
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-09-18 09:36:39 +00:00
Roeland Jago Douma 2000e2faa5
Merge pull request #22932 from nextcloud/backport/22925/stable20
[stable20] Dashboard: Fix accessibility skip links
2020-09-18 11:32:38 +02:00
Jan C. Borchardt 0504873a8a Dashboard: Fix accessibility skip links
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2020-09-18 06:35:28 +00:00
Robin Appelman eba4723428 improve handling of out of space errors for smb
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-09-17 18:47:33 +00:00
2255 changed files with 34029 additions and 67692 deletions

View File

@ -1,47 +0,0 @@
FROM ubuntu:focal
ARG DEBIAN_FRONTEND=noninteractive
# PHP
RUN apt-get update -y
RUN apt-get install --no-install-recommends -y \
php7.4 \
php7.4-gd \
php7.4-zip \
php7.4-curl \
php7.4-xml \
php7.4-mbstring \
php7.4-sqlite \
php7.4-xdebug \
php7.4-pgsql \
php7.4-intl \
php7.4-imagick \
php7.4-gmp \
php7.4-apcu \
php7.4-bcmath \
libmagickcore-6.q16-3-extra \
curl \
vim \
lsof \
make \
nodejs \
npm
RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
# Docker
RUN apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
RUN apt-get update -y
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
RUN ln -s /var/run/docker-host.sock /var/run/docker.sock

View File

@ -1,18 +0,0 @@
<?php
$cloudEnvironmentId = getenv('CLOUDENV_ENVIRONMENT_ID');
$CONFIG = [
'mail_from_address' => 'no-reply',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'example.com',
'mail_smtphost' => 'localhost',
'mail_smtpport' => '1025',
'memcache.local' => '\OC\Memcache\APCu',
];
if($cloudEnvironmentId !== true) {
$CONFIG['overwritehost'] = $cloudEnvironmentId . '-80.apps.codespaces.githubusercontent.com';
$CONFIG['overwriteprotocol'] = 'https';
}

View File

@ -1,22 +0,0 @@
{
"name": "NextcloudServer",
"dockerComposeFile": "docker-compose.yml",
"service": "nextclouddev",
"postCreateCommand": ".devcontainer/setup.sh",
"forwardPorts": [
80,
8080,
8025
],
"runArgs": [
"--privileged"
],
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker"
],
"settings": {
"php.suggest.basic": false,
}
}

View File

@ -1,29 +0,0 @@
version: '3'
services:
nextclouddev:
build: .
volumes:
- .:/workspace:cached
- /var/run/docker.sock:/var/run/docker-host.sock
command: /bin/sh -c "while sleep 1000; do :; done"
ports:
- 80:80
- 8080:8080
- 8025:8025
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: postgres
network_mode: service:nextclouddev
adminer:
image: adminer
restart: always
network_mode: service:nextclouddev
mailhog:
image: mailhog/mailhog
restart: always
network_mode: service:nextclouddev

View File

@ -1,8 +0,0 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )"
cd $DIR/
git submodule update --init
# Codespace config
cp .devcontainer/codespace.config.php config/codespace.config.php

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
# Ignoring folders for eslint
node_modules/
3rdparty/
**/vendor/
**/l10n/
**/js/*
*.config.js
tests/lib/
# TODO: remove when comments files is not using handlebar templates anymore
apps/comments/src/templates.js

View File

@ -8,7 +8,7 @@ module.exports = {
escapeHTML: true,
oc_userconfig: true,
dayNames: true,
firstDay: true,
firstDay: true
},
extends: ['@nextcloud'],
rules: {

1
.github/FUNDING.yml vendored
View File

@ -1 +0,0 @@
custom: https://nextcloud.com/include/

View File

@ -1,8 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Community Support and Help
- name: Question
url: https://help.nextcloud.com/
about: Configuration, webserver/proxy or performance issues and other questions
about: I have a question …
- name: 💼 Nextcloud Enterprise
url: https://portal.nextcloud.com/
about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
about: If you are a customer and are using Nextcloud Enterprise, please submit your issue directly in the Nextcloud Portal so it can be resolved by our dedicated engineers more quickly.

165
.github/dependabot.yml vendored
View File

@ -1,165 +0,0 @@
version: 2
updates:
# Linting and coding style
- package-ecosystem: composer
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main master npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 10
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Testing master npm
- package-ecosystem: npm
directory: "/build"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Testing master composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Main stableXX npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable19
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable20
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable21
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Testing StableXX composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable19
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable20
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable21
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]

View File

@ -1,5 +1,5 @@
name: Dependabot
on: pull_request_target
on: pull_request
jobs:
auto-merge:
@ -7,15 +7,13 @@ jobs:
steps:
# Default github action approve
- uses: hmarr/auto-approve-action@v2.0.0
if: github.ref == 'refs/heads/master' &&
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@v2
if: github.ref == 'refs/heads/master' &&
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
- uses: ahmadnassri/action-dependabot-auto-merge@v1
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
with:
target: minor
target: patch
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}

View File

@ -1,12 +0,0 @@
name: Pull request checks
on: pull_request
jobs:
commit-message-check:
name: Block fixup and squash commits
runs-on: ubuntu-latest
steps:
- name: Run check
uses: xt0rted/block-autosquash-commits-action@main
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.3', '7.4', '8.0']
php-versions: ['7.2', '7.3', 7.4]
name: php${{ matrix.php-versions }} lint
steps:
- name: Checkout
@ -15,7 +15,6 @@ jobs:
uses: shivammathur/setup-php@master
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Lint
run: composer run lint
@ -30,7 +29,6 @@ jobs:
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
tools: cs2pr
- name: Install dependencies
@ -39,26 +37,4 @@ jobs:
run: |
composer run cs:check -- --format=checkstyle | cs2pr
composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
shell: bash
node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
name: eslint node${{ matrix.node-version }}
steps:
- uses: actions/checkout@v2
- name: Set up node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
shell: bash {0}

View File

@ -50,17 +50,6 @@ jobs:
- name: Test
run: npm run test
jsunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Test
run: ./autotest-js.sh
handlebars:
runs-on: ubuntu-latest
strategy:

View File

@ -9,7 +9,7 @@ on:
jobs:
phpunit-oci8:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
# do not stop on another job's failure
@ -41,7 +41,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,oci8,openssl,pdo_sqlite,posix,sqlite,xml,zip
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, oci8
tools: phpunit:8.5.2
coverage: none

View File

@ -1,28 +0,0 @@
name: Psalm show github
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
psalm:
name: Psalm
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- name: Psalm
uses: docker://vimeo/psalm-github-actions
continue-on-error: true
with:
composer_ignore_platform_reqs: false
report_file: results.sarif
- name: Upload Analysis results to GitHub
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif

View File

@ -1,28 +0,0 @@
name: Psalm Security Analysis
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
psalm:
name: Psalm
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- name: Psalm
uses: docker://vimeo/psalm-github-actions
with:
security_analysis: true
composer_ignore_platform_reqs: false
report_file: results.sarif
- name: Upload Security Analysis results to GitHub
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif

View File

@ -17,7 +17,6 @@ jobs:
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
@ -28,29 +27,3 @@ jobs:
- name: Show potential changes in Psalm baseline
run: |
bash -c "[[ ! \"`git status --porcelain build/psalm-baseline.xml`\" ]] || ( echo 'Uncommited changes in Psalm baseline' && git status && git diff build/psalm-baseline.xml)"
static-code-analysis-ocp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- -c psalm-ocp.xml --monochrome --no-progress --output-format=text --update-baseline || ( git diff -- . ':!lib/composer' && exit 1 )
- name: Check diff
run: git diff -- . ':!lib/composer'
- name: Show potential changes in Psalm baseline
run: |
bash -c "[[ ! \"`git status --porcelain build/psalm-baseline-ocp.xml`\" ]] || ( echo 'Uncommited changes in Psalm baseline' && git status && git diff build/psalm-baseline.xml)"

View File

@ -15,20 +15,16 @@ jobs:
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Remove composer.json
shell: bash
run: rm composer.json composer.lock
- name: Psalm
run: composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
uses: docker://jakzal/phpqa:php7.4-alpine
with:
args: psalm --monochrome --no-progress --output-format=text --update-baseline
- name: Reset composer.json and composer.lock
run: |
rm -rf lib/composer
git checkout -- composer.json composer.lock lib/composer
git checkout -- composer.json composer.lock
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:

View File

@ -61,12 +61,16 @@
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/nodeinfo /public.php?service=nodeinfo [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.*
RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz

View File

@ -164,7 +164,6 @@ ideaship <ideaship@users.noreply.github.com>
Ignacio Daniel Rostagno <ignaciorostagno@vijona.com.ar>
infoneo <infoneo@yahoo.pl>
Insanemal <insanemal@gmail.com>
Tobias Perschon <tobias@perschon.at> Tobias Perschon <tofuSCHNITZEL@users.noreply.github.com>
Tobias Ramforth <tobias@ramforth.com> Tobias Ramforth <tobias.ramforth@udo.edu>
Tobias Ramforth <tobias@ramforth.com> irgsmirx <tobias.ramforth@udo.edu>
Isaac Rosenberg <irosenb7@gmail.com>
@ -358,8 +357,7 @@ Simon Birnbach <simon@simon-birnbach.de>
Simon Könnecke <simonkoennecke@gmail.com>
Simon Whittaker <simon@swbh.net>
Sjors van der Pluijm <sjors@desjors.nl> Sjors van der Pluijm <sjors@youngguns.nl>
John Molakvoæ <skjnldsv@protonmail.com> John Molakvoæ <skjnldsv@users.noreply.github.com>
John Molakvoæ <skjnldsv@protonmail.com> John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> John Molakvoæ <skjnldsv@users.noreply.github.com>
st3so <st3so@server.fake>
Stefan <mu.stefan@googlemail.com>
Stefan Göckeritz <admin@s-goecker.de>
@ -383,7 +381,6 @@ TheSFReader <TheSFReader@gmail.com>
Thibaut GRIDEL <tgridel@free.fr>
thomas <thomas@thomas-VirtualBox.(none)>
Thomas Citharel <nextcloud@tcit.fr> Thomas Citharel <tcit@tcit.fr>
Thomas Citharel <nextcloud@tcit.fr> Thomas Citharel <github@tcit.fr>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Mueller <thomas.mueller@tmit.eu>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Müller <DeepDiver1975@users.noreply.github.com>
Thomas Olsen <tol@tanghus>
@ -409,9 +406,8 @@ Victor Dubiniuk <dubiniuk@owncloud.com> Victor Dubiniuk <victor.dubiniuk@gmail.c
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <dubiniuk@owncloud.com>
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <victor.dubiniuk@gmail.com>
Vincent Cloutier <vincent1cloutier@gmail.com>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <PVince81@yahoo.fr>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <vincent@vvortex.site>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <pvince81@owncloud.com>
Vincent Petry <pvince81@owncloud.com> Vincent Petry <PVince81@yahoo.fr>
Vincent Petry <pvince81@owncloud.com> Vincent Petry <vincent@vvortex.site>
Vinicius Cubas Brand <vinicius@eita.org.br> Vinicius Cubas Brand <viniciuscb@gmail.com>
Vitaly Kuznetsov <vitty@altlinux.ru>
Vladimir Sapronov <vladimir.sapronov@gmail.com>

View File

@ -9,15 +9,12 @@ use Nextcloud\CodingStandard\Config;
$config = new Config();
$config
->getFinder()
->ignoreVCSIgnored(true)
->exclude('config')
->exclude('data')
->notPath('3rdparty')
->notPath('build/integration/vendor')
->notPath('build/lib')
->notPath('build/node_modules')
->notPath('build/stubs')
->notPath('composer')
->notPath('node_modules')
->notPath('vendor')
->in(__DIR__);
return $config;

@ -1 +1 @@
Subproject commit 0d7c15582f5d2478f333c0487acf88ae881d9206
Subproject commit 7d744fc500cae115e4ce6a8c9f96f283d9239123

26
AUTHORS
View File

@ -24,7 +24,6 @@ Nextcloud is written by:
- Artem Kochnev <MrJeos@gmail.com>
- Artem Sidorenko <artem@posteo.de>
- Arthur Schiwon <blizzz@arthur-schiwon.de>
- Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Axel Helmert <axel.helmert@luka.de>
- Bart Visscher <bartv@thisnet.nl>
- Bartek Przybylski <bart.p.pl@gmail.com>
@ -48,7 +47,6 @@ Nextcloud is written by:
- Byron Marohn <combustible@live.com>
- Carla Schroder <carla@owncloud.com>
- Carlos Cerrillo <ccerrillo@gmail.com>
- Carlos Ferreira <carlos@reendex.com>
- Carsten Wiedmann <carsten_sttgt@gmx.de>
- Christian <16852529+cviereck@users.noreply.github.com>
- Christian Berendt <berendt@b1-systems.de>
@ -83,6 +81,7 @@ Nextcloud is written by:
- Donquixote <marjunebatac@gmail.com>
- Elijah Martin-Merrill <elijah@nyp-itsours.com>
- Eric Masseran <rico.masseran@gmail.com>
- Estelle Poulin <dev@inspiredby.es>
- Evgeny Golyshev <eugulixes@gmail.com>
- Fabrizio Steiner <fabrizio.steiner@gmail.com>
- Felix Epp <work@felixepp.de>
@ -106,13 +105,11 @@ Nextcloud is written by:
- Greta Doci <gretadoci@gmail.com>
- GretaD <gretadoci@gmail.com>
- Guillaume COMPAGNON <gcompagnon@outlook.com>
- Guillaume Virlet <github@virlet.org>
- Hemanth Kumar Veeranki <hems.india1997@gmail.com>
- Hendrik Leppelsack <hendrik@leppelsack.de>
- Holger Hees <holger.hees@gmail.com>
- Ilja Neumann <ineumann@owncloud.com>
- Individual IT Services <info@individual-it.net>
- Iscle <albertiscle9@gmail.com>
- J0WI <J0WI@users.noreply.github.com>
- Jaakko Salo <jaakkos@gmail.com>
- Jacob Neplokh <me@jacobneplokh.com>
@ -133,7 +130,6 @@ Nextcloud is written by:
- Joel S <joel.devbox@protonmail.com>
- Johan Björk <johanimon@gmail.com>
- Johannes Ernst <jernst@indiecomputing.com>
- Johannes Leuker <developers@hosting.de>
- Johannes Riedel <joeried@users.noreply.github.com>
- Johannes Schlichenmaier <johannes@schlichenmaier.info>
- Johannes Willnecker <johannes@willnecker.com>
@ -210,6 +206,7 @@ Nextcloud is written by:
- Michael Kuhn <michael@ikkoku.de>
- Michael Letzgus <www@chronos.michael-letzgus.de>
- Michael Roitzsch <reactorcontrol@icloud.com>
- Michael Roth <michael.roth@rz.uni-augsburg.de>
- Michael Weimann <mail@michael-weimann.eu>
- Michael Zamot <michael@zamot.io>
- Michał Węgrzynek <michal.wegrzynek@malloc.com.pl>
@ -228,6 +225,7 @@ Nextcloud is written by:
- Ole Ostergaard <ole.ostergaard@knime.com>
- Oliver Gasser <oliver.gasser@gmail.com>
- Oliver Kohl D.Sc. <oliver@kohl.bz>
- Oliver Salzburg <oliver.salzburg@gmail.com>
- Oliver Wegner <void1976@gmail.com>
- Olivier Paroz <github@oparoz.com>
- Owen Winkler <a_github@midnightcircus.com>
@ -258,13 +256,11 @@ Nextcloud is written by:
- RealRancor <fisch.666@gmx.de>
- Rello <Rello@users.noreply.github.com>
- Remco Brenninkmeijer <requist1@starmail.nl>
- Richard Steinmetz <richard@steinmetz.cloud>
- Rinat Gumirov <rinat.gumirov@mail.ru>
- Robert Dailey <rcdailey@gmail.com>
- Robin Appelman <robin@icewind.nl>
- Robin McCorkell <robin@mccorkell.me.uk>
- Robin Müller <coder-hugo@users.noreply.github.com>
- Robin Windey <ro.windey@gmail.com>
- Roeland Jago Douma <roeland@famdouma.nl>
- Roger Szabo <roger.szabo@web.de>
- Roland Tapken <roland@bitarbeiter.net>
@ -314,7 +310,6 @@ Nextcloud is written by:
- Stephen Cuppett <steve@cuppett.com>
- Steven Bühner <buehner@me.com>
- Sujith H <sharidasan@owncloud.com>
- Sujith Haridasan <sujith.h@gmail.com>
- Sven Strickroth <email@cs-ware.de>
- Sylvia van Os <sylvia@hackerchick.me>
- Tekhnee <info@tekhnee.org>
@ -344,7 +339,7 @@ Nextcloud is written by:
- Victor Dubiniuk <dubiniuk@owncloud.com>
- Viktor Szépe <viktor@szepe.net>
- Vincent Chan <plus.vincchan@gmail.com>
- Vincent Petry <vincent@nextcloud.com>
- Vincent Petry <pvince81@owncloud.com>
- Vinicius Cubas Brand <vinicius@eita.org.br>
- Vitor Mattos <vitor@php.rio>
- Vlastimil Pecinka <pecinka@email.cz>
@ -354,7 +349,6 @@ Nextcloud is written by:
- Xheni Myrtaj <myrtajxheni@gmail.com>
- Xuanwo <xuanwo@yunify.com>
- adrien <adrien.waksberg@believedigital.com>
- aler9 <46489434+aler9@users.noreply.github.com>
- alexweirig <alex.weirig@technolink.lu>
- b108@volgograd "b108@volgograd"
- bladewing <lukas@ifflaender-family.de>
@ -362,7 +356,6 @@ Nextcloud is written by:
- blizzz <blizzz@arthur-schiwon.de>
- brad2014 <brad2014@users.noreply.github.com>
- brumsel <brumsel@losecatcher.de>
- call-me-matt <nextcloud@matthiasheinisch.de>
- cetra3 <peter@parashift.com.au>
- cmeh <cmeh@users.noreply.github.com>
- comradekingu <epost@anotheragency.no>
@ -372,9 +365,7 @@ Nextcloud is written by:
- derkostka <sebastian.kostka@gmail.com>
- duritong <peter.meier+github@immerda.ch>
- eduardo <eduardo@vnexu.net>
- eleith <online+github@eleith.com>
- enoch <lanxenet@hotmail.com>
- essys <essys@users.noreply.github.com>
- exner104 <59639860+exner104@users.noreply.github.com>
- fabian <fabian@web2.0-apps.de>
- felixboehm <felix@webhippie.de>
@ -382,7 +373,6 @@ Nextcloud is written by:
- fnuesse <fnuesse@techfak.uni-bielefeld.de>
- helix84 <helix84@centrum.sk>
- hkjolhede <hkjolhede@gmail.com>
- hoellen <dev@hoellen.eu>
- ideaship <ideaship@users.noreply.github.com>
- j-ed <juergen@eisfair.org>
- j3l11234 <297259024@qq.com>
@ -390,28 +380,23 @@ Nextcloud is written by:
- jknockaert <jasper@knockaert.nl>
- josh4trunks <joshruehlig@gmail.com>
- karakayasemi <karakayasemi@itu.edu.tr>
- kevin147147 <kevintamool@gmail.com>
- korelstar <korelstar@users.noreply.github.com>
- leith abdulla <online-nextcloud@eleith.com>
- lui87kw <lukas.ifflaender@uni-wuerzburg.de>
- lynn-stephenson <lynn.stephenson@protonmail.com>
- macjohnny <estebanmarin@gmx.ch>
- marco44 <cousinmarc@gmail.com>
- martin-rueegg <martin.rueegg@metaworx.ch>
- martin.mattel@diemattels.at <martin.mattel@diemattels.at>
- martink-p <47943787+martink-p@users.noreply.github.com>
- matt <34400929+call-me-matt@users.noreply.github.com>
- medcloud <42641918+medcloud@users.noreply.github.com>
- michaelletzgus <michaelletzgus@users.noreply.github.com>
- michag86 <micha_g@arcor.de>
- mmccarn <mmccarn-github@mmsionline.us>
- nhirokinet <nhirokinet@nhiroki.net>
- nik gaffney <nik@fo.am>
- nishiki <nishiki@yaegashi.fr>
- onehappycat <one.happy.cat@gmx.com>
- oparoz <owncloud@interfasys.ch>
- phisch <git@philippschaffrath.de>
- rakekniven <mark.ziegler@rakekniven.de>
- rawtaz <rawtaz@users.noreply.github.com>
- root "root@oc.(none)"
- root <root@localhost.localdomain>
- rubo77 <github@r.z11.de>
@ -423,7 +408,6 @@ Nextcloud is written by:
- sualko <klaus@jsxc.org>
- tbartenstein <tbartenstein@users.noreply.github.com>
- tbelau666 <thomas.belau@gmx.de>
- timm2k <timm2k@gmx.de>
- tux-rampage <tux-rampage@users.noreply.github.com>
- v1r0x <vinzenz.rosenkranz@gmail.com>
- voxsim "Simon Vocella"

View File

@ -1,7 +1,7 @@
all: clean dev-setup build-js-production
# Dev env management
dev-setup: clean npm-init
dev-setup: clean clean-dev npm-init
npm-init:
npm ci
@ -43,6 +43,9 @@ clean:
rm -rf apps/workflowengine/js/
rm -rf core/js/dist
clean-dev:
rm -rf node_modules
clean-git: clean
git checkout -- apps/accessibility/js/
git checkout -- apps/comments/js/

View File

@ -29,7 +29,7 @@ Enterprise? Public Sector or Education user? You may want to have a look into [*
## Get in touch 💬
* [📋 Forum](https://help.nextcloud.com)
* [👥 Facebook](https://www.facebook.com/nextclouders)
* [👥 Facebook](https://facebook.com/nextclouders)
* [🐣 Twitter](https://twitter.com/Nextclouders)
* [🐘 Mastodon](https://mastodon.xyz/@nextcloud)
@ -56,9 +56,8 @@ Several apps that are included by default in regular releases such as [First run
Otherwise, git checkouts can be handled the same as release archives, by using the `stable*` branches. Note they should never be used on production systems.
### Working with front-end code 🏗
#### Building
### Building front-end code 🏗
We are moving more and more towards using Vue.js in the frontend, starting with Settings. For building the code on changes, use these terminal commands in the root folder:
@ -76,8 +75,6 @@ make watch-js
make build-js-production
```
#### Commiting changes
**When making changes, also commit the compiled files!**
We still use Handlebars templates some places in Files and Settings. We will replace these step-by-step with Vue.js, but in the meantime you need to compile them separately.
@ -92,29 +89,6 @@ Then inside the root folder of your local Nextcloud development installation, ru
./build/compile-handlebars-templates.sh
```
Before checking in JS changes, make sure to also build for production:
```
make build-js-production
```
Then add the compiled files for committing.
To save some time, to only rebuild for a specific app, use the following and replace the module with the app name:
```
MODULE=user_status make build-js-production
```
Please note that if you used `make build-js` or `make watch-js` before, you'll notice that a lot of files were marked as changed, so might need to clear the workspace first.
### Working with back-end code 🏗
When changing back-end PHP code, in general no additional steps are needed before checking in.
However, if new files were created, you will need to run the following command to update the autoloader files:
```bash
build/autoloaderchecker.sh
```
After that, please also include the autoloader file changes in your commits.
### Tools we use 🛠

View File

@ -5,7 +5,7 @@
<name>Accessibility</name>
<summary>Accessibility options for nextcloud</summary>
<description><![CDATA[Provides multiple accessibilities options to ease your use of Nextcloud]]></description>
<version>1.7.0</version>
<version>1.6.0</version>
<licence>agpl</licence>
<author>John Molakvoæ</author>
<namespace>Accessibility</namespace>
@ -16,7 +16,7 @@
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="22" max-version="22"/>
<nextcloud min-version="20" max-version="20"/>
</dependencies>
<repair-steps>

View File

@ -31,17 +31,17 @@ return [
'ocs' => [
[
'name' => 'Config#getConfig',
'url' => '/api/v1/config',
'url' => '/api/v1/config',
'verb' => 'GET',
],
[
'name' => 'Config#setConfig',
'url' => '/api/v1/config/{key}',
'url' => '/api/v1/config/{key}',
'verb' => 'PUT',
],
[
'name' => 'Config#deleteConfig',
'url' => '/api/v1/config/{key}',
'url' => '/api/v1/config/{key}',
'verb' => 'DELETE',
],
]

View File

@ -37,13 +37,11 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
private $vendorDir;
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
@ -59,13 +57,6 @@ class ClassLoader
private $missingClasses = array();
private $apcuPrefix;
private static $registeredLoaders = array();
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@ -309,17 +300,6 @@ class ClassLoader
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
@ -328,10 +308,6 @@ class ClassLoader
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
@ -391,16 +367,6 @@ class ClassLoader
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup

View File

@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'OCA\\Accessibility\\AccessibilityProvider' => $baseDir . '/../lib/AccessibilityProvider.php',
'OCA\\Accessibility\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
'OCA\\Accessibility\\Controller\\AccessibilityController' => $baseDir . '/../lib/Controller/AccessibilityController.php',

View File

@ -23,12 +23,12 @@ class ComposerAutoloaderInitAccessibility
}
spl_autoload_register(array('ComposerAutoloaderInitAccessibility', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitAccessibility', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitAccessibility::getInitializer($loader));
} else {

View File

@ -21,7 +21,6 @@ class ComposerStaticInitAccessibility
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'OCA\\Accessibility\\AccessibilityProvider' => __DIR__ . '/..' . '/../lib/AccessibilityProvider.php',
'OCA\\Accessibility\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
'OCA\\Accessibility\\Controller\\AccessibilityController' => __DIR__ . '/..' . '/../lib/Controller/AccessibilityController.php',

View File

@ -2,9 +2,8 @@
$color-main-text: #d8d8d8;
$color-main-background: #181818;
$color-background-hover: lighten($color-main-background, 4%);
$color-background-dark: lighten($color-main-background, 7%);
$color-background-darker: lighten($color-main-background, 14%);
$color-background-dark: lighten($color-main-background, 4%);
$color-background-darker: lighten($color-main-background, 8%);
$color-placeholder-light: lighten($color-main-background, 10%);
$color-placeholder-dark: lighten($color-main-background, 20%);
@ -54,12 +53,11 @@ $color-border-dark: lighten($color-main-background, 14%);
.bubble,
.app-navigation-entry-menu,
.popovermenu,
.popover__menu {
.popovermenu {
li {
> button,
> a,
> .menuitem, > .popover__menuitem {
> .menuitem {
> img {
filter: invert(100%);
}
@ -73,22 +71,6 @@ $color-border-dark: lighten($color-main-background, 14%);
border: 1px solid var(--color-border);
}
.popover[x-placement^='top'] .popover__arrow {
border-top-color: var(--color-border);
}
.popover[x-placement^='bottom'] .popover__arrow {
border-bottom-color: var(--color-border);
}
.popover[x-placement^='left'] .popover__arrow {
border-left-color: var(--color-border);
}
.popover[x-placement^='right'] .popover__arrow {
border-right-color: var(--color-border);
}
.popover .popover__inner {
border: 1px solid var(--color-border);
}
// Prevent slideshow icons from going dark
#slideshow {
[class^='icon-'], [class*=' icon-']{

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -53,41 +53,41 @@ class AccessibilityProvider {
public function __construct(string $appName,
IURLGenerator $urlGenerator,
IL10N $l) {
$this->appName = $appName;
$this->appName = $appName;
$this->urlGenerator = $urlGenerator;
$this->l = $l;
$this->l = $l;
}
public function getThemes() {
return [
[
'id' => 'dark',
'img' => $this->urlGenerator->imagePath($this->appName, 'theme-dark.jpg'),
'id' => 'dark',
'img' => $this->urlGenerator->imagePath($this->appName, 'theme-dark.jpg'),
'title' => $this->l->t('Dark theme'),
'enableLabel' => $this->l->t('Enable dark theme'),
'text' => $this->l->t('A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.')
'text' => $this->l->t('A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.')
]
];
}
public function getHighContrast() {
return [
'id' => 'highcontrast',
'img' => $this->urlGenerator->imagePath($this->appName, 'mode-highcontrast.jpg'),
'id' => 'highcontrast',
'img' => $this->urlGenerator->imagePath($this->appName, 'mode-highcontrast.jpg'),
'title' => $this->l->t('High contrast mode'),
'enableLabel' => $this->l->t('Enable high contrast mode'),
'text' => $this->l->t('A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.')
'text' => $this->l->t('A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.')
];
}
public function getFonts() {
return [
[
'id' => 'fontdyslexic',
'img' => $this->urlGenerator->imagePath($this->appName, 'font-opendyslexic.jpg'),
'id' => 'fontdyslexic',
'img' => $this->urlGenerator->imagePath($this->appName, 'font-opendyslexic.jpg'),
'title' => $this->l->t('Dyslexia font'),
'enableLabel' => $this->l->t('Enable dyslexia font'),
'text' => $this->l->t('OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.')
'text' => $this->l->t('OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.')
]
];
}

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
/**
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author Alexey Pyltsyn <lex61rus@gmail.com>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Joas Schilling <coding@schilljs.com>
* @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
@ -35,7 +36,9 @@ use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\IAppContainer;
use OCP\IConfig;
use OCP\IInitialStateService;
use OCP\IURLGenerator;
use OCP\IUserSession;
use function count;
@ -52,11 +55,11 @@ class Application extends App implements IBootstrap {
}
public function register(IRegistrationContext $context): void {
$context->registerInitialStateProvider(JSDataService::class);
}
public function boot(IBootContext $context): void {
$context->injectFn([$this, 'injectCss']);
$context->injectFn([$this, 'registerInitialState']);
}
public function injectCss(IUserSession $userSession,
@ -81,4 +84,13 @@ class Application extends App implements IBootstrap {
\OCP\Util::addHeader('link', ['rel' => 'stylesheet', 'media' => '(prefers-color-scheme: dark)', 'href' => $linkToCSS]);
}
}
public function registerInitialState(IInitialStateService $initialState,
IAppContainer $container) {
$initialState->provideLazyInitialState(self::APP_ID, 'data', function () use ($container) {
/** @var JSDataService $data */
$data = $container->query(JSDataService::class);
return $data;
});
}
}

View File

@ -40,12 +40,14 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataDisplayResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\ILogger;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
use ScssPhp\ScssPhp\Compiler;
use ScssPhp\ScssPhp\Exception\ParserException;
use ScssPhp\ScssPhp\OutputStyle;
use ScssPhp\ScssPhp\Formatter\Crunched;
class AccessibilityController extends Controller {
@ -58,15 +60,24 @@ class AccessibilityController extends Controller {
/** @var IConfig */
private $config;
/** @var LoggerInterface */
/** @var IUserManager */
private $userManager;
/** @var ILogger */
private $logger;
/** @var IURLGenerator */
private $urlGenerator;
/** @var ITimeFactory */
protected $timeFactory;
/** @var IUserSession */
private $userSession;
/** @var IAppManager */
private $appManager;
/** @var IconsCacher */
protected $iconsCacher;
@ -76,29 +87,45 @@ class AccessibilityController extends Controller {
/** @var null|string */
private $injectedVariables;
/** @var string */
private $appRoot;
/**
* Account constructor.
*
* @param string $appName
* @param IRequest $request
* @param IConfig $config
* @param IUserManager $userManager
* @param ILogger $logger
* @param IURLGenerator $urlGenerator
* @param ITimeFactory $timeFactory
* @param IUserSession $userSession
* @param IAppManager $appManager
* @param \OC_Defaults $defaults
*/
public function __construct(string $appName,
IRequest $request,
IConfig $config,
LoggerInterface $logger,
IUserManager $userManager,
ILogger $logger,
IURLGenerator $urlGenerator,
ITimeFactory $timeFactory,
IUserSession $userSession,
IAppManager $appManager,
IconsCacher $iconsCacher,
\OC_Defaults $defaults) {
parent::__construct($appName, $request);
$this->appName = $appName;
$this->config = $config;
$this->logger = $logger;
$this->timeFactory = $timeFactory;
$this->userSession = $userSession;
$this->iconsCacher = $iconsCacher;
$this->defaults = $defaults;
$this->appName = $appName;
$this->config = $config;
$this->userManager = $userManager;
$this->logger = $logger;
$this->urlGenerator = $urlGenerator;
$this->timeFactory = $timeFactory;
$this->userSession = $userSession;
$this->appManager = $appManager;
$this->iconsCacher = $iconsCacher;
$this->defaults = $defaults;
$this->serverRoot = \OC::$SERVERROOT;
$this->appRoot = $appManager->getAppPath($this->appName);
$this->appRoot = $this->appManager->getAppPath($this->appName);
}
/**
@ -109,8 +136,8 @@ class AccessibilityController extends Controller {
* @return DataDisplayResponse
*/
public function getCss(): DataDisplayResponse {
$css = '';
$imports = '';
$css = '';
$imports = '';
if ($this->userSession->isLoggedIn()) {
$userValues = $this->getUserValues();
} else {
@ -134,7 +161,8 @@ class AccessibilityController extends Controller {
]);
// Continue after throw
$scss->setOutputStyle(OutputStyle::COMPRESSED);
$scss->setIgnoreErrors(true);
$scss->setFormatter(Crunched::class);
// Import theme, variables and compile css4 variables
try {
@ -145,12 +173,7 @@ class AccessibilityController extends Controller {
'@import "css-variables.scss";'
);
} catch (ParserException $e) {
$this->logger->error($e->getMessage(),
[
'app' => 'core',
'exception' => $e,
]
);
$this->logger->error($e->getMessage(), ['app' => 'core']);
}
}
@ -159,7 +182,7 @@ class AccessibilityController extends Controller {
// Rebase all urls
$appWebRoot = substr($this->appRoot, strlen($this->serverRoot) - strlen(\OC::$WEBROOT));
$css = $this->rebaseUrls($css, $appWebRoot . '/css');
$css = $this->rebaseUrls($css, $appWebRoot . '/css');
if (in_array('dark', $userValues) && $this->iconsCacher->getCachedList() && $this->iconsCacher->getCachedList()->getSize() > 0) {
$iconsCss = $this->invertSvgIconsColor($this->iconsCacher->getCachedList()->getContent());
@ -192,7 +215,7 @@ class AccessibilityController extends Controller {
*/
private function getUserValues(): array {
$userTheme = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'theme', false);
$userFont = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'font', false);
$userFont = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'font', false);
$userHighContrast = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'highcontrast', false);
return [$userTheme, $userHighContrast, $userFont];
@ -217,7 +240,7 @@ class AccessibilityController extends Controller {
* @return string
*/
private function rebaseUrls(string $css, string $webDir): string {
$re = '/url\([\'"]([^\/][\.\w?=\/-]*)[\'"]\)/x';
$re = '/url\([\'"]([^\/][\.\w?=\/-]*)[\'"]\)/x';
$subst = 'url(\'' . $webDir . '/$1\')';
return preg_replace($re, $subst, $css);
@ -259,12 +282,7 @@ class AccessibilityController extends Controller {
$scss->compile($variables);
$this->injectedVariables = $variables;
} catch (ParserException $e) {
$this->logger->error($e->getMessage(),
[
'app' => 'core',
'exception' => $e,
]
);
$this->logger->logException($e, ['app' => 'core']);
}
return $variables;
}

View File

@ -75,11 +75,11 @@ class ConfigController extends OCSController {
IUserSession $userSession,
AccessibilityProvider $accessibilityProvider) {
parent::__construct($appName, $request);
$this->appName = $appName;
$this->config = $config;
$this->userSession = $userSession;
$this->appName = $appName;
$this->config = $config;
$this->userSession = $userSession;
$this->accessibilityProvider = $accessibilityProvider;
$this->userId = $userSession->getUser()->getUID();
$this->userId = $userSession->getUser()->getUID();
}
/**
@ -115,9 +115,9 @@ class ConfigController extends OCSController {
$themes = $this->accessibilityProvider->getThemes();
$highcontrast = [$this->accessibilityProvider->getHighContrast()];
$fonts = $this->accessibilityProvider->getFonts();
$fonts = $this->accessibilityProvider->getFonts();
$availableOptions = array_map(function ($option): string {
$availableOptions = array_map(function ($option) {
return $option['id'];
}, array_merge($themes, $highcontrast, $fonts));

View File

@ -27,11 +27,10 @@ declare(strict_types=1);
namespace OCA\Accessibility\Service;
use OCA\Accessibility\AppInfo\Application;
use OCP\AppFramework\Services\InitialStateProvider;
use OCP\IConfig;
use OCP\IUserSession;
class JSDataService extends InitialStateProvider {
class JSDataService implements \JsonSerializable {
/** @var IUserSession */
private $userSession;
/** @var IConfig */
@ -45,11 +44,7 @@ class JSDataService extends InitialStateProvider {
$this->config = $config;
}
public function getKey(): string {
return 'data';
}
public function getData() {
public function jsonSerialize() {
$user = $this->userSession->getUser();
if ($user === null) {

View File

@ -3,7 +3,6 @@
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
* @copyright Copyright (c) 2019 Janis Köhr <janiskoehr@icloud.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
@ -27,8 +26,8 @@ namespace OCA\Accessibility\Settings;
use OCA\Accessibility\AccessibilityProvider;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\IConfig;
use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUserSession;
@ -55,47 +54,57 @@ class Personal implements ISettings {
/** @var AccessibilityProvider */
private $accessibilityProvider;
/** @var IInitialState */
/** @var IInitialStateService */
private $initialStateService;
/**
* Settings constructor.
*
* @param string $appName
* @param IConfig $config
* @param IUserSession $userSession
* @param IL10N $l
* @param IURLGenerator $urlGenerator
* @param AccessibilityProvider $accessibilityProvider
*/
public function __construct(string $appName,
IConfig $config,
IUserSession $userSession,
IL10N $l,
IURLGenerator $urlGenerator,
AccessibilityProvider $accessibilityProvider,
IInitialState $initialStateService) {
$this->appName = $appName;
$this->config = $config;
$this->userSession = $userSession;
$this->l = $l;
$this->urlGenerator = $urlGenerator;
IInitialStateService $initialStateService) {
$this->appName = $appName;
$this->config = $config;
$this->userSession = $userSession;
$this->l = $l;
$this->urlGenerator = $urlGenerator;
$this->accessibilityProvider = $accessibilityProvider;
$this->initialStateService = $initialStateService;
$this->initialStateService = $initialStateService;
}
/**
* @return TemplateResponse returns the instance with all parameters set, ready to be rendered
* @since 9.1
*/
public function getForm(): TemplateResponse {
public function getForm() {
Util::addScript('accessibility', 'accessibility');
Util::addStyle('accessibility', 'style');
$availableConfig = [
'themes' => $this->accessibilityProvider->getThemes(),
'fonts' => $this->accessibilityProvider->getFonts(),
'fonts' => $this->accessibilityProvider->getFonts(),
'highcontrast' => $this->accessibilityProvider->getHighContrast()
];
$userConfig = [
'highcontrast' => $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'highcontrast', false),
'theme' => $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'theme', false),
'font' => $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'font', false)
'theme' => $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'theme', false),
'font' => $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'font', false)
];
$this->initialStateService->provideInitialState('available-config', $availableConfig);
$this->initialStateService->provideInitialState('user-config', $userConfig);
$this->initialStateService->provideInitialState($this->appName, 'available-config', $availableConfig);
$this->initialStateService->provideInitialState($this->appName, 'user-config', $userConfig);
return new TemplateResponse($this->appName, 'settings-personal');
}
@ -104,7 +113,7 @@ class Personal implements ISettings {
* @return string the section ID, e.g. 'sharing'
* @since 9.1
*/
public function getSection(): string {
public function getSection() {
return $this->appName;
}
@ -116,7 +125,7 @@ class Personal implements ISettings {
* E.g.: 70
* @since 9.1
*/
public function getPriority(): int {
public function getPriority() {
return 40;
}
}

View File

@ -2,7 +2,6 @@
/**
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
@ -49,9 +48,9 @@ class PersonalSection implements IIconSection {
public function __construct(string $appName,
IURLGenerator $urlGenerator,
IL10N $l) {
$this->appName = $appName;
$this->appName = $appName;
$this->urlGenerator = $urlGenerator;
$this->l = $l;
$this->l = $l;
}
/**

View File

@ -1,7 +1,7 @@
/**
* @copyright Copyright (c) 2020 Roeland Jago Douma <roeland@famdouma.nl>
*
* @author Jan C. Borchardt <hey@jancborchardt.net>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
@ -17,10 +17,8 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { loadState } from '@nextcloud/initial-state'
OCA.Accessibility = loadState('accessibility', 'data')

View File

@ -16,10 +16,8 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import Vue from 'vue'
import { loadState } from '@nextcloud/initial-state'
import App from './Accessibility.vue'

View File

@ -1,25 +1,3 @@
/**
* @copyright Copyright (c) 2016 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
const path = require('path')
module.exports = {

View File

@ -5,7 +5,7 @@
<name>Auditing / Logging</name>
<summary>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</summary>
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
<version>1.11.0</version>
<version>1.10.0</version>
<licence>agpl</licence>
<author>Nextcloud</author>
<namespace>AdminAudit</namespace>
@ -15,7 +15,7 @@
<category>monitoring</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="22" max-version="22"/>
<nextcloud min-version="20" max-version="20"/>
</dependencies>
<background-jobs>
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>

View File

@ -37,13 +37,11 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
private $vendorDir;
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
@ -59,13 +57,6 @@ class ClassLoader
private $missingClasses = array();
private $apcuPrefix;
private static $registeredLoaders = array();
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@ -309,17 +300,6 @@ class ClassLoader
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
@ -328,10 +308,6 @@ class ClassLoader
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
@ -391,16 +367,6 @@ class ClassLoader
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup

View File

@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'OCA\\AdminAudit\\Actions\\Action' => $baseDir . '/../lib/Actions/Action.php',
'OCA\\AdminAudit\\Actions\\AppManagement' => $baseDir . '/../lib/Actions/AppManagement.php',
'OCA\\AdminAudit\\Actions\\Auth' => $baseDir . '/../lib/Actions/Auth.php',
@ -20,5 +19,4 @@ return array(
'OCA\\AdminAudit\\Actions\\Versions' => $baseDir . '/../lib/Actions/Versions.php',
'OCA\\AdminAudit\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
'OCA\\AdminAudit\\BackgroundJobs\\Rotate' => $baseDir . '/../lib/BackgroundJobs/Rotate.php',
'OCA\\AdminAudit\\Listener\\CriticalActionPerformedEventListener' => $baseDir . '/../lib/Listener/CriticalActionPerformedEventListener.php',
);

View File

@ -23,12 +23,12 @@ class ComposerAutoloaderInitAdminAudit
}
spl_autoload_register(array('ComposerAutoloaderInitAdminAudit', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitAdminAudit', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitAdminAudit::getInitializer($loader));
} else {

View File

@ -21,7 +21,6 @@ class ComposerStaticInitAdminAudit
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'OCA\\AdminAudit\\Actions\\Action' => __DIR__ . '/..' . '/../lib/Actions/Action.php',
'OCA\\AdminAudit\\Actions\\AppManagement' => __DIR__ . '/..' . '/../lib/Actions/AppManagement.php',
'OCA\\AdminAudit\\Actions\\Auth' => __DIR__ . '/..' . '/../lib/Actions/Auth.php',
@ -35,7 +34,6 @@ class ComposerStaticInitAdminAudit
'OCA\\AdminAudit\\Actions\\Versions' => __DIR__ . '/..' . '/../lib/Actions/Versions.php',
'OCA\\AdminAudit\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
'OCA\\AdminAudit\\BackgroundJobs\\Rotate' => __DIR__ . '/..' . '/../lib/BackgroundJobs/Rotate.php',
'OCA\\AdminAudit\\Listener\\CriticalActionPerformedEventListener' => __DIR__ . '/..' . '/../lib/Listener/CriticalActionPerformedEventListener.php',
);
public static function getInitializer(ClassLoader $loader)

View File

@ -29,13 +29,16 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions;
use Psr\Log\LoggerInterface;
use OCP\ILogger;
class Action {
/** @var LoggerInterface */
/** @var ILogger */
private $logger;
public function __construct(LoggerInterface $logger) {
/**
* @param ILogger $logger
*/
public function __construct(ILogger $logger) {
$this->logger = $logger;
}
@ -50,7 +53,7 @@ class Action {
public function log(string $text,
array $params,
array $elements,
bool $obfuscateParameters = false): void {
bool $obfuscateParameters = false) {
foreach ($elements as $element) {
if (!isset($params[$element])) {
if ($obfuscateParameters) {

View File

@ -32,7 +32,7 @@ class AppManagement extends Action {
/**
* @param string $appName
*/
public function enableApp(string $appName): void {
public function enableApp(string $appName) {
$this->log('App "%s" enabled',
['app' => $appName],
['app']
@ -43,7 +43,7 @@ class AppManagement extends Action {
* @param string $appName
* @param string[] $groups
*/
public function enableAppForGroups(string $appName, array $groups): void {
public function enableAppForGroups(string $appName, array $groups) {
$this->log('App "%1$s" enabled for groups: %2$s',
['app' => $appName, 'groups' => implode(', ', $groups)],
['app', 'groups']
@ -53,7 +53,7 @@ class AppManagement extends Action {
/**
* @param string $appName
*/
public function disableApp(string $appName): void {
public function disableApp(string $appName) {
$this->log('App "%s" disabled',
['app' => $appName],
['app']

View File

@ -33,7 +33,7 @@ namespace OCA\AdminAudit\Actions;
* @package OCA\AdminAudit\Actions
*/
class Auth extends Action {
public function loginAttempt(array $params): void {
public function loginAttempt(array $params) {
$this->log(
'Login attempt: "%s"',
$params,
@ -44,7 +44,7 @@ class Auth extends Action {
);
}
public function loginSuccessful(array $params): void {
public function loginSuccessful(array $params) {
$this->log(
'Login successful: "%s"',
$params,
@ -55,7 +55,7 @@ class Auth extends Action {
);
}
public function logout(array $params): void {
public function logout(array $params) {
$this->log(
'Logout occurred',
[],

View File

@ -32,7 +32,7 @@ class Console extends Action {
/**
* @param $arguments
*/
public function runCommand(array $arguments): void {
public function runCommand(array $arguments) {
if (!isset($arguments[1]) || $arguments[1] === '_completion') {
// Don't log autocompletion
return;

View File

@ -38,7 +38,7 @@ class Files extends Action {
*
* @param array $params
*/
public function read(array $params): void {
public function read(array $params) {
$this->log(
'File accessed: "%s"',
$params,
@ -53,7 +53,7 @@ class Files extends Action {
*
* @param array $params
*/
public function rename(array $params): void {
public function rename(array $params) {
$this->log(
'File renamed: "%s" to "%s"',
$params,
@ -69,7 +69,7 @@ class Files extends Action {
*
* @param array $params
*/
public function create(array $params): void {
public function create(array $params) {
if ($params['path'] === '/' || $params['path'] === '' || $params['path'] === null) {
return;
}
@ -88,7 +88,7 @@ class Files extends Action {
*
* @param array $params
*/
public function copy(array $params): void {
public function copy(array $params) {
$this->log(
'File copied: "%s" to "%s"',
$params,
@ -104,7 +104,7 @@ class Files extends Action {
*
* @param array $params
*/
public function write(array $params): void {
public function write(array $params) {
if ($params['path'] === '/' || $params['path'] === '' || $params['path'] === null) {
return;
}
@ -123,7 +123,7 @@ class Files extends Action {
*
* @param array $params
*/
public function update(array $params): void {
public function update(array $params) {
$this->log(
'File updated: "%s"',
$params,
@ -138,7 +138,7 @@ class Files extends Action {
*
* @param array $params
*/
public function delete(array $params): void {
public function delete(array $params) {
$this->log(
'File deleted: "%s"',
$params,
@ -153,7 +153,7 @@ class Files extends Action {
*
* @param array $params
*/
public function preview(array $params): void {
public function preview(array $params) {
$this->log(
'Preview accessed: "%s" (width: "%s", height: "%s" crop: "%s", mode: "%s")',
$params,

View File

@ -45,7 +45,7 @@ class GroupManagement extends Action {
* @param IGroup $group
* @param IUser $user
*/
public function addUser(IGroup $group, IUser $user): void {
public function addUser(IGroup $group, IUser $user) {
$this->log('User "%s" added to group "%s"',
[
'group' => $group->getGID(),
@ -63,7 +63,7 @@ class GroupManagement extends Action {
* @param IGroup $group
* @param IUser $user
*/
public function removeUser(IGroup $group, IUser $user): void {
public function removeUser(IGroup $group, IUser $user) {
$this->log('User "%s" removed from group "%s"',
[
'group' => $group->getGID(),
@ -74,13 +74,13 @@ class GroupManagement extends Action {
]
);
}
/**
* log create group to group event
*
* @param IGroup $group
*/
public function createGroup(IGroup $group): void {
public function createGroup(IGroup $group) {
$this->log('Group created: "%s"',
[
'group' => $group->getGID()
@ -96,7 +96,7 @@ class GroupManagement extends Action {
*
* @param IGroup $group
*/
public function deleteGroup(IGroup $group): void {
public function deleteGroup(IGroup $group) {
$this->log('Group deleted: "%s"',
[
'group' => $group->getGID()

View File

@ -41,7 +41,7 @@ class Security extends Action {
* @param IUser $user
* @param array $params
*/
public function twofactorFailed(IUser $user, array $params): void {
public function twofactorFailed(IUser $user, array $params) {
$params['uid'] = $user->getUID();
$params['displayName'] = $user->getDisplayName();
@ -62,7 +62,7 @@ class Security extends Action {
* @param IUser $user
* @param array $params
*/
public function twofactorSuccess(IUser $user, array $params): void {
public function twofactorSuccess(IUser $user, array $params) {
$params['uid'] = $user->getUID();
$params['displayName'] = $user->getDisplayName();

View File

@ -7,7 +7,6 @@ declare(strict_types=1);
*
* @author Daniel Calviño Sánchez <danxuliu@gmail.com>
* @author Joas Schilling <coding@schilljs.com>
* @author Julius Härtl <jus@bitgrid.net>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
*
@ -43,7 +42,7 @@ class Sharing extends Action {
*
* @param array $params
*/
public function shared(array $params): void {
public function shared(array $params) {
if ($params['shareType'] === IShare::TYPE_LINK) {
$this->log(
'The %s "%s" with ID "%s" has been shared via link with permissions "%s" (Share ID: %s)',
@ -147,19 +146,6 @@ class Sharing extends Action {
'id',
]
);
} elseif ($params['shareType'] === IShare::TYPE_DECK) {
$this->log(
'The %s "%s" with ID "%s" has been shared to the deck card "%s" with permissions "%s" (Share ID: %s)',
$params,
[
'itemType',
'itemTarget',
'itemSource',
'shareWith',
'permissions',
'id',
]
);
}
}
@ -168,7 +154,7 @@ class Sharing extends Action {
*
* @param array $params
*/
public function unshare(array $params): void {
public function unshare(array $params) {
if ($params['shareType'] === IShare::TYPE_LINK) {
$this->log(
'The %s "%s" with ID "%s" has been unshared (Share ID: %s)',
@ -264,18 +250,6 @@ class Sharing extends Action {
'id',
]
);
} elseif ($params['shareType'] === IShare::TYPE_DECK) {
$this->log(
'The %s "%s" with ID "%s" has been unshared from the deck card "%s" (Share ID: %s)',
$params,
[
'itemType',
'fileTarget',
'itemSource',
'shareWith',
'id',
]
);
}
}
@ -284,7 +258,7 @@ class Sharing extends Action {
*
* @param array $params
*/
public function updatePermissions(array $params): void {
public function updatePermissions(array $params) {
$this->log(
'The permissions of the shared %s "%s" with ID "%s" have been changed to "%s"',
$params,
@ -302,7 +276,7 @@ class Sharing extends Action {
*
* @param array $params
*/
public function updatePassword(array $params): void {
public function updatePassword(array $params) {
$this->log(
'The password of the publicly shared %s "%s" with ID "%s" has been changed',
$params,
@ -319,27 +293,16 @@ class Sharing extends Action {
*
* @param array $params
*/
public function updateExpirationDate(array $params): void {
if ($params['date'] === null) {
$this->log(
'The expiration date of the publicly shared %s with ID "%s" has been removed',
$params,
[
'itemType',
'itemSource',
]
);
} else {
$this->log(
'The expiration date of the publicly shared %s with ID "%s" has been changed to "%s"',
$params,
[
'itemType',
'itemSource',
'date',
]
);
}
public function updateExpirationDate(array $params) {
$this->log(
'The expiration date of the publicly shared %s with ID "%s" has been changed to "%s"',
$params,
[
'itemType',
'itemSource',
'date',
]
);
}
/**
@ -347,7 +310,7 @@ class Sharing extends Action {
*
* @param array $params
*/
public function shareAccessed(array $params): void {
public function shareAccessed(array $params) {
$this->log(
'The shared %s with the token "%s" by "%s" has been accessed.',
$params,

View File

@ -29,13 +29,13 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions;
class Trashbin extends Action {
public function delete(array $params): void {
public function delete(array $params) {
$this->log('File "%s" deleted from trash bin.',
['path' => $params['path']], ['path']
);
}
public function restore(array $params): void {
public function restore(array $params) {
$this->log('File "%s" restored from trash bin.',
['path' => $params['filePath']], ['path']
);

View File

@ -44,7 +44,7 @@ class UserManagement extends Action {
*
* @param array $params
*/
public function create(array $params): void {
public function create(array $params) {
$this->log(
'User created: "%s"',
$params,
@ -59,7 +59,7 @@ class UserManagement extends Action {
*
* @param string $uid
*/
public function assign(string $uid): void {
public function assign(string $uid) {
$this->log(
'UserID assigned: "%s"',
[ 'uid' => $uid ],
@ -72,7 +72,7 @@ class UserManagement extends Action {
*
* @param array $params
*/
public function delete(array $params): void {
public function delete(array $params) {
$this->log(
'User deleted: "%s"',
$params,
@ -87,7 +87,7 @@ class UserManagement extends Action {
*
* @param string $uid
*/
public function unassign(string $uid): void {
public function unassign(string $uid) {
$this->log(
'UserID unassigned: "%s"',
[ 'uid' => $uid ],
@ -100,7 +100,7 @@ class UserManagement extends Action {
*
* @param array $params
*/
public function change(array $params): void {
public function change(array $params) {
switch ($params['feature']) {
case 'enabled':
$this->log(
@ -130,7 +130,7 @@ class UserManagement extends Action {
*
* @param IUser $user
*/
public function setPassword(IUser $user): void {
public function setPassword(IUser $user) {
if ($user->getBackendClassName() === 'Database') {
$this->log(
'Password of user "%s" has been changed',

View File

@ -29,7 +29,7 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions;
class Versions extends Action {
public function rollback(array $params): void {
public function rollback(array $params) {
$this->log('Version "%s" of "%s" was restored.',
[
'version' => $params['revision'],
@ -39,7 +39,7 @@ class Versions extends Action {
);
}
public function delete(array $params): void {
public function delete(array $params) {
$this->log('Version "%s" was deleted.',
['path' => $params['path']],
['path']

View File

@ -8,7 +8,6 @@ declare(strict_types=1);
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Daniel Kesselberg <mail@danielkesselberg.de>
* @author GrayFix <grayfix@gmail.com>
* @author Joas Schilling <coding@schilljs.com>
* @author Morris Jobke <hey@morrisjobke.de>
@ -49,7 +48,6 @@ use OCA\AdminAudit\Actions\Sharing;
use OCA\AdminAudit\Actions\Trashbin;
use OCA\AdminAudit\Actions\UserManagement;
use OCA\AdminAudit\Actions\Versions;
use OCA\AdminAudit\Listener\CriticalActionPerformedEventListener;
use OCP\App\ManagerEvent;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
@ -59,20 +57,19 @@ use OCP\Authentication\TwoFactorAuth\IProvider;
use OCP\Console\ConsoleEvent;
use OCP\IConfig;
use OCP\IGroupManager;
use OCP\ILogger;
use OCP\IPreview;
use OCP\IServerContainer;
use OCP\IUserSession;
use OCP\Log\Audit\CriticalActionPerformedEvent;
use OCP\Log\ILogFactory;
use OCP\Share;
use OCP\Util;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
class Application extends App implements IBootstrap {
/** @var LoggerInterface */
/** @var ILogger */
protected $logger;
public function __construct() {
@ -80,11 +77,10 @@ class Application extends App implements IBootstrap {
}
public function register(IRegistrationContext $context): void {
$context->registerEventListener(CriticalActionPerformedEvent::class, CriticalActionPerformedEventListener::class);
}
public function boot(IBootContext $context): void {
/** @var LoggerInterface $logger */
/** @var ILogger $logger */
$logger = $context->injectFn(
Closure::fromCallable([$this, 'getLogger'])
);
@ -97,22 +93,22 @@ class Application extends App implements IBootstrap {
}
private function getLogger(IConfig $config,
LoggerInterface $logger,
ILogFactory $logFactory): LoggerInterface {
ILogger $logger,
ILogFactory $logFactory): ILogger {
$default = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/audit.log';
$logFile = $config->getAppValue('admin_audit', 'logfile', $default);
if ($logFile === null) {
return $logger;
}
return $logFactory->getCustomPsrLogger($logFile);
return $logFactory->getCustomLogger($logFile);
}
/**
* Register hooks in order to log them
*/
private function registerHooks(LoggerInterface $logger,
IServerContainer $serverContainer): void {
private function registerHooks(ILogger $logger,
IServerContainer $serverContainer) {
$this->userManagementHooks($logger, $serverContainer->get(IUserSession::class));
$this->groupHooks($logger, $serverContainer->get(IGroupManager::class));
$this->authHooks($logger);
@ -131,8 +127,8 @@ class Application extends App implements IBootstrap {
$this->securityHooks($logger, $eventDispatcher);
}
private function userManagementHooks(LoggerInterface $logger,
IUserSession $userSession): void {
private function userManagementHooks(ILogger $logger,
IUserSession $userSession) {
$userActions = new UserManagement($logger);
Util::connectHook('OC_User', 'post_createUser', $userActions, 'create');
@ -145,8 +141,8 @@ class Application extends App implements IBootstrap {
$userSession->listen('\OC\User', 'postUnassignedUserId', [$userActions, 'unassign']);
}
private function groupHooks(LoggerInterface $logger,
IGroupManager $groupManager): void {
private function groupHooks(ILogger $logger,
IGroupManager $groupManager) {
$groupActions = new GroupManagement($logger);
assert($groupManager instanceof GroupManager);
@ -156,7 +152,7 @@ class Application extends App implements IBootstrap {
$groupManager->listen('\OC\Group', 'postCreate', [$groupActions, 'createGroup']);
}
private function sharingHooks(LoggerInterface $logger): void {
private function sharingHooks(ILogger $logger) {
$shareActions = new Sharing($logger);
Util::connectHook(Share::class, 'post_shared', $shareActions, 'shared');
@ -168,7 +164,7 @@ class Application extends App implements IBootstrap {
Util::connectHook(Share::class, 'share_link_access', $shareActions, 'shareAccessed');
}
private function authHooks(LoggerInterface $logger): void {
private function authHooks(ILogger $logger) {
$authActions = new Auth($logger);
Util::connectHook('OC_User', 'pre_login', $authActions, 'loginAttempt');
@ -176,8 +172,8 @@ class Application extends App implements IBootstrap {
Util::connectHook('OC_User', 'logout', $authActions, 'logout');
}
private function appHooks(LoggerInterface $logger,
EventDispatcherInterface $eventDispatcher): void {
private function appHooks(ILogger $logger,
EventDispatcherInterface $eventDispatcher) {
$eventDispatcher->addListener(ManagerEvent::EVENT_APP_ENABLE, function (ManagerEvent $event) use ($logger) {
$appActions = new AppManagement($logger);
$appActions->enableApp($event->getAppID());
@ -192,16 +188,16 @@ class Application extends App implements IBootstrap {
});
}
private function consoleHooks(LoggerInterface $logger,
EventDispatcherInterface $eventDispatcher): void {
private function consoleHooks(ILogger $logger,
EventDispatcherInterface $eventDispatcher) {
$eventDispatcher->addListener(ConsoleEvent::EVENT_RUN, function (ConsoleEvent $event) use ($logger) {
$appActions = new Console($logger);
$appActions->runCommand($event->getArguments());
});
}
private function fileHooks(LoggerInterface $logger,
EventDispatcherInterface $eventDispatcher): void {
private function fileHooks(ILogger $logger,
EventDispatcherInterface $eventDispatcher) {
$fileActions = new Files($logger);
$eventDispatcher->addListener(
IPreview::EVENT,
@ -262,20 +258,20 @@ class Application extends App implements IBootstrap {
);
}
private function versionsHooks(LoggerInterface $logger): void {
private function versionsHooks(ILogger $logger) {
$versionsActions = new Versions($logger);
Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback');
Util::connectHook('\OCP\Versions', 'delete', $versionsActions, 'delete');
}
private function trashbinHooks(LoggerInterface $logger): void {
private function trashbinHooks(ILogger $logger) {
$trashActions = new Trashbin($logger);
Util::connectHook('\OCP\Trashbin', 'preDelete', $trashActions, 'delete');
Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', $trashActions, 'restore');
}
private function securityHooks(LoggerInterface $logger,
EventDispatcherInterface $eventDispatcher): void {
private function securityHooks(ILogger $logger,
EventDispatcherInterface $eventDispatcher) {
$eventDispatcher->addListener(IProvider::EVENT_SUCCESS, function (GenericEvent $event) use ($logger) {
$security = new Security($logger);
$security->twofactorSuccess($event->getSubject(), $event->getArguments());

View File

@ -1,7 +1,4 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2018 Arthur Schiwon <blizzz@arthur-schiwon.de>
*
@ -28,31 +25,26 @@ declare(strict_types=1);
namespace OCA\AdminAudit\BackgroundJobs;
use OC\BackgroundJob\TimedJob;
use OCP\IConfig;
use OCP\Log\RotationTrait;
class Rotate extends TimedJob {
use RotationTrait;
/** @var IConfig */
private $config;
public function __construct(IConfig $config) {
$this->config = $config;
$this->setInterval(60 * 60 * 3);
public function __construct() {
$this->setInterval(60*60*3);
}
protected function run($argument) {
$default = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/audit.log';
$this->filePath = $this->config->getAppValue('admin_audit', 'logfile', $default);
$config = \OC::$server->getConfig();
$default = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/audit.log';
$this->filePath = $config->getAppValue('admin_audit', 'logfile', $default);
if ($this->filePath === '') {
// default log file, nothing to do
return;
}
$this->maxSize = $this->config->getSystemValue('log_rotate_size', 100 * 1024 * 1024);
$this->maxSize = $config->getSystemValue('log_rotate_size', 100 * 1024 * 1024);
if ($this->shouldRotateBySize()) {
$this->rotate();

View File

@ -1,44 +0,0 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2021 Joas Schilling <coding@schilljs.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\AdminAudit\Listener;
use OCA\AdminAudit\Actions\Action;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Log\Audit\CriticalActionPerformedEvent;
class CriticalActionPerformedEventListener extends Action implements IEventListener {
public function handle(Event $event): void {
if (!($event instanceof CriticalActionPerformedEvent)) {
return;
}
$this->log(
$event->getLogMessage(),
$event->getParameters(),
array_keys($event->getParameters()),
$event->getObfuscateParameters()
);
}
}

View File

@ -28,12 +28,12 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Tests\Actions;
use OCA\AdminAudit\Actions\Security;
use OCP\ILogger;
use OCP\IUser;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class SecurityTest extends TestCase {
/** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
/** @var ILogger|\PHPUnit\Framework\MockObject\MockObject */
private $logger;
/** @var Security */
@ -45,7 +45,7 @@ class SecurityTest extends TestCase {
protected function setUp(): void {
parent::setUp();
$this->logger = $this->createMock(LoggerInterface::class);
$this->logger = $this->createMock(ILogger::class);
$this->security = new Security($this->logger);
$this->user = $this->createMock(IUser::class);

View File

@ -5,7 +5,7 @@
<name>Cloud Federation API</name>
<summary>Enable clouds to communicate with each other and exchange data</summary>
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
<version>1.4.0</version>
<version>1.3.0</version>
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>CloudFederationAPI</namespace>
@ -15,6 +15,6 @@
<category>files</category>
<bugs>https://github.com/nextcloud/cloud_federation/issues</bugs>
<dependencies>
<nextcloud min-version="22" max-version="22"/>
<nextcloud min-version="20" max-version="20"/>
</dependencies>
</info>

View File

@ -37,13 +37,11 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
private $vendorDir;
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
@ -59,13 +57,6 @@ class ClassLoader
private $missingClasses = array();
private $apcuPrefix;
private static $registeredLoaders = array();
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@ -309,17 +300,6 @@ class ClassLoader
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
@ -328,10 +308,6 @@ class ClassLoader
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
@ -391,16 +367,6 @@ class ClassLoader
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup

View File

@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'OCA\\CloudFederationAPI\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
'OCA\\CloudFederationAPI\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
'OCA\\CloudFederationAPI\\Config' => $baseDir . '/../lib/Config.php',

View File

@ -23,12 +23,12 @@ class ComposerAutoloaderInitCloudFederationAPI
}
spl_autoload_register(array('ComposerAutoloaderInitCloudFederationAPI', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitCloudFederationAPI', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitCloudFederationAPI::getInitializer($loader));
} else {

View File

@ -21,7 +21,6 @@ class ComposerStaticInitCloudFederationAPI
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'OCA\\CloudFederationAPI\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
'OCA\\CloudFederationAPI\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
'OCA\\CloudFederationAPI\\Config' => __DIR__ . '/..' . '/../lib/Config.php',

View File

@ -38,11 +38,11 @@ use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Federation\ICloudIdManager;
use OCP\IGroupManager;
use OCP\ILogger;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Share\Exceptions\ShareNotFound;
use Psr\Log\LoggerInterface;
/**
* Class RequestHandlerController
@ -53,7 +53,7 @@ use Psr\Log\LoggerInterface;
*/
class RequestHandlerController extends Controller {
/** @var LoggerInterface */
/** @var ILogger */
private $logger;
/** @var IUserManager */
@ -79,7 +79,7 @@ class RequestHandlerController extends Controller {
public function __construct($appName,
IRequest $request,
LoggerInterface $logger,
ILogger $logger,
IUserManager $userManager,
IGroupManager $groupManager,
IURLGenerator $urlGenerator,

View File

@ -5,7 +5,7 @@
<name>Comments</name>
<summary>Files app plugin to add comments to files</summary>
<description>Files app plugin to add comments to files</description>
<version>1.11.0</version>
<version>1.10.0</version>
<licence>agpl</licence>
<author>Arthur Schiwon</author>
<author>Vincent Petry</author>
@ -17,7 +17,7 @@
<category>social</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="22" max-version="22"/>
<nextcloud min-version="20" max-version="20"/>
</dependencies>
<activity>

View File

@ -37,13 +37,11 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
private $vendorDir;
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
@ -59,13 +57,6 @@ class ClassLoader
private $missingClasses = array();
private $apcuPrefix;
private static $registeredLoaders = array();
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@ -309,17 +300,6 @@ class ClassLoader
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
@ -328,10 +308,6 @@ class ClassLoader
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
@ -391,16 +367,6 @@ class ClassLoader
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup

View File

@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'OCA\\Comments\\Activity\\Filter' => $baseDir . '/../lib/Activity/Filter.php',
'OCA\\Comments\\Activity\\Listener' => $baseDir . '/../lib/Activity/Listener.php',
'OCA\\Comments\\Activity\\Provider' => $baseDir . '/../lib/Activity/Provider.php',
@ -16,10 +15,10 @@ return array(
'OCA\\Comments\\Collaboration\\CommentersSorter' => $baseDir . '/../lib/Collaboration/CommentersSorter.php',
'OCA\\Comments\\Controller\\Notifications' => $baseDir . '/../lib/Controller/Notifications.php',
'OCA\\Comments\\EventHandler' => $baseDir . '/../lib/EventHandler.php',
'OCA\\Comments\\JSSettingsHelper' => $baseDir . '/../lib/JSSettingsHelper.php',
'OCA\\Comments\\Listener\\CommentsEntityEventListener' => $baseDir . '/../lib/Listener/CommentsEntityEventListener.php',
'OCA\\Comments\\Listener\\LoadAdditionalScripts' => $baseDir . '/../lib/Listener/LoadAdditionalScripts.php',
'OCA\\Comments\\Listener\\LoadSidebarScripts' => $baseDir . '/../lib/Listener/LoadSidebarScripts.php',
'OCA\\Comments\\MaxAutoCompleteResultsInitialState' => $baseDir . '/../lib/MaxAutoCompleteResultsInitialState.php',
'OCA\\Comments\\Notification\\Listener' => $baseDir . '/../lib/Notification/Listener.php',
'OCA\\Comments\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
'OCA\\Comments\\Search\\CommentsSearchProvider' => $baseDir . '/../lib/Search/CommentsSearchProvider.php',

View File

@ -23,12 +23,12 @@ class ComposerAutoloaderInitComments
}
spl_autoload_register(array('ComposerAutoloaderInitComments', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitComments', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitComments::getInitializer($loader));
} else {

View File

@ -21,7 +21,6 @@ class ComposerStaticInitComments
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'OCA\\Comments\\Activity\\Filter' => __DIR__ . '/..' . '/../lib/Activity/Filter.php',
'OCA\\Comments\\Activity\\Listener' => __DIR__ . '/..' . '/../lib/Activity/Listener.php',
'OCA\\Comments\\Activity\\Provider' => __DIR__ . '/..' . '/../lib/Activity/Provider.php',
@ -31,10 +30,10 @@ class ComposerStaticInitComments
'OCA\\Comments\\Collaboration\\CommentersSorter' => __DIR__ . '/..' . '/../lib/Collaboration/CommentersSorter.php',
'OCA\\Comments\\Controller\\Notifications' => __DIR__ . '/..' . '/../lib/Controller/Notifications.php',
'OCA\\Comments\\EventHandler' => __DIR__ . '/..' . '/../lib/EventHandler.php',
'OCA\\Comments\\JSSettingsHelper' => __DIR__ . '/..' . '/../lib/JSSettingsHelper.php',
'OCA\\Comments\\Listener\\CommentsEntityEventListener' => __DIR__ . '/..' . '/../lib/Listener/CommentsEntityEventListener.php',
'OCA\\Comments\\Listener\\LoadAdditionalScripts' => __DIR__ . '/..' . '/../lib/Listener/LoadAdditionalScripts.php',
'OCA\\Comments\\Listener\\LoadSidebarScripts' => __DIR__ . '/..' . '/../lib/Listener/LoadSidebarScripts.php',
'OCA\\Comments\\MaxAutoCompleteResultsInitialState' => __DIR__ . '/..' . '/../lib/MaxAutoCompleteResultsInitialState.php',
'OCA\\Comments\\Notification\\Listener' => __DIR__ . '/..' . '/../lib/Notification/Listener.php',
'OCA\\Comments\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
'OCA\\Comments\\Search\\CommentsSearchProvider' => __DIR__ . '/..' . '/../lib/Search/CommentsSearchProvider.php',

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,24 +0,0 @@
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=706)}({706:function(e,n){
/**
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
let o=null;const r=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",async mount(e,t,n){o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:n}),await o.update(t.id),o.$mount(e)},update(e){o.update(e.id)},destroy(){o.$destroy(),o=null},scrollBottomReached(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(r)}))}});
//# sourceMappingURL=comments-tab.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -185,7 +185,7 @@ class Provider implements IProvider {
// they will get the dead entries in their stream.
return [
'actor' => $subjectParameters[0],
'fileId' => $event->getObjectId(),
'fileId' => (int) $event->getObjectId(),
'filePath' => trim($subjectParameters[1], '/'),
];
}
@ -213,11 +213,17 @@ class Provider implements IProvider {
continue;
}
$message = str_replace('@"' . $mention['id'] . '"', '{mention' . $mentionCount . '}', $message);
if (strpos($mention['id'], ' ') === false && strpos($mention['id'], 'guest/') !== 0) {
$message = str_replace('@' . $mention['id'], '{mention' . $mentionCount . '}', $message);
$pattern = '/(^|\s)(' . '@' . $mention['id'] . ')(\b)/';
if (strpos($mention['id'], ' ') !== false) {
$pattern = '/(^|\s)(' . '@"' . $mention['id'] . '"' . ')(\b)?/';
}
$message = preg_replace(
$pattern,
//'${1}' . $this->regexSafeUser($mention['id'], $displayName) . '${3}',
'${1}' . '{mention' . $mentionCount . '}' . '${3}',
$message
);
$mentions['mention' . $mentionCount] = $this->generateUserParameter($mention['id']);
$mentionCount++;
}

View File

@ -31,10 +31,10 @@ use Closure;
use OCA\Comments\Capabilities;
use OCA\Comments\Controller\Notifications;
use OCA\Comments\EventHandler;
use OCA\Comments\JSSettingsHelper;
use OCA\Comments\Listener\CommentsEntityEventListener;
use OCA\Comments\Listener\LoadAdditionalScripts;
use OCA\Comments\Listener\LoadSidebarScripts;
use OCA\Comments\MaxAutoCompleteResultsInitialState;
use OCA\Comments\Notification\Notifier;
use OCA\Comments\Search\LegacyProvider;
use OCA\Comments\Search\CommentsSearchProvider;
@ -45,8 +45,10 @@ use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\Comments\CommentsEntityEvent;
use OCP\IConfig;
use OCP\ISearch;
use OCP\IServerContainer;
use OCP\Util;
class Application extends App implements IBootstrap {
public const APP_ID = 'comments';
@ -73,18 +75,22 @@ class Application extends App implements IBootstrap {
CommentsEntityEventListener::class
);
$context->registerSearchProvider(CommentsSearchProvider::class);
$context->registerInitialStateProvider(MaxAutoCompleteResultsInitialState::class);
$context->registerNotifierService(Notifier::class);
}
public function boot(IBootContext $context): void {
$context->injectFn(Closure::fromCallable([$this, 'registerNotifier']));
$context->injectFn(Closure::fromCallable([$this, 'registerCommentsEventHandler']));
$jsSettingsHelper = new JSSettingsHelper($context->getAppContainer()->get(IConfig::class));
Util::connectHook('\OCP\Config', 'js', $jsSettingsHelper, 'extend');
$context->getServerContainer()->get(ISearch::class)->registerProvider(LegacyProvider::class, ['apps' => ['files']]);
}
protected function registerNotifier(IServerContainer $container) {
$container->getNotificationManager()->registerNotifierService(Notifier::class);
}
protected function registerCommentsEventHandler(IServerContainer $container) {
$container->getCommentsManager()->registerEventHandler(function () {
return $this->getContainer()->query(EventHandler::class);

View File

@ -42,7 +42,7 @@ class EventHandler implements ICommentsEventHandler {
private $notificationListener;
public function __construct(ActivityListener $activityListener, NotificationListener $notificationListener) {
$this->activityListener = $activityListener;
$this->activityListener = $activityListener;
$this->notificationListener = $notificationListener;
}

View File

@ -1,11 +1,9 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2021 Roeland Jago Douma <roeland@famdouma.nl>
* @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
*
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
*
* @license GNU AGPL version 3 or any later version
*
@ -26,23 +24,22 @@ declare(strict_types=1);
namespace OCA\Comments;
use OCP\AppFramework\Services\InitialStateProvider;
use OCP\IConfig;
class MaxAutoCompleteResultsInitialState extends InitialStateProvider {
class JSSettingsHelper {
/** @var IConfig */
private $config;
private $c;
public function __construct(IConfig $config) {
$this->config = $config;
public function __construct(IConfig $c) {
$this->c = $c;
}
public function getKey(): string {
return 'maxAutoCompleteResults';
}
public function extend(array $settings) {
$appConfig = json_decode($settings['array']['oc_appconfig'], true);
public function getData(): int {
return (int)$this->config->getAppValue('comments', 'maxAutoCompleteResults', '10');
$value = (int)$this->c->getAppValue('comments', 'maxAutoCompleteResults', 10);
$appConfig['comments']['maxAutoCompleteResults'] = $value;
$settings['array']['oc_appconfig'] = json_encode($appConfig);
}
}

View File

@ -29,30 +29,18 @@ namespace OCA\Comments\Listener;
use OCA\Comments\AppInfo\Application;
use OCA\Files\Event\LoadSidebar;
use OCP\Comments\ICommentsManager;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Util;
class LoadSidebarScripts implements IEventListener {
/** @var ICommentsManager */
private $commentsManager;
public function __construct(ICommentsManager $commentsManager) {
$this->commentsManager = $commentsManager;
}
public function handle(Event $event): void {
if (!($event instanceof LoadSidebar)) {
return;
}
$this->commentsManager->load();
// TODO: make sure to only include the sidebar script when
// we properly split it between files list and sidebar
Util::addScript(Application::APP_ID, 'comments');
Util::addScript(Application::APP_ID, 'comments-tab');
}
}

View File

@ -133,7 +133,7 @@ class Notifier implements INotifier {
if (strpos($path, '/' . $notification->getUser() . '/files/') === 0) {
// Remove /user/files/...
$fullPath = $path;
[,,, $path] = explode('/', $fullPath, 4);
list(,,, $path) = explode('/', $fullPath, 4);
}
$subjectParameters = [
'file' => [
@ -155,7 +155,7 @@ class Notifier implements INotifier {
'name' => $displayName,
];
}
[$message, $messageParameters] = $this->commentToRichMessage($comment);
list($message, $messageParameters) = $this->commentToRichMessage($comment);
$notification->setRichSubject($subject, $subjectParameters)
->setParsedSubject($this->richToParsed($subject, $subjectParameters))
->setRichMessage($message, $messageParameters)
@ -195,11 +195,7 @@ class Notifier implements INotifier {
// could contain characters like '@' for user IDs) but a one-based
// index of the mentions of that type.
$mentionParameterId = 'mention-' . $mention['type'] . $mentionTypeCount[$mention['type']];
$message = str_replace('@"' . $mention['id'] . '"', '{' . $mentionParameterId . '}', $message);
if (strpos($mention['id'], ' ') === false && strpos($mention['id'], 'guest/') !== 0) {
$message = str_replace('@' . $mention['id'], '{' . $mentionParameterId . '}', $message);
}
$message = str_replace('@' . $mention['id'], '{' . $mentionParameterId . '}', $message);
try {
$displayName = $this->commentsManager->resolveDisplayName($mention['type'], $mention['id']);
} catch (\OutOfBoundsException $e) {

View File

@ -1,24 +1,11 @@
/**
* @author Joas Schilling <coding@schilljs.com>
* Copyright (c) 2016
*
* @author Joas Schilling <coding@schilljs.com>
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*/
(function() {

View File

@ -1,23 +1,10 @@
/**
/*
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Vincent Petry <vincent@nextcloud.com>
* This file is licensed under the Affero General Public License version 3
* or later.
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* See the COPYING-README file.
*
*/

View File

@ -0,0 +1,167 @@
/* eslint-disable */
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function(OC, OCA) {
/**
* @class OCA.Comments.CommentCollection
* @classdesc
*
* Collection of comments assigned to a file
*
*/
var CommentCollection = OC.Backbone.Collection.extend(
/** @lends OCA.Comments.CommentCollection.prototype */ {
sync: OC.Backbone.davSync,
model: OCA.Comments.CommentModel,
/**
* Object type
*
* @type string
*/
_objectType: 'files',
/**
* Object id
*
* @type string
*/
_objectId: null,
/**
* True if there are no more page results left to fetch
*
* @type bool
*/
_endReached: false,
/**
* Number of comments to fetch per page
*
* @type int
*/
_limit: 20,
/**
* Initializes the collection
*
* @param {string} [options.objectType] object type
* @param {string} [options.objectId] object id
*/
initialize: function(models, options) {
options = options || {}
if (options.objectType) {
this._objectType = options.objectType
}
if (options.objectId) {
this._objectId = options.objectId
}
},
url: function() {
return OC.linkToRemote('dav') + '/comments/'
+ encodeURIComponent(this._objectType) + '/'
+ encodeURIComponent(this._objectId) + '/'
},
setObjectId: function(objectId) {
this._objectId = objectId
},
hasMoreResults: function() {
return !this._endReached
},
reset: function() {
this._endReached = false
this._summaryModel = null
return OC.Backbone.Collection.prototype.reset.apply(this, arguments)
},
/**
* Fetch the next set of results
*/
fetchNext: function(options) {
var self = this
if (!this.hasMoreResults()) {
return null
}
var body = '<?xml version="1.0" encoding="utf-8" ?>\n'
+ '<oc:filter-comments xmlns:D="DAV:" xmlns:oc="http://owncloud.org/ns">\n'
// load one more so we know there is more
+ ' <oc:limit>' + (this._limit + 1) + '</oc:limit>\n'
+ ' <oc:offset>' + this.length + '</oc:offset>\n'
+ '</oc:filter-comments>\n'
options = options || {}
var success = options.success
options = _.extend({
remove: false,
parse: true,
data: body,
davProperties: CommentCollection.prototype.model.prototype.davProperties,
success: function(resp) {
if (resp.length <= self._limit) {
// no new entries, end reached
self._endReached = true
} else {
// remove last entry, for next page load
resp = _.initial(resp)
}
if (!self.set(resp, options)) {
return false
}
if (success) {
success.apply(null, arguments)
}
self.trigger('sync', 'REPORT', self, options)
}
}, options)
return this.sync('REPORT', this, options)
},
/**
* Returns the matching summary model
*
* @returns {OCA.Comments.CommentSummaryModel} summary model
*/
getSummaryModel: function() {
if (!this._summaryModel) {
this._summaryModel = new OCA.Comments.CommentSummaryModel({
id: this._objectId,
objectType: this._objectType
})
}
return this._summaryModel
},
/**
* Updates the read marker for this comment thread
*
* @param {Date} [date] optional date, defaults to now
* @param {Object} [options] backbone options
*/
updateReadMarker: function(date, options) {
options = options || {}
return this.getSummaryModel().save({
readMarker: (date || new Date()).toUTCString()
}, options)
}
})
OCA.Comments.CommentCollection = CommentCollection
})(OC, OCA)

View File

@ -0,0 +1,93 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function(OC, OCA) {
_.extend(OC.Files.Client, {
PROPERTY_FILEID: '{' + OC.Files.Client.NS_OWNCLOUD + '}id',
PROPERTY_MESSAGE: '{' + OC.Files.Client.NS_OWNCLOUD + '}message',
PROPERTY_ACTORTYPE: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorType',
PROPERTY_ACTORID: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorId',
PROPERTY_ISUNREAD: '{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread',
PROPERTY_OBJECTID: '{' + OC.Files.Client.NS_OWNCLOUD + '}objectId',
PROPERTY_OBJECTTYPE: '{' + OC.Files.Client.NS_OWNCLOUD + '}objectType',
PROPERTY_ACTORDISPLAYNAME: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName',
PROPERTY_CREATIONDATETIME: '{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime',
PROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions',
})
/**
* @class OCA.Comments.CommentModel
* @classdesc
*
* Comment
*
*/
const CommentModel = OC.Backbone.Model.extend(
/** @lends OCA.Comments.CommentModel.prototype */ {
sync: OC.Backbone.davSync,
defaults: {
actorType: 'users',
objectType: 'files',
},
davProperties: {
id: OC.Files.Client.PROPERTY_FILEID,
message: OC.Files.Client.PROPERTY_MESSAGE,
actorType: OC.Files.Client.PROPERTY_ACTORTYPE,
actorId: OC.Files.Client.PROPERTY_ACTORID,
actorDisplayName: OC.Files.Client.PROPERTY_ACTORDISPLAYNAME,
creationDateTime: OC.Files.Client.PROPERTY_CREATIONDATETIME,
objectType: OC.Files.Client.PROPERTY_OBJECTTYPE,
objectId: OC.Files.Client.PROPERTY_OBJECTID,
isUnread: OC.Files.Client.PROPERTY_ISUNREAD,
mentions: OC.Files.Client.PROPERTY_MENTIONS,
},
parse(data) {
return {
id: data.id,
message: data.message,
actorType: data.actorType,
actorId: data.actorId,
actorDisplayName: data.actorDisplayName,
creationDateTime: data.creationDateTime,
objectType: data.objectType,
objectId: data.objectId,
isUnread: (data.isUnread === 'true'),
mentions: this._parseMentions(data.mentions),
}
},
_parseMentions(mentions) {
if (_.isUndefined(mentions)) {
return {}
}
const result = {}
for (const i in mentions) {
const mention = mentions[i]
if (_.isUndefined(mention.localName) || mention.localName !== 'mention') {
continue
}
result[i] = {}
for (let child = mention.firstChild; child; child = child.nextSibling) {
if (_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {
continue
}
result[i][child.localName] = child.textContent
}
}
return result
},
})
OCA.Comments.CommentModel = CommentModel
})(OC, OCA)

View File

@ -1,32 +0,0 @@
/**
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import CommentsInstance from './services/CommentsInstance'
// Init Comments
if (window.OCA && !window.OCA.Comments) {
Object.assign(window.OCA, { Comments: {} })
}
// Init Comments App view
Object.assign(window.OCA.Comments, { View: CommentsInstance })
console.debug('OCA.Comments.View initialized')

View File

@ -1,58 +0,0 @@
/**
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
// Init Comments tab component
let TabInstance = null
const commentTab = new OCA.Files.Sidebar.Tab({
id: 'comments',
name: t('comments', 'Comments'),
icon: 'icon-comment',
async mount(el, fileInfo, context) {
if (TabInstance) {
TabInstance.$destroy()
}
TabInstance = new OCA.Comments.View('files', {
// Better integration with vue parent component
parent: context,
})
// Only mount after we have all the info we need
await TabInstance.update(fileInfo.id)
TabInstance.$mount(el)
},
update(fileInfo) {
TabInstance.update(fileInfo.id)
},
destroy() {
TabInstance.$destroy()
TabInstance = null
},
scrollBottomReached() {
TabInstance.onScrollBottomReached()
},
})
window.addEventListener('DOMContentLoaded', function() {
if (OCA.Files && OCA.Files.Sidebar) {
OCA.Files.Sidebar.registerTab(commentTab)
}
})

View File

@ -1,29 +1,17 @@
/**
* @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Roeland Jago Douma <roeland@famdouma.nl>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import './app'
import './templates'
import './commentmodel'
import './commentcollection'
import './commentsummarymodel'
import './commentstabview'
import './commentsmodifymenu'
import './filesplugin'
import './activitytabviewplugin'
import './vendor/Caret.js/dist/jquery.caret.min'
import './vendor/At.js/dist/js/jquery.atwho.min'
import './style/autocomplete.scss'
import './style/comments.scss'
window.OCA.Comments = OCA.Comments

View File

@ -0,0 +1,108 @@
/*
* Copyright (c) 2018
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function() {
/**
* Construct a new CommentsModifyMenuinstance
* @constructs CommentsModifyMenu
* @memberof OC.Comments
* @private
*/
const CommentsModifyMenu = OC.Backbone.View.extend({
tagName: 'div',
className: 'commentsModifyMenu popovermenu bubble menu',
_scopes: [
{
name: 'edit',
displayName: t('comments', 'Edit comment'),
iconClass: 'icon-rename',
},
{
name: 'delete',
displayName: t('comments', 'Delete comment'),
iconClass: 'icon-delete',
},
],
initialize() {
},
events: {
'click a.action': '_onClickAction',
},
/**
* Event handler whenever an action has been clicked within the menu
*
* @param {Object} event event object
*/
_onClickAction(event) {
let $target = $(event.currentTarget)
if (!$target.hasClass('menuitem')) {
$target = $target.closest('.menuitem')
}
OC.hideMenus()
this.trigger('select:menu-item-clicked', event, $target.data('action'))
},
/**
* Renders the menu with the currently set items
*/
render() {
this.$el.html(OCA.Comments.Templates.commentsmodifymenu({
items: this._scopes,
}))
},
/**
* Displays the menu
* @param {Event} context the click event
*/
show(context) {
this._context = context
for (const i in this._scopes) {
this._scopes[i].active = false
}
const $el = $(context.target)
const offsetIcon = $el.offset()
const offsetContainer = $el.closest('.authorRow').offset()
// adding some extra top offset to push the menu below the button.
const position = {
top: offsetIcon.top - offsetContainer.top + 48,
left: '',
right: '',
}
position.left = offsetIcon.left - offsetContainer.left
if (position.left > 200) {
// we need to position the menu to the right.
position.left = ''
position.right = this.$el.closest('.comment').find('.date').width()
this.$el.removeClass('menu-left').addClass('menu-right')
} else {
this.$el.removeClass('menu-right').addClass('menu-left')
}
this.$el.css(position)
this.render()
this.$el.removeClass('hidden')
OC.showMenu(null, this.$el)
},
})
OCA.Comments = OCA.Comments || {}
OCA.Comments.CommentsModifyMenu = CommentsModifyMenu
})(OC, OCA)

View File

@ -0,0 +1,756 @@
/* eslint-disable */
/**
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
/* global Handlebars */
import escapeHTML from 'escape-html'
(function(OC, OCA) {
/**
* @memberof OCA.Comments
*/
var CommentsTabView = OCA.Files.DetailTabView.extend(
/** @lends OCA.Comments.CommentsTabView.prototype */ {
id: 'commentsTabView',
className: 'tab commentsTabView',
_autoCompleteData: undefined,
_commentsModifyMenu: undefined,
events: {
'submit .newCommentForm': '_onSubmitComment',
'click .showMore': '_onClickShowMore',
'click .cancel': '_onClickCloseComment',
'click .comment': '_onClickComment',
'keyup div.message': '_onTextChange',
'change div.message': '_onTextChange',
'input div.message': '_onTextChange',
'paste div.message': '_onPaste'
},
_commentMaxLength: 1000,
initialize: function() {
OCA.Files.DetailTabView.prototype.initialize.apply(this, arguments)
this.collection = new OCA.Comments.CommentCollection()
this.collection.on('request', this._onRequest, this)
this.collection.on('sync', this._onEndRequest, this)
this.collection.on('add', this._onAddModel, this)
this.collection.on('change:message', this._onChangeModel, this)
this._commentMaxThreshold = this._commentMaxLength * 0.9
// TODO: error handling
_.bindAll(this, '_onTypeComment', '_initAutoComplete', '_onAutoComplete')
},
template: function(params) {
var currentUser = OC.getCurrentUser()
return OCA.Comments.Templates['view'](_.extend({
actorId: currentUser.uid,
actorDisplayName: currentUser.displayName
}, params))
},
editCommentTemplate: function(params) {
var currentUser = OC.getCurrentUser()
return OCA.Comments.Templates['edit_comment'](_.extend({
actorId: currentUser.uid,
actorDisplayName: currentUser.displayName,
newMessagePlaceholder: t('comments', 'New comment …'),
submitText: t('comments', 'Post'),
cancelText: t('comments', 'Cancel'),
tag: 'li'
}, params))
},
commentTemplate: function(params) {
params = _.extend({
editTooltip: t('comments', 'Edit comment'),
isUserAuthor: OC.getCurrentUser().uid === params.actorId,
isLong: this._isLong(params.message)
}, params)
if (params.actorType === 'deleted_users') {
// makes the avatar a X
params.actorId = null
params.actorDisplayName = t('comments', '[Deleted user]')
}
return OCA.Comments.Templates['comment'](params)
},
getLabel: function() {
return t('comments', 'Comments')
},
getIcon: function() {
return 'icon-comment'
},
setFileInfo: function(fileInfo) {
if (fileInfo) {
this.model = fileInfo
this.render()
this._initAutoComplete($('#commentsTabView').find('.newCommentForm .message'))
this.collection.setObjectId(this.model.id)
// reset to first page
this.collection.reset([], { silent: true })
this.nextPage()
} else {
this.model = null
this.render()
this.collection.reset()
}
},
render: function() {
this.$el.html(this.template({
emptyResultLabel: t('comments', 'No comments yet, start the conversation!'),
moreLabel: t('comments', 'More comments …')
}))
this.$el.find('.comments').before(this.editCommentTemplate({ tag: 'div' }))
this.$el.find('.has-tooltip').tooltip()
this.$container = this.$el.find('ul.comments')
this.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32)
this.delegateEvents()
this.$el.find('.message').on('keydown input change', this._onTypeComment)
autosize(this.$el.find('.newCommentRow .message'))
this.$el.find('.newCommentForm .message').focus()
},
_initAutoComplete: function($target) {
var s = this
var limit = 10
if (!_.isUndefined(OC.appConfig.comments)) {
limit = OC.appConfig.comments.maxAutoCompleteResults
}
$target.atwho({
at: '@',
limit: limit,
callbacks: {
remoteFilter: s._onAutoComplete,
highlighter: function(li) {
// misuse the highlighter callback to instead of
// highlighting loads the avatars.
var $li = $(li)
$li.find('.avatar').avatar(undefined, 32)
return $li
},
sorter: function(q, items) { return items }
},
displayTpl: function(item) {
return '<li>'
+ '<span class="avatar-name-wrapper">'
+ '<span class="avatar" '
+ 'data-username="' + escapeHTML(item.id) + '" ' // for avatars
+ 'data-user="' + escapeHTML(item.id) + '" ' // for contactsmenu
+ 'data-user-display-name="' + escapeHTML(item.label) + '">'
+ '</span>'
+ '<strong>' + escapeHTML(item.label) + '</strong>'
+ '</span></li>'
},
insertTpl: function(item) {
return ''
+ '<span class="avatar-name-wrapper">'
+ '<span class="avatar" '
+ 'data-username="' + escapeHTML(item.id) + '" ' // for avatars
+ 'data-user="' + escapeHTML(item.id) + '" ' // for contactsmenu
+ 'data-user-display-name="' + escapeHTML(item.label) + '">'
+ '</span>'
+ '<strong>' + escapeHTML(item.label) + '</strong>'
+ '</span>'
},
searchKey: 'label'
})
$target.on('inserted.atwho', function(je, $el) {
var editionMode = true
s._postRenderItem(
// we need to pass the parent of the inserted element
// passing the whole comments form would re-apply and request
// avatars from the server
$(je.target).find(
'span[data-username="' + $el.find('[data-username]').data('username') + '"]'
).parent(),
editionMode
)
})
},
_onAutoComplete: function(query, callback) {
var s = this
if (!_.isUndefined(this._autoCompleteRequestTimer)) {
clearTimeout(this._autoCompleteRequestTimer)
}
this._autoCompleteRequestTimer = _.delay(function() {
if (!_.isUndefined(this._autoCompleteRequestCall)) {
this._autoCompleteRequestCall.abort()
}
this._autoCompleteRequestCall = $.ajax({
url: OC.linkToOCS('core', 2) + 'autocomplete/get',
data: {
search: query,
itemType: 'files',
itemId: s.model.get('id'),
sorter: 'commenters|share-recipients',
limit: OC.appConfig.comments.maxAutoCompleteResults
},
beforeSend: function(request) {
request.setRequestHeader('Accept', 'application/json')
},
success: function(result) {
callback(result.ocs.data)
}
})
}, 400)
},
_formatItem: function(commentModel) {
var timestamp = new Date(commentModel.get('creationDateTime')).getTime()
var data = _.extend({
timestamp: timestamp,
date: OC.Util.relativeModifiedDate(timestamp),
altDate: OC.Util.formatDate(timestamp),
formattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))
}, commentModel.attributes)
return data
},
_toggleLoading: function(state) {
this._loading = state
this.$el.find('.loading').toggleClass('hidden', !state)
},
_onRequest: function(type) {
if (type === 'REPORT') {
this._toggleLoading(true)
this.$el.find('.showMore').addClass('hidden')
}
},
_onEndRequest: function(type) {
var fileInfoModel = this.model
this._toggleLoading(false)
this.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length)
this.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults())
if (type !== 'REPORT') {
return
}
// find first unread comment
var firstUnreadComment = this.collection.findWhere({ isUnread: true })
if (firstUnreadComment) {
// update read marker
this.collection.updateReadMarker(
null,
{
success: function() {
fileInfoModel.set('commentsUnread', 0)
}
}
)
}
this.$el.find('.newCommentForm .message').focus()
},
/**
* takes care of post-rendering after a new comment was added to the
* collection
*
* @param model
* @param collection
* @param options
* @private
*/
_onAddModel: function(model, collection, options) {
// we need to render it immediately, to ensure that the right
// order of comments is kept on opening comments tab
var $comment = $(this.commentTemplate(this._formatItem(model)))
if (!_.isUndefined(options.at) && collection.length > 1) {
this.$container.find('li').eq(options.at).before($comment)
} else {
this.$container.append($comment)
}
this._postRenderItem($comment)
$('#commentsTabView').find('.newCommentForm div.message').text('').prop('contenteditable', true)
// we need to update the model, because it consists of client data
// only, but the server might add meta data, e.g. about mentions
var oldMentions = model.get('mentions')
var self = this
model.fetch({
success: function(model) {
if (_.isEqual(oldMentions, model.get('mentions'))) {
// don't attempt to render if unnecessary, avoids flickering
return
}
var $updated = $(self.commentTemplate(self._formatItem(model)))
$comment.html($updated.html())
self._postRenderItem($comment)
}
})
},
/**
* takes care of post-rendering after a new comment was edited
*
* @param model
* @private
*/
_onChangeModel: function(model) {
if (model.get('message').trim() === model.previous('message').trim()) {
return
}
var $form = this.$container.find('.comment[data-id="' + model.id + '"] form')
var $row = $form.closest('.comment')
var $target = $row.data('commentEl')
if (_.isUndefined($target)) {
// ignore noise this is only set after editing a comment and hitting post
return
}
var self = this
// we need to update the model, because it consists of client data
// only, but the server might add meta data, e.g. about mentions
model.fetch({
success: function(model) {
$target.removeClass('hidden')
$row.remove()
var $message = $target.find('.message')
$message
.html(self._formatMessage(model.get('message'), model.get('mentions')))
.find('.avatar')
.each(function() { $(this).avatar() })
self._postRenderItem($message)
}
})
},
_postRenderItem: function($el, editionMode) {
$el.find('.has-tooltip').tooltip()
var inlineAvatars = $el.find('.message .avatar')
if ($($el.context).hasClass('message')) {
inlineAvatars = $el.find('.avatar')
}
inlineAvatars.each(function() {
var $this = $(this)
$this.avatar($this.attr('data-username'), 16)
})
$el.find('.authorRow .avatar').each(function() {
var $this = $(this)
$this.avatar($this.attr('data-username'), 32)
})
var username = $el.find('.avatar').data('username')
if (username !== OC.getCurrentUser().uid) {
$el.find('.authorRow .avatar, .authorRow .author').contactsMenu(
username, 0, $el.find('.authorRow'))
}
var $message = $el.find('.message')
if ($message.length === 0) {
// it is the case when writing a comment and mentioning a person
$message = $el
}
if (!editionMode) {
var self = this
// add the dropdown menu to display the edit and delete option
var modifyCommentMenu = new OCA.Comments.CommentsModifyMenu()
$el.find('.authorRow').append(modifyCommentMenu.$el)
$el.find('.more').on('click', _.bind(modifyCommentMenu.show, modifyCommentMenu))
self.listenTo(modifyCommentMenu, 'select:menu-item-clicked', function(ev, action) {
if (action === 'edit') {
self._onClickEditComment(ev)
} else if (action === 'delete') {
self._onClickDeleteComment(ev)
}
})
}
this._postRenderMessage($message, editionMode)
},
_postRenderMessage: function($el, editionMode) {
if (editionMode) {
return
}
$el.find('.avatar-name-wrapper').each(function() {
var $this = $(this)
var $avatar = $this.find('.avatar')
var user = $avatar.data('user')
if (user !== OC.getCurrentUser().uid) {
$this.contactsMenu(user, 0, $this)
}
})
},
/**
* Convert a message to be displayed in HTML,
* converts newlines to <br> tags.
*/
_formatMessage: function(message, mentions, editMode) {
message = escapeHTML(message).replace(/\n/g, '<br/>')
for (var i in mentions) {
if (!mentions.hasOwnProperty(i)) {
return
}
var mention = '@' + mentions[i].mentionId
if (mentions[i].mentionId.indexOf(' ') !== -1) {
mention = _.escape('@"' + mentions[i].mentionId + '"')
}
// escape possible regex characters in the name
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
var regex = new RegExp('(^|\\s)(' + mention + ')\\b', 'g')
if (mentions[i].mentionId.indexOf(' ') !== -1) {
regex = new RegExp('(^|\\s)(' + mention + ')', 'g')
}
var displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName)
// replace every mention either at the start of the input or after a whitespace
// followed by a non-word character.
message = message.replace(regex,
function(match, p1) {
// to get number of whitespaces (0 vs 1) right
return p1 + displayName
}
)
}
if (editMode !== true) {
message = OCP.Comments.plainToRich(message)
}
return message
},
_composeHTMLMention: function(uid, displayName) {
var avatar = ''
+ '<span class="avatar" '
+ 'data-username="' + _.escape(uid) + '" '
+ 'data-user="' + _.escape(uid) + '" '
+ 'data-user-display-name="' + _.escape(displayName) + '">'
+ '</span>'
var isCurrentUser = (uid === OC.getCurrentUser().uid)
return ''
+ '<span class="atwho-inserted" contenteditable="false">'
+ '<span class="avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '">'
+ avatar
+ '<strong>' + _.escape(displayName) + '</strong>'
+ '</span>'
+ '</span>'
},
nextPage: function() {
if (this._loading || !this.collection.hasMoreResults()) {
return
}
this.collection.fetchNext()
},
_onClickEditComment: function(ev) {
ev.preventDefault()
var $comment = $(ev.target).closest('.comment')
var commentId = $comment.data('id')
var commentToEdit = this.collection.get(commentId)
var $formRow = $(this.editCommentTemplate(_.extend({
isEditMode: true,
submitText: t('comments', 'Save')
}, commentToEdit.attributes)))
$comment.addClass('hidden').removeClass('collapsed')
// spawn form
$comment.after($formRow)
$formRow.data('commentEl', $comment)
$formRow.find('.message').on('keydown input change', this._onTypeComment)
// copy avatar element from original to avoid flickering
$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone())
$formRow.find('.has-tooltip').tooltip()
var $message = $formRow.find('.message')
$message
.html(this._formatMessage(commentToEdit.get('message'), commentToEdit.get('mentions'), true))
.find('.avatar')
.each(function() { $(this).avatar() })
var editionMode = true
this._postRenderItem($message, editionMode)
// Enable autosize
autosize($formRow.find('.message'))
// enable autocomplete
this._initAutoComplete($formRow.find('.message'))
return false
},
_onTypeComment: function(ev) {
var $field = $(ev.target)
var len = $field.text().length
var $submitButton = $field.data('submitButtonEl')
if (!$submitButton) {
$submitButton = $field.closest('form').find('.submit')
$field.data('submitButtonEl', $submitButton)
}
$field.tooltip('hide')
if (len > this._commentMaxThreshold) {
$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', { count: len, max: this._commentMaxLength }))
$field.tooltip({ trigger: 'manual' })
$field.tooltip('show')
$field.addClass('error')
}
var limitExceeded = (len > this._commentMaxLength)
$field.toggleClass('error', limitExceeded)
$submitButton.prop('disabled', limitExceeded)
// Submits form with Enter, but Shift+Enter is a new line. If the
// autocomplete popover is being shown Enter does not submit the
// form either; it will be handled by At.js which will add the
// currently selected item to the message.
if (ev.keyCode === 13 && !ev.shiftKey && !$field.atwho('isSelecting')) {
$submitButton.click()
ev.preventDefault()
}
},
_onClickComment: function(ev) {
var $row = $(ev.target)
if (!$row.is('.comment')) {
$row = $row.closest('.comment')
}
$row.removeClass('collapsed')
},
_onClickCloseComment: function(ev) {
ev.preventDefault()
var $row = $(ev.target).closest('.comment')
$row.data('commentEl').removeClass('hidden')
$row.remove()
return false
},
_onClickDeleteComment: function(ev) {
ev.preventDefault()
var $comment = $(ev.target).closest('.comment')
var commentId = $comment.data('id')
var $loading = $comment.find('.deleteLoading')
var $moreIcon = $comment.find('.more')
$comment.addClass('disabled')
$loading.removeClass('hidden')
$moreIcon.addClass('hidden')
$comment.data('commentEl', $comment)
this.collection.get(commentId).destroy({
success: function() {
$comment.data('commentEl').remove()
$comment.remove()
},
error: function() {
$loading.addClass('hidden')
$moreIcon.removeClass('hidden')
$comment.removeClass('disabled')
OC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', { id: commentId }))
}
})
return false
},
_onClickShowMore: function(ev) {
ev.preventDefault()
this.nextPage()
},
/**
* takes care of updating comment element states after submit (either new
* comment or edit).
*
* @param {OC.Backbone.Model} model
* @param {jQuery} $form
* @private
*/
_onSubmitSuccess: function(model, $form) {
var $submit = $form.find('.submit')
var $loading = $form.find('.submitLoading')
var $message = $form.find('.message')
$submit.removeClass('hidden')
$loading.addClass('hidden')
$message.prop('contenteditable', true)
$message.text('')
},
_commentBodyHTML2Plain: function($el) {
var $comment = $el.clone()
$comment.find('.avatar-name-wrapper').each(function() {
var $this = $(this)
var $inserted = $this.parent()
var userId = $this.find('.avatar').data('username').toString()
if (userId.indexOf(' ') !== -1) {
$inserted.html('@"' + userId + '"')
} else {
$inserted.html('@' + userId)
}
})
$comment.html(OCP.Comments.richToPlain($comment.html()))
var oldHtml
var html = $comment.html()
do {
// replace works one by one
oldHtml = html
html = oldHtml.replace('<br>', '\n') // preserve line breaks
} while (oldHtml !== html)
$comment.html(html)
return $comment.text()
},
_onSubmitComment: function(e) {
var self = this
var $form = $(e.target)
var commentId = $form.closest('.comment').data('id')
var currentUser = OC.getCurrentUser()
var $submit = $form.find('.submit')
var $loading = $form.find('.submitLoading')
var $commentField = $form.find('.message')
var message = $commentField.text().trim()
e.preventDefault()
if (!message.length || message.length > this._commentMaxLength) {
return
}
$commentField.prop('contenteditable', false)
$submit.addClass('hidden')
$loading.removeClass('hidden')
message = this._commentBodyHTML2Plain($commentField)
if (commentId) {
// edit mode
var comment = this.collection.get(commentId)
comment.save({
message: message
}, {
success: function(model) {
self._onSubmitSuccess(model, $form)
if (model.get('message').trim() === model.previous('message').trim()) {
// model change event doesn't trigger, manually remove the row.
var $row = $form.closest('.comment')
$row.data('commentEl').removeClass('hidden')
$row.remove()
}
},
error: function() {
self._onSubmitError($form, commentId)
}
})
} else {
this.collection.create({
actorId: currentUser.uid,
actorDisplayName: currentUser.displayName,
actorType: 'users',
verb: 'comment',
message: message,
creationDateTime: (new Date()).toUTCString()
}, {
at: 0,
// wait for real creation before adding
wait: true,
success: function(model) {
self._onSubmitSuccess(model, $form)
},
error: function() {
self._onSubmitError($form, undefined)
}
})
}
return false
},
/**
* takes care of updating the UI after an error on submit (either new
* comment or edit).
*
* @param {jQuery} $form
* @param {string|undefined} commentId
* @private
*/
_onSubmitError: function($form, commentId) {
$form.find('.submit').removeClass('hidden')
$form.find('.submitLoading').addClass('hidden')
$form.find('.message').prop('contenteditable', true)
if (!_.isUndefined(commentId)) {
OC.Notification.show(t('comments', 'Error occurred while updating comment with id {id}', { id: commentId }), { type: 'error' })
} else {
OC.Notification.show(t('comments', 'Error occurred while posting comment'), { type: 'error' })
}
},
/**
* ensures the contenteditable div is really empty, when user removed
* all input, so that the placeholder will be shown again
*
* @private
*/
_onTextChange: function() {
var $message = $('#commentsTabView').find('.newCommentForm div.message')
if (!$message.text().trim().length) {
$message.empty()
}
},
/**
* Limit pasting to plain text
*
* @param e
* @private
*/
_onPaste: function(e) {
e.preventDefault()
var text = e.originalEvent.clipboardData.getData('text/plain')
document.execCommand('insertText', false, text)
},
/**
* Returns whether the given message is long and needs
* collapsing
*/
_isLong: function(message) {
return message.length > 250 || (message.match(/\n/g) || []).length > 1
}
})
OCA.Comments.CommentsTabView = CommentsTabView
})(OC, OCA)

Some files were not shown because too many files have changed in this diff Show More