Compare commits

..

367 Commits

Author SHA1 Message Date
Julius Härtl 2da48df8a1
Move dav property deletion to dedicated service to cleanup on background job
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-05-27 12:41:59 +02:00
Julius Härtl 46fa9cefec
First attempt to make multipartPart upload working
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-05-27 12:41:59 +02:00
Roeland Jago Douma bd555dbe85
Merge pull request #26453 from nextcloud/version/21.0.1/final
21.0.1 final
2021-04-08 14:39:20 +02:00
Joas Schilling ae8b0ffdbc
Merge pull request #26459 from nextcloud/backport/26458/stable21
[stable21] Show icon-phone when setting is set to private instead of local
2021-04-08 13:51:57 +02:00
Roeland Jago Douma 591aac3b03
Merge pull request #26447 from nextcloud/3rdparty/stable21/phpseclib-2.0.31
[3rdparty][stable21] phpseclib-2.0.31
2021-04-08 13:13:04 +02:00
Joas Schilling bffdbb1258 Show icon-phone when setting is set to private instead of local
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-08 11:07:25 +00:00
Roeland Jago Douma 3e4fa6728a [3rdparty][stable21] phpseclib-2.0.31
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-08 11:30:01 +02:00
Roeland Jago Douma 23148e7682
Merge pull request #26451 from nextcloud/revert-26326-backport/26070/stable21
Revert "[stable21] add a prefix index to filecache.path"
2021-04-08 11:27:37 +02:00
Roeland Jago Douma 58839f2923 21.0.1 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-08 10:18:43 +02:00
Roeland Jago Douma c12f5482b2
Revert "[stable21] add a prefix index to filecache.path" 2021-04-08 10:08:34 +02:00
Nextcloud bot 2e13dc2aa1
[tx-robot] updated from transifex 2021-04-08 02:24:15 +00:00
Nextcloud bot 1f3d1546dd
[tx-robot] updated from transifex 2021-04-07 02:24:26 +00:00
Lukas Reschke d66e86c56c
Merge pull request #26400 from nextcloud/backport/26061/stable21
[stable21] Log and continue when failing to update encryption keys during for individual files
2021-04-06 13:43:34 +02:00
Nextcloud bot 6b67b81287
[tx-robot] updated from transifex 2021-04-06 02:25:42 +00:00
Nextcloud bot a9b5cde333
[tx-robot] updated from transifex 2021-04-05 02:24:56 +00:00
Nextcloud bot e85188f429
[tx-robot] updated from transifex 2021-04-04 02:24:59 +00:00
Nextcloud bot fe7ad83c76
[tx-robot] updated from transifex 2021-04-03 02:43:46 +00:00
dependabot-preview[bot] 5a47a7ae5d
Merge pull request #26413 from nextcloud/dependabot/npm_and_yarn/stable21/y18n-4.0.1 2021-04-03 02:07:01 +00:00
dependabot-preview[bot] 3b8fb0096b
[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-04-03 01:17:29 +00:00
John Molakvoæ b59cf16325
Merge pull request #26406 from nextcloud/backport/26396/stable21 2021-04-02 16:59:51 +02:00
Nextcloud bot e14860c8f2
[tx-robot] updated from transifex 2021-04-02 02:26:17 +00:00
Roeland Jago Douma fd6ffd0257
Merge pull request #26313 from nextcloud/version/21.0.1/RC1
21.0.1 RC1
2021-04-01 20:23:43 +02:00
blizzz 21e2be4fb3
Merge pull request #26402 from nextcloud/ldap-factory-no-ldap-21
[21] make ILDAPProviderFactory usable when there is no ldap setup
2021-04-01 18:41:11 +02:00
Morris Jobke 9010524442
Merge pull request #26404 from nextcloud/backport/26403/stable21
[stable21] remove leftover debug @NoCSRFRequired introduced with #26198
2021-04-01 18:17:01 +02:00
Julius Härtl dc8e819915 Properly handle creating the template directory in a subfolder (fixes #25787)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-01 13:31:55 +00:00
Julius Härtl 89a19a338e Get the parent directory before creating a file from a template
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-01 13:31:55 +00:00
Robin Appelman 17b64a4606 remove leftover debug @NoCSRFRequired introduced with #26198
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-01 13:11:31 +00:00
Robin Appelman 40507ca543
make ILDAPProviderFactory usable when there is no ldap setup
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-01 13:08:23 +02:00
Joas Schilling e0dcf642de
Merge pull request #26398 from nextcloud/backport/26394/stable21
[stable21] Allow apps to write/update account data
2021-04-01 11:09:00 +02:00
Vincent Petry 6ac708c99a Fix phpcs issues in encryption update
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-01 07:56:41 +00:00
Julius Härtl d6bad03a5c 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:41 +00:00
Morris Jobke 052c9abfdf
Merge pull request #26391 from nextcloud/backport/26386/stable21
[stable21] Also check the default phone region when the number has no country code
2021-04-01 09:32:57 +02:00
Joas Schilling 0c348863e7 Allow apps to write/update account data
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-01 06:07:47 +00:00
Nextcloud bot 737f755941
[tx-robot] updated from transifex 2021-04-01 02:24:51 +00:00
Joas Schilling f38248dcd4 Also check the default phone region when the number has no country code
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-31 08:30:56 +00:00
kesselb 618a48487f
Merge pull request #26377 from nextcloud/backport/25500/stable21
[stable21] fix(translation): replace static error message
2021-03-31 10:07:58 +02:00
Julius Härtl 00daf58da8
Merge pull request #26376 from nextcloud/backport/25804/stable21
[stable21] Do not attempt to read 0 bytes when manually iterating over a non-seekable file
2021-03-31 09:44:47 +02:00
Christoph Wurst 0432b32535
Merge pull request #26379 from nextcloud/backport/25924/stable21
[stable21] Only mark migrations as installed after execution
2021-03-31 07:43:32 +02:00
Christoph Wurst 3e5fbd4ef1
Merge pull request #26382 from nextcloud/backport/26372/stable21
[stable21] gracefully handle deleteFromSelf when share is already gone
2021-03-31 07:43:01 +02:00
Nextcloud bot 6d70bd9246
[tx-robot] updated from transifex 2021-03-31 02:25:01 +00:00
Arthur Schiwon caec3a8cee 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:29 +00:00
Joas Schilling e3927afe19 Only mark migrations as installed after execution
The problem is that if a developer creates a structural error in their migration file,
they will already be marked as executed and an not be rerun.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-30 19:51:12 +00:00
Samuel 3073732002 revert(comment)
Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:04 +00:00
Samuel c49cff453c revert(exception): keep throwing an exception for now
Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:04 +00:00
Samuel 22ddcfa740 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:04 +00:00
Julius Härtl fc2e09b667 Properly end iterating over the file once the target has been reached
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-30 19:22:47 +00:00
Joas Schilling b2072cd6fc
Merge pull request #26371 from nextcloud/backport/26370/stable21
[stable21] Remove notifications when retesting profile field input
2021-03-30 13:09:34 +02:00
Christoph Wurst ba1d671055
Merge pull request #26363 from nextcloud/backport/26325/stable21
[stable21] Update cipher defaults
2021-03-30 11:30:46 +02:00
Joas Schilling 3afeb5c908 Remove notifications when retesting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-30 09:27:17 +00:00
Joas Schilling 3ebe3a0e5f
Merge pull request #26366 from nextcloud/backport/26355/stable21
[stable21] Fix working for phone number integration
2021-03-30 09:53:48 +02:00
Nextcloud bot 68e9013c39
[tx-robot] updated from transifex 2021-03-30 02:24:32 +00:00
Roeland Jago Douma f9cef329ba
Merge pull request #26326 from nextcloud/backport/26070/stable21
[stable21] add a prefix index to filecache.path
2021-03-29 21:13:13 +02:00
Joas Schilling 2b8dfc03b6 Fix working for phone number integration
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-29 19:06:10 +00:00
Roeland Jago Douma 2cc0fd0f62
Merge pull request #26357 from nextcloud/backport/26342/stable21
[stable21] Fix broken Calendar Event Invite email icons in Gmail by using PNGs instead of SVGs
2021-03-29 21:04:11 +02:00
J0WI 6691bc4bd4 Update cipher defaults
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-03-29 18:39:45 +00:00
Nick Sweeting e7aefc3424 change calendar invite emails to use pngs instead of svgs
Signed-off-by: Nick Sweeting <git@sweeting.me>
2021-03-29 16:17:16 +00:00
Joas Schilling a956c53e04
Merge pull request #26352 from nextcloud/backport/26243/stable21
[stable21] Avatar privacy and new scope
2021-03-29 11:29:57 +02:00
Vincent Petry 15e52fa7cb Capability for federated scope
Added additional capability in the provisioning API to signal whether
the federation scope values can be used.

This is based on whether the lookup server upload is enabled or not.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:38 +00:00
Vincent Petry 6cb5f36cf4 Update autoloader for PlaceholderAvatar
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:37 +00:00
Vincent Petry 9ca91c15db Int tests for provisioning API scopes
Added integration tests for the scope attributes in the provisioning
API.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:37 +00:00
Vincent Petry ec492eadfa Add known user check in avatar when v2-private scope
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:37 +00:00
Vincent Petry 92ff94083b Update psalm-baseline for Avatar API quirks
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:36 +00:00
Vincent Petry ecae714157 Change account property capability
Include version number in capability

Signed-off-by: Vincent Petry <vincent@nextcloud.com>

Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
2021-03-29 07:03:36 +00:00
Vincent Petry ab22999eb9 Added PlaceholderAvatar with own cached images
When avatar scope is private, the PlaceholderAvatar is used to deliver a
placeholder avatar based on the user's initials.

This was implemented as a separate class for now to avoid messing with
the existing UserAvatar implementation and its generated vs
non-generated logic.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:36 +00:00
Vincent Petry 2613826fcc Add capability for editable scopes in provisioning API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:35 +00:00
Vincent Petry 73ec32d19b Add property scope tests for AccountManager
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:35 +00:00
Vincent Petry 2fd62b4f0d Enhance UsersControllerTest of provisioning API with scopes
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:35 +00:00
Vincent Petry ad402ffc96 Expose avatarScope through provisioning API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:34 +00:00
Vincent Petry b9d59e2994 OCS allow reading and writing account property scopes
Extends the provisioning API to allow a user to get and set their own
account property scopes.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:32 +00:00
Vincent Petry 5c854ba132 Make extra user profile fields always editable
The fields for phone number, address, website and twitter are now
editable regardless whether federated sharing and the lookup server
are enabled or not.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:32 +00:00
Vincent Petry 5d76574a81 Map old account scope properties to new names
Use new scope values in settings page.
Adjust all consumers to use the new constants.
Map old scope values to new ones in account property getter.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:31 +00:00
Vincent Petry e2ab530ee3 Adjust scopes menu based on conditions
Now not all fields have the "v2-private" option in place.
Fix dropdown issue when a scope was stored that is not listed after
disabling the lookup server.
Whenever the lookup server upload is disabled, the scope menu is now
displayed where it makes sense to allow switching between the two private
scopes.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:31 +00:00
Vincent Petry f45f826b52 Add new v2-private account scope
Added new v2-private account manager scope that restricts the scope
further by excluding public link access.

Avatars with v2-private account scope are now showing the guest avatar
instead of the real avatar.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:31 +00:00
Nextcloud bot d6156b970b
[tx-robot] updated from transifex 2021-03-29 02:24:09 +00:00
Nextcloud bot f10f9d090a
[tx-robot] updated from transifex 2021-03-28 02:24:15 +00:00
Nextcloud bot dd99255087
[tx-robot] updated from transifex 2021-03-27 02:24:38 +00:00
Robin Appelman 861fbd06a5 add a prefix index to filecache.path
The reason that `filecache.path` hasn't had an index added is the mysql limitation of ~1kb for indexeded fields,
which is to small for the `path`, however mysql supports indexing only the first N bytes of a column instead of the entire column,
allowing us to add an index even if the column is to long.

Because the index doesn't cover the entire column it can't be used in all situations where a normal index would be used, but it does cover the `path like 'folder/path/%'` queries that are used in various places.

Sqlite and Postgresql don't support prefix indexes, but they also don't have the 1kb limit and DBAL handles the differences in index creation.

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-26 19:44:28 +00:00
Roeland Jago Douma 785f6c63a0
Merge pull request #26307 from nextcloud/backport/22201/stable21
[stable21] Delete old birthday calendar object when moving contact to another ad…
2021-03-26 10:44:59 +01:00
Roeland Jago Douma d65ce19f6e
Merge pull request #26291 from nextcloud/backport/21484/stable21
[stable21] show better error messages when a file with a forbidden path is encountered
2021-03-26 10:44:43 +01:00
Roeland Jago Douma cc5c93ffb3
Merge pull request #26263 from nextcloud/backport/26046/stable21
[stable21] update icewind/smb to 3.4.0
2021-03-26 10:44:03 +01:00
Roeland Jago Douma 5d8df1bed2 21.0.1 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-26 10:35:05 +01:00
Christian Weiske 74794bf100 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:25:44 +00:00
John Molakvoæ 9a4cbba7f6
Merge pull request #26298 from nextcloud/backport/26287/stable21
[stable21] Fix l10n
2021-03-26 08:08:41 +01:00
Nextcloud bot 9ddc6df797
[tx-robot] updated from transifex 2021-03-26 02:25:43 +00:00
Morris Jobke 82f6d632b6
Merge pull request #26301 from nextcloud/backport/26299/stable21
[stable21] Log when a storage is marked as unavailable
2021-03-25 20:33:35 +01:00
Morris Jobke cf8be87e47 Log when a storage is marked as unavailable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-25 16:10:28 +00:00
Valdnet 23ccae6840 Fix l10n
Issue: #26286
2021-03-25 12:58:59 +00:00
Robin Appelman fdf7eb10a2 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:59 +00:00
Nextcloud bot 769c6fedad
[tx-robot] updated from transifex 2021-03-25 02:25:48 +00:00
Morris Jobke ffb7c51ca6
Merge pull request #26257 from nextcloud/backport/26198/stable21
[stable21] Handle limit offset and sorting in files search
2021-03-24 17:32:36 +01:00
Morris Jobke f7922bdd0d
Merge pull request #26279 from nextcloud/backport/26255/stable21
[stable21] l10n: Separate ellipsis
2021-03-24 17:14:19 +01:00
Morris Jobke ba9e1c0d1a
Merge pull request #26276 from nextcloud/backport/26265/stable21
[stable21] Fix casing of core test folder, bring back missing tests
2021-03-24 17:13:44 +01:00
Vincent Petry bb7ff7f440
Revert controller tests to match stable21 API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 15:22:35 +01:00
Valdnet 7a7bd29177 l10n: Separate ellipsis
Unifying the text string with the others.
2021-03-24 13:26:48 +00:00
Morris Jobke 88b0b5aa40
Merge pull request #26249 from nextcloud/backport/25529/stable21
[stable21] Fix non LGC glyphs in avatars and txt file previews
2021-03-24 14:20:25 +01:00
Morris Jobke e5dc0b7ad1
Merge pull request #26271 from nextcloud/backport/26270/stable21
[stable21] Catch invalid cache source storage path
2021-03-24 14:09:03 +01:00
Vincent Petry 447ccc1e55 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:52 +00:00
Vincent Petry bad3243944 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:52 +00:00
Vincent Petry 3e815f555d Fix more controller tests in Core subdir
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:52 +00:00
Vincent Petry 365c99b0be Fix more tests in the Core subdir
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:51 +00:00
Vincent Petry 2c4b21b2fc Fix core tests command for app enabling/disabling
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:51 +00:00
Vincent Petry 544ea63613 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:51 +00:00
John Molakvoæ (skjnldsv) e9fafce71b Catch invalid cache source storage path
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-24 11:03:30 +00:00
Nextcloud bot ef273fef4b
[tx-robot] updated from transifex 2021-03-24 02:25:17 +00:00
Robin Appelman 03c430868a update icewind/smb to 3.4.0
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 16:23:53 +00:00
Robin Appelman 5a1ae2c3c0 use node search api for legacy file search endpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:22 +00:00
Robin Appelman 2c565d68bc pass order from unified search to file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:21 +00:00
Robin Appelman d4381c0eac handle ordering in folder search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:18 +00:00
Robin Appelman 8551ee079d folder filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:16 +00:00
Robin Appelman 277c0039f6 cleanup fileinfo creation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:13 +00:00
Robin Appelman c8679885f6 format
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:12 +00:00
Robin Appelman 423e1581e0 handle limit and offset in folder file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:12 +00:00
Robin Appelman 2500d296c5 only require user to be set in a query that handles tags
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:11 +00:00
Robin Appelman d2245734d4 unify handling of Folder::search methods into "new" query objects
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:11 +00:00
Robin Appelman 680e21b7c5 use "newer" node search api directly in unified search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:10 +00:00
Nextcloud bot c60f0e06d0
[tx-robot] updated from transifex 2021-03-23 02:24:15 +00:00
Daniel Calviño Sánchez e6ee498f88 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:07:59 +00:00
Daniel Calviño Sánchez 4cb539bf09 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:07:58 +00:00
Morris Jobke a07e171df7
Merge pull request #26177 from nextcloud/backport/26161/stable21
[stable21] Improve search results when only phonebook-matches can we autocompleted
2021-03-22 21:02:43 +01:00
Roeland Jago Douma e12e2ae8a3 Make psalm happy
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-22 20:20:29 +01:00
Joas Schilling 3fd9d0dc50 Also limit to user group in case enumeration is enabled for groups and phonenumbers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
Joas Schilling e9ea4a0f01 Fix parameter types in docs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
Joas Schilling f2acf492cf Add missing index on the user column
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
Joas Schilling 553a25e1a1 Improve search results when only phonebook-matches can we autocompleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
John Molakvoæ 83b7b6f474
Merge pull request #26238 from nextcloud/backport/26231/stable21 2021-03-22 13:55:28 +01:00
Valdnet 207e8cbf9e l10n: Add changes to text string for user 2021-03-22 10:30:49 +00:00
Valdnet ba1e966439 l10n: Add word user in ShareByMailProvider.php
Standardizing text strings with other Nextcloud applications.
2021-03-22 10:30:49 +00:00
Nextcloud bot 2e2d2e79e8
[tx-robot] updated from transifex 2021-03-22 02:23:56 +00:00
Morris Jobke 476c30b807
Merge pull request #26227 from nextcloud/backport/26213/stable21
[stable21] Removed unnecessary padding
2021-03-21 20:57:42 +01:00
Nextcloud bot 89319b995f
[tx-robot] updated from transifex 2021-03-21 02:23:20 +00:00
Sascha Wiswedel a52482246b Removed unnecessary padding
Signed-off-by: Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
2021-03-20 09:57:08 +00:00
Roeland Jago Douma b3bf640111
Merge pull request #26215 from nextcloud/backport/26145/stable21
[stable21] add (hidden) option to always show smb root as writable
2021-03-20 10:53:40 +01:00
Nextcloud bot 798eff0161
[tx-robot] updated from transifex 2021-03-20 02:23:52 +00:00
Robin Appelman 7f066931e4 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:01 +00:00
Morris Jobke eaae526ba7
Merge pull request #26211 from nextcloud/backport/23718/stable21
[stable21] expand 'path is already shared' error message
2021-03-19 15:21:17 +01:00
Morris Jobke 06a9463e11
Merge pull request #26204 from nextcloud/backport/26200/stable21
[stable21] Update user share must use correct expiration validation
2021-03-19 15:19:19 +01:00
Vincent Petry 0e5379a7b3
Merge pull request #26119 from nextcloud/backport/26003/stable21
[stable21] Add getID function to the simplefile implementation
2021-03-19 13:59:00 +01:00
Robin Appelman def56ca0cd expand 'path is already shared' error message
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-19 12:45:40 +00:00
Vincent Petry 695ccecf26 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:54:47 +00:00
Morris Jobke 682df0b788
Merge pull request #26124 from nextcloud/backport/25533/stable21
[stable21] send share notification instead of erroring on duplicate share
2021-03-19 09:18:49 +01:00
Nextcloud bot 942b40583c
[tx-robot] updated from transifex 2021-03-19 02:25:05 +00:00
Roeland Jago Douma 8942d76f72
Merge pull request #26122 from nextcloud/backport/26004/stable21
[stable21] Allow overwriting isAuthenticated
2021-03-18 16:20:46 +01:00
Vincent Petry 15cb3f0624
Merge pull request #26192 from nextcloud/backport/25331/stable21
[stable21] Fix valid storages removed when cleaning remote storages
2021-03-18 11:23:51 +01:00
Daniel Calviño Sánchez 7e87b12271 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 08:05:04 +00:00
Daniel Calviño Sánchez 388110a35e Add integration tests for "sharing:cleanup-remote-storages" OCC command
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-18 08:05:04 +00:00
Vincent Petry 73d2f42d41
Merge pull request #26087 from nextcloud/backport/26049/stable21
[stable21] limit constructing of result objects in file search
2021-03-18 08:21:50 +01:00
Nextcloud bot 4ebf9c2d1a
[tx-robot] updated from transifex 2021-03-18 02:25:13 +00:00
Morris Jobke 0e642a5f5e
Merge pull request #26062 from nextcloud/backport/25915/stable21
[stable21] Add appconfig to always show the unique label of a sharee
2021-03-17 20:13:07 +01:00
Morris Jobke c1c377f609
Merge pull request #26090 from nextcloud/backport/25722/stable21
[stable21] apply object store copy optimization when 'cross storage' copy is wit…
2021-03-17 20:09:50 +01:00
Morris Jobke a70bdb962b
Merge pull request #26175 from nextcloud/backport/26076/stable21
[stable21] adds ldap user:reset command
2021-03-17 20:06:29 +01:00
Morris Jobke 95ebe5e819
Merge pull request #26146 from nextcloud/backport/26013/stable21
[stable21] Return the fileid from `copyFromCache` and use it instead of doing an extra query
2021-03-17 20:03:58 +01:00
Arthur Schiwon 4cd15b7815 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-17 13:38:55 +00:00
Morris Jobke 4b3684fbc4
Merge pull request #25943 from nextcloud/backport/25659/stable21
[stable21] catch notfound and forbidden exception in smb::getmetadata
2021-03-17 13:50:39 +01:00
Morris Jobke aa8a31b3ec
Merge pull request #26166 from nextcloud/backport/26131/stable21
[stable21] Fix default missing initial state for templates
2021-03-17 13:50:32 +01:00
Morris Jobke a2d17c3c02
Merge pull request #26167 from nextcloud/backport/26072/stable21
[stable21] remove explicit fclose from S3->writeStream
2021-03-17 13:47:03 +01:00
kesselb 5ecbfa4f20
Merge pull request #26162 from nextcloud/backport/26153/stable21
[stable21] Use correct exception type hint in catch statement
2021-03-17 11:09:19 +01:00
Robin Appelman 0532f64aa8 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:02 +00:00
John Molakvoæ (skjnldsv) 1be574319c Fix default missing initial state for templates
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-17 09:20:38 +00:00
Vincent Petry 215967db96
Merge pull request #26151 from nextcloud/backport/26137/stable21
[stable21] dont allow creating users with __groupfolders as uid
2021-03-17 09:46:37 +01:00
Morris Jobke 162e763e26 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:44:29 +00:00
Nextcloud bot fd29c1d72a
[tx-robot] updated from transifex 2021-03-17 02:24:31 +00:00
Robin Appelman 1089d8545b 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:55 +00:00
Robin Appelman 44d4957548 verify that cache entry is valid
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:59 +00:00
Robin Appelman f6f92e8bc6 also implement for FailedCache and NullCache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:58 +00:00
Robin Appelman 719db4cee9 use returned file id for object store copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:57 +00:00
Robin Appelman bb180a95bb add ICopyFromCache trait to expose existing implementation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:56 +00:00
Morris Jobke 120aefb795
Merge pull request #26133 from nextcloud/backport/25136/stable21
[stable21] do cachejail search filtering in sql
2021-03-16 16:59:29 +01:00
Christoph Wurst e09d59aa81
Merge pull request #26128 from nextcloud/backport/26115/stable21
[stable21] Log exceptions when creating share
2021-03-16 11:09:13 +01:00
Nextcloud bot 8d6a4bef6c
[tx-robot] updated from transifex 2021-03-16 02:24:53 +00:00
Robin Appelman e5ffb96c36 only use share cacheentry when available
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:34 +00:00
Robin Appelman c727879073 adjust tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:34 +00:00
Robin Appelman ec0985ba68 fix search in nested jails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:33 +00:00
Robin Appelman eb56b1d0bd fix cachjail searching for root
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:32 +00:00
Robin Appelman 046638abeb do cachejail search filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:32 +00:00
Vincent Petry f109677856 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:16 +00:00
Robin Appelman f2a35cd3f8 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:04 +00:00
Roeland Jago Douma 8806bbe6fe 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:05 +00:00
Roeland Jago Douma 7059b0b21f 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-15 13:44:45 +00:00
Nextcloud bot 7c21fba61f
[tx-robot] updated from transifex 2021-03-15 02:24:10 +00:00
Nextcloud bot 0ea077ae1f
[tx-robot] updated from transifex 2021-03-14 02:23:50 +00:00
Nextcloud bot 5b923eee03
[tx-robot] updated from transifex 2021-03-13 02:23:05 +00:00
Robin Appelman 6308267aff 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:01 +00:00
Robin Appelman a5ceded17f implement PagedProvider for file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 12:38:37 +00:00
Robin Appelman b6af62fd24 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-12 12:38:37 +00:00
Roeland Jago Douma 7f0f9fcd93
Merge pull request #26081 from nextcloud/backport/26080/stable21
[stable21] Only clear known users when we had at least one phonebook entry
2021-03-12 12:44:41 +01:00
Roeland Jago Douma 3ac6dc3b50
Merge pull request #26084 from nextcloud/backport/26079/stable21
[stable21] Chunk the array of phone numbers
2021-03-12 12:44:25 +01:00
Joas Schilling 2d92f1117b Fix Test class name
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 10:23:13 +00:00
Joas Schilling 6951c4ef56 Chunk the array of phone numbers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 10:23:13 +00:00
Joas Schilling 3efb2d2208 Only clear known users when we had at least one phonebook entry
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 09:48:14 +00:00
Nextcloud bot 6e2f7ddc7a
[tx-robot] updated from transifex 2021-03-12 02:22:52 +00:00
Julius Härtl cd5e27e3f3
Add appconfig to always show the unique label of a sharee
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-11 15:32:26 +01:00
Vincent Petry 04dd7b234e
Merge pull request #26058 from nextcloud/backport/25911/stable21
[stable21] Only clear share password model when actually saved
2021-03-11 15:15:40 +01:00
Vincent Petry ec443159af 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:05:31 +00:00
Vincent Petry 1d0b210d00
Merge pull request #26039 from nextcloud/backport/25916/stable21
[stable21] Remove trash items from other trash backends when deleting all
2021-03-11 10:31:30 +01:00
Roeland Jago Douma 0e8ada1a8a
Merge pull request #26056 from nextcloud/backport/26031/stable21
[stable21] Allow autocomplete based on phone sync
2021-03-11 09:31:44 +01:00
Joas Schilling 62ef45028e
Clean up the logic of the contacts store a bit
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:42:19 +01:00
Joas Schilling 5fa52d492a
Rename some parameters and methods to make the API more clear
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:42:09 +01:00
Joas Schilling 99c1eda9c5
Bump version to run migration
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:41:43 +01:00
Joas Schilling 490bfa7330
Also clear the knownUser when changing via the settings endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:59 +01:00
Joas Schilling 49f7d08b38
Also execute the new tests on drone
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:49 +01:00
Joas Schilling 72fb176ec9
Change label also in the acceptance tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:38 +01:00
Joas Schilling 5afaf3d06c
Fix CS hopefully
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:32 +01:00
Joas Schilling 77f6d768bc
Add a setting to restrict returning a full match unless in phonebook or same group
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:26 +01:00
Joas Schilling 8069c52a85
Add a hint that the settings are OR based
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:20 +01:00
Joas Schilling 30610aa615
Add integration tests for autocomplete/get (similar to sharees API)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:10 +01:00
Joas Schilling c7560ab3a9
Restrict autocompletion also based on the phonebook known users
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:03 +01:00
Joas Schilling 52d43bf3cc
Add a config setting to restrict autocompletion to phonebook matches
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:55 +01:00
Joas Schilling 88855d8827
Add a service to find out if a user knows another user
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:46 +01:00
Joas Schilling 5af22f84b3
Delete matches when the user is being deleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:39 +01:00
Joas Schilling 19ccc992d5
Delete matches when a user changes their phone number
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:29 +01:00
Joas Schilling 3feca65399
Store when a user knows another user based on phone number
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:20 +01:00
Joas Schilling ebb9f1d16a
Add a KnownUsers database with model
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:38:55 +01:00
Julius Härtl 1a25b2e402
Merge pull request #26051 from nextcloud/backport/26048/stable21
[stable21] cache baseurl in url generator
2021-03-11 08:30:58 +01:00
Nextcloud bot e28dbef7a1
[tx-robot] updated from transifex 2021-03-11 02:23:18 +00:00
Robin Appelman ac29f27b17 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:30 +00:00
Roeland Jago Douma cc48b81411
Merge pull request #26026 from nextcloud/backport/25933/stable21
[stable21] Hide expiration date field for remote shares
2021-03-10 15:46:57 +01:00
Roeland Jago Douma f94c69123a
Merge pull request #26044 from nextcloud/backport/26029/stable21
[stable21] Provisioning API to IBootstrap
2021-03-10 15:46:06 +01:00
Joas Schilling a659ee1c2d Fix some psalm warnings
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-10 13:38:00 +00:00
Roeland Jago Douma fa2dc9abc5 Provisioning API to IBootstrap
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-10 13:37:59 +00:00
kesselb c74cccd12c
Merge pull request #26042 from nextcloud/backport/26030/stable21
[stable21] Fix SCSS compiler deprecated function usages
2021-03-10 11:04:52 +01:00
Vincent Petry ff95956e5d 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:42:41 +00:00
Roeland Jago Douma 4c68aee72b
Merge pull request #25877 from nextcloud/backport/25568/stable21
[stable21] disable trasbin during the moveFromStorage fallback
2021-03-10 09:33:51 +01:00
Roeland Jago Douma 4cf3a9f81e Fix SCSS compiler deprecated function usages
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-10 08:24:30 +00:00
Julius Härtl deb01f04da Remove trash items from other trash backends when deleting all
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-10 08:00:11 +00:00
Nextcloud bot 3c07ae86ea
[tx-robot] updated from transifex 2021-03-10 02:23:09 +00:00
Roeland Jago Douma 1ac8630a51
Merge pull request #25937 from nextcloud/backport/25927/stable21
[stable21] Sharebymail: set expiration on creation
2021-03-09 20:21:04 +01:00
Nextcloud bot 45cc358d79
[tx-robot] updated from transifex 2021-03-09 02:24:04 +00:00
Julius Härtl ecb64381fb
Merge pull request #25993 from nextcloud/backport/25975/stable21
[stable21] Add missing waits and asserts in acceptance tests
2021-03-08 10:57:33 +01:00
Daniel Calviño Sánchez 8185c46bd8 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:55:45 +00:00
Daniel Calviño Sánchez 3a470c2ebe 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:55:44 +00:00
Daniel Calviño Sánchez b086a0f007 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:55:44 +00:00
Daniel Calviño Sánchez 1058abc97c 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:55:43 +00:00
Daniel Calviño Sánchez 270db2f523 Add locator for apps list
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:43 +00:00
Daniel Calviño Sánchez 4c98d2949f Fix identation
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:42 +00:00
Daniel Calviño Sánchez 34814adb36 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:55:42 +00:00
Daniel Calviño Sánchez d03bc3e535 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:55:41 +00:00
Daniel Calviño Sánchez f3a4ec723a 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:55:40 +00:00
Roeland Jago Douma 6842530d7f
Merge pull request #25962 from nextcloud/backport/25712/stable21
[stable21] Fix admin password strengthify tooltip
2021-03-08 08:53:47 +01:00
Nextcloud bot 48df1bef17
[tx-robot] updated from transifex 2021-03-08 02:23:21 +00:00
Nextcloud bot 0dc05f51ef
[tx-robot] updated from transifex 2021-03-07 02:22:17 +00:00
Roeland Jago Douma e645482089
Merge pull request #25955 from nextcloud/backport/25932/stable21
[stable21] Skip empty obsolete owner when adding to own NC
2021-03-06 10:54:22 +01:00
Nextcloud bot 5e6a891fce
[tx-robot] updated from transifex 2021-03-06 02:22:32 +00:00
Richard Steinmetz 4c2159a622
Fix admin password strengthify tooltip
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-03-05 18:15:30 +01:00
Vincent Petry 9f7973a70e 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:35:36 +00:00
Roeland Jago Douma d81954f913
Merge pull request #25935 from nextcloud/backport/25926/stable21
[stable21] Activity: show if files are hidden or not
2021-03-05 14:29:22 +01:00
Roeland Jago Douma 3aba094d86
Merge pull request #25573 from nextcloud/backport/25378/stable21
[stable21] Improve mention matches
2021-03-05 09:55:44 +01:00
Roeland Jago Douma b4b55616c2
Merge pull request #25918 from nextcloud/backport/25805/stable21
[stable21] Clear multiselect after selection in share panel
2021-03-05 09:44:07 +01:00
Roeland Jago Douma 01b9988a2d
Merge pull request #25571 from nextcloud/backport/25460/stable21
[stable21] Always renew apppasswords on login
2021-03-05 09:07:42 +01:00
Robin Appelman 67d62a820c catch notfound and forbidden exception in smb::getmetadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-05 07:51:47 +00:00
Nextcloud bot 163bf97c3e
[tx-robot] updated from transifex 2021-03-05 02:22:09 +00:00
Roeland Jago Douma 8ab601cf66 Sharebymail: set expiration on creation
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 18:52:30 +00:00
Roeland Jago Douma 5e2a9de3f0 Activity: show if files are hidden or not
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 16:04:30 +00:00
Vincent Petry 1575b09d0d 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-04 15:02:13 +00:00
Roeland Jago Douma 4df7cf1f54
Merge pull request #25875 from nextcloud/backport/25797/stable21
[stable21] Do not trigger a full filelist reload after creating a new file from a template
2021-03-04 15:48:23 +01:00
Roeland Jago Douma 27e2f066a1
Merge pull request #25922 from nextcloud/backport/25882/stable21
[stable21] Filter out tables that does not belong to Nextcloud
2021-03-04 08:28:41 +01:00
Nextcloud bot 5a39900c24
[tx-robot] updated from transifex 2021-03-04 02:22:22 +00:00
Daniel Kesselberg 549cefed15 Filter tables with other table prefix
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-03-03 21:13:25 +00:00
Roeland Jago Douma 3922966f3c
Merge pull request #25843 from nextcloud/backport/25757/stable21
[stable21] fix detecting cyclic group memberships
2021-03-03 11:34:25 +01:00
Julius Härtl f1363bcfde Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-03 10:01:45 +00:00
Roeland Jago Douma 7c8c8902fa
Merge pull request #25899 from nextcloud/backport/25860/stable21
[stable21] do not die after LDAP auth failed with expired acc
2021-03-03 08:34:50 +01:00
Nextcloud bot 2a66d4e5d1
[tx-robot] updated from transifex 2021-03-03 02:21:34 +00:00
Arthur Schiwon 9d937489db 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:02 +00:00
Roeland Jago Douma 8aafd0d765
Merge pull request #25871 from nextcloud/backport/25758/stable21
[stable21] Include RichObject for forms
2021-03-02 21:10:34 +01:00
Roeland Jago Douma db5229bd70
Merge pull request #25846 from nextcloud/backport/25799/stable21
[stable21] fix typo in template directory config
2021-03-02 19:19:58 +01:00
Robin Appelman 36749161d7 disable trasbin during the moveFromStorage fallback
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-02 13:27:56 +00:00
Julius Härtl 472f6faf3f At least try to give the full context for the file action
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-02 13:17:46 +00:00
Julius Härtl 060a0101ae Do not trigger a full filelist reload after creating a new file
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-02 13:17:46 +00:00
Roeland Jago Douma 65db84d0fc
Merge pull request #25872 from nextcloud/backport/25869/stable21
[stable21] Fix namespacing
2021-03-02 14:00:54 +01:00
Anna Larch b5de59e4d7 Fix namespacing
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-03-02 10:07:48 +00:00
Jonas Rittershofer 41930265e9 Include RichObject for forms
Ref. https://github.com/nextcloud/forms/pull/789

Signed-off-by: Jonas Rittershofer <jotoeri@users.noreply.github.com>
2021-03-02 09:59:10 +00:00
kesselb 097bdf973e
Merge pull request #25857 from nextcloud/backport/25856/stable21
[stable21] Card::getOwner should return the actual value
2021-03-02 09:18:28 +01:00
Nextcloud bot 3aca170a3e
[tx-robot] updated from transifex 2021-03-02 02:22:30 +00:00
Roeland Jago Douma b96a0cd77d 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:27:49 +00:00
Roeland Jago Douma d0f4bac711
Merge pull request #25847 from nextcloud/backport/25715/stable21
[stable21] Bump the ca location
2021-03-01 18:26:45 +01:00
Roeland Jago Douma 9c23684dcd Bump the ca location
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-01 12:35:28 +00:00
Sascha Wiswedel 7897414f1a fix typo in template directory config
Signed-off-by: Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
2021-03-01 12:23:28 +00:00
Roeland Jago Douma 256927d8d4
Merge pull request #25739 from nextcloud/backport/25602/stable21
[stable21] Avoid creating two share links when password is enforced
2021-03-01 12:50:01 +01:00
Arthur Schiwon 81fcc0a618 fix detecting cyclic group memberships
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-01 11:10:31 +00:00
Julius Härtl 1f45359c26
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:08:28 +01:00
Nextcloud bot 05978f40ff
[tx-robot] updated from transifex 2021-03-01 02:20:30 +00:00
Nextcloud bot 38f40f821d
[tx-robot] updated from transifex 2021-02-28 02:20:04 +00:00
Nextcloud bot a07d4d3ed5
[tx-robot] updated from transifex 2021-02-27 02:22:32 +00:00
Nextcloud bot b5eeca3ab3
[tx-robot] updated from transifex 2021-02-26 02:21:58 +00:00
Christoph Wurst 8ab3a3312c
Merge pull request #25794 from nextcloud/backport/25786/stable21
[stable21] Register service aliases und parameters just once
2021-02-25 10:52:03 +01:00
Christoph Wurst 2eb21bdceb Register service aliases und parameters just once
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-25 08:50:06 +00:00
Nextcloud bot d523d9973f
[tx-robot] updated from transifex 2021-02-25 02:21:31 +00:00
Nextcloud bot 90fa31c280
[tx-robot] updated from transifex 2021-02-24 02:22:16 +00:00
Joas Schilling bffd87abf4
Merge pull request #25708 from nextcloud/backport/25707/stable21
[stable21] Send emails on password reset to the displayname
2021-02-23 11:58:29 +01:00
Nextcloud bot cb9edff655
[tx-robot] updated from transifex 2021-02-23 02:39:36 +00:00
Nextcloud bot f405de31da
[tx-robot] updated from transifex 2021-02-21 02:40:10 +00:00
Nextcloud bot 8bdc933821
[tx-robot] updated from transifex 2021-02-20 02:37:33 +00:00
Roeland Jago Douma 8985b79306
Merge pull request #25600 from nextcloud/version/21/final
21 final
2021-02-19 09:38:35 +01:00
Nextcloud bot 704dfee918
[tx-robot] updated from transifex 2021-02-19 02:21:05 +00:00
Joas Schilling 6ed4c604c7 Send emails on password reset to the displayname
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-18 14:34:38 +00:00
blizzz 49b7b5ba53
Merge pull request #25701 from nextcloud/backport/25697/stable21
[stable21] bump applicable version due to an intermediate release
2021-02-18 11:52:15 +01:00
Roeland Jago Douma 5c3dd4cc74
Merge pull request #25702 from nextcloud/backport/25700/stable21
[stable21] Initialize \OCP\AppFramework\Http\ZipResponse::$resources
2021-02-18 08:28:36 +01:00
Nextcloud bot 7c11b9e974
[tx-robot] updated from transifex 2021-02-18 02:22:03 +00:00
Christoph Wurst cff48176c3 Initialize \OCP\AppFramework\Http\ZipResponse::$resources
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-17 21:28:28 +00:00
Arthur Schiwon 2df924bdce bump applicable version due to an intermediate release
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 20:02:49 +00:00
Christoph Wurst 2724bb8c86
Merge pull request #25650 from nextcloud/backport/25594/stable21
[stable21] Use ownerDisplayName for SharingEntry Tooltip
2021-02-17 19:52:32 +01:00
Roeland Jago Douma ae8d2bd28a
Merge pull request #25688 from nextcloud/backport/25440/stable21
[stable21] Cache the user backend info for 5mins
2021-02-17 10:43:48 +01:00
Joas Schilling a745d58133 Cache the user backend info for 300s
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-17 07:59:22 +00:00
Nextcloud bot 1db95da5d1
[tx-robot] updated from transifex 2021-02-17 02:21:17 +00:00
Dan VerWeire d3415f4bf9 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-16 12:05:52 +00:00
Christoph Wurst 9fa902f0e2
Merge pull request #25665 from nextcloud/backport/25661/stable21
[stable21] Updated CRL
2021-02-16 08:28:45 +01:00
Nextcloud bot b4b5d9b811
[tx-robot] updated from transifex 2021-02-16 02:21:45 +00:00
Roeland Jago Douma b32a4ba969 Updated CRL
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-15 21:06:46 +00:00
Roeland Jago Douma 4a2f46e188
Merge pull request #25662 from nextcloud/backport/25655/stable21
[stable21] Fix app icon list in dark mode
2021-02-15 22:05:21 +01:00
Joas Schilling 82ab80e6e8 Fix app icon list in dark mode
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-15 19:37:29 +00:00
Roeland Jago Douma efa1ef5d69
Merge pull request #25624 from nextcloud/backport/25612/stable21
[stable21] Make new result parts optional
2021-02-15 11:44:14 +01:00
Nextcloud bot 0c909dd072
[tx-robot] updated from transifex 2021-02-15 02:20:19 +00:00
Nextcloud bot cca4693fc7
[tx-robot] updated from transifex 2021-02-14 02:20:11 +00:00
Joas Schilling 219cc77719 Make new result parts optional
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-13 13:59:47 +00:00
Nextcloud bot 69daa9e0a8
[tx-robot] updated from transifex 2021-02-13 02:20:37 +00:00
Roeland Jago Douma 132966e149
Merge pull request #25579 from nextcloud/backport/25299/stable21
[stable21] favicon-touch image corners
2021-02-12 16:29:41 +01:00
Roeland Jago Douma 32a49e228b
Merge pull request #25591 from nextcloud/backport/25582/stable21
[stable21] Do not send imip email to invalid recipients
2021-02-12 08:44:42 +01:00
Roeland Jago Douma 2163ac59d5 21 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-12 08:39:12 +01:00
Nextcloud bot a15066b840
[tx-robot] updated from transifex 2021-02-12 02:20:27 +00:00
Christoph Wurst 3878bcbc11 Do not send imip email to invalid recipients
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-11 19:00:23 +00:00
Roeland Jago Douma 1ddf59efc0
Merge pull request #25586 from nextcloud/backport/25576/stable21
[stable21] Fix WebP availability check
2021-02-11 19:49:10 +01:00
Roeland Jago Douma cb3199f061 Fix WebP availability check
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-11 15:00:33 +00:00
Elsie Hupp 68ce1a9a0a Update manifest.json
Updated dimensions of favicon-touch.png

Signed-off-by: Elsie Hupp <github@elsiehupp.com>
2021-02-11 11:31:04 +00:00
Elsie Hupp 4551fdd2e3 Update favicon-touch.png
removed rounded corners and increased size (exported from SVG)

Signed-off-by: Elsie Hupp <github@elsiehupp.com>
2021-02-11 11:31:04 +00:00
elsiehupp f21fd1097e Remove rounded corners
`apple-touch-icon` expects squared corners; only `apple-touch-icon-precomposed` expects pre-rounded corners. iOS and browsers apply their own corner radii to `apple-touch-icon`.

Signed-off-by: Elsie Hupp <github@elsiehupp.com>
2021-02-11 11:31:03 +00:00
Joas Schilling 5164f43bd3 Fix linter
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:37 +00:00
Joas Schilling 814a8acccc Fix unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:36 +00:00
Joas Schilling cf11f914a7 Make Psalm happy
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:36 +00:00
Joas Schilling 8e43331d47 Improve mention matches
The previous regex didn't correctly match users with . ' or -

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:36 +00:00
Roeland Jago Douma 1afa136060
Merge pull request #25488 from nextcloud/version/21/rc2
Version/21/rc2
2021-02-11 09:15:51 +01:00
Nextcloud bot a858513eee
[tx-robot] updated from transifex 2021-02-11 02:20:46 +00:00
Roeland Jago Douma 0ea266e8bf Always renew apppasswords on login
Else you can end up that you renewed your password (LDAP for example).
But they still don't work because you did not use them before you logged
in.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-10 20:11:43 +00:00
Nextcloud bot c00819572f
[tx-robot] updated from transifex 2021-02-10 02:21:09 +00:00
Roeland Jago Douma 7a09536114
Merge pull request #25450 from nextcloud/backport/25393/stable21
[stable21] add repair job for unencoded group share uris
2021-02-09 14:36:12 +01:00
Nextcloud bot 0fd3c5f8cb
[tx-robot] updated from transifex 2021-02-09 02:20:54 +00:00
Vincent Petry 9696791460
Merge pull request #25522 from nextcloud/backport/25503/stable21
[stable21] Sharing dropdown now opens below
2021-02-08 08:46:29 +01:00
Nextcloud bot 4257656130
[tx-robot] updated from transifex 2021-02-08 02:20:14 +00:00
Nextcloud bot 6d813b419e
[tx-robot] updated from transifex 2021-02-07 02:21:00 +00:00
Vincent Petry a4d2581c65 Sharing dropdown now opens below
Fixes an issue where the dropdown list was not visible on small screens
as it would appear above the field and be hidden behind the container
border.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-06 10:03:09 +00:00
Nextcloud bot 7216f876dd
[tx-robot] updated from transifex 2021-02-06 02:20:59 +00:00
Roeland Jago Douma be4db2d48d
Merge pull request #25496 from nextcloud/backport/25487/stable21
[stable21] Log deprecation notice of GenericEventWrapper just once
2021-02-05 16:17:19 +01:00
Roeland Jago Douma f24ce39733
Merge pull request #25451 from nextcloud/backport/24700/stable21
[stable21] Resolves #24699, Support ES2 and ECS instance providers for S3 buckets
2021-02-05 11:21:20 +01:00
Christoph Wurst a35bebd7d4 Log deprecation notice of GenericEventWrapper just once
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-05 10:14:48 +00:00
Roeland Jago Douma ba63f588e7
Merge pull request #25476 from nextcloud/backport/25443/stable21
[stable21] Make user list pagination more tolerant
2021-02-05 11:04:37 +01:00
Roeland Jago Douma fa6e799e31
Merge pull request #25478 from nextcloud/backport/25441/stable21
[stable21] Fix duplicate tag info view registration
2021-02-05 11:02:24 +01:00
Roeland Jago Douma 83d17b0fb4 21 RC2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-05 08:45:38 +01:00
Nextcloud bot 5ec0132c17
[tx-robot] updated from transifex 2021-02-05 02:21:42 +00:00
Vincent Petry a1e7ac9e33
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-04 10:15:53 +01:00
Vincent Petry 04473c0f0e 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-04 09:15:53 +00:00
Roeland Jago Douma ee8c35614a
Merge pull request #25376 from nextcloud/version/21/rc1
21 RC1
2021-02-04 08:53:23 +01:00
Nextcloud bot 0ee17df264
[tx-robot] updated from transifex 2021-02-04 02:20:13 +00:00
Roeland Jago Douma 2acc4db356
Merge pull request #25457 from nextcloud/update-stable21-target-versions
Update stable21 target versions
2021-02-03 22:47:41 +01:00
Christoph Wurst f57fc89975
Merge pull request #25466 from nextcloud/backport/25464/stable21
[stable21] Parse calendar object for attendees and emit interaction events
2021-02-03 19:53:56 +01:00
Christoph Wurst f4b32f9676 Parse calendar object for attendees and emit interaction events
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-03 18:12:50 +00:00
Christoph Wurst 62f9f4f7fc
Merge pull request #25462 from nextcloud/backport/25432/stable21
[stable21] Emit calendar interaction events
2021-02-03 13:55:50 +01:00
Christoph Wurst f8a87f8cdc Emit an interaction event for calendar event user attendees
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-03 11:53:20 +00:00
Christoph Wurst b5fd6950a1 Emit an interaction event for calendar share recipients
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-03 11:53:20 +00:00
Joas Schilling fa3a2820f4
Update stable21 target versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-03 09:26:05 +01:00
Nextcloud bot 207b7d54fb
[tx-robot] updated from transifex 2021-02-03 02:19:53 +00:00
James Letendre 74d90d0165 Fix failing tests
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:20 +00:00
James Letendre b65b2bbf55 Add web identity provider to S3 connection chain
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:18 +00:00
Arthur Schiwon a834819abb test: adjust expectation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:17 +00:00
James Letendre 5750d79181 Replace defaultProvider with explicit calls to exclude user home directory lookup
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:16 +00:00
Arthur Schiwon 6ebb368265 show suggestion to clean up possible invalid shares later
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:16 +00:00
Arthur Schiwon cfc00aa2cd take into account that UNIQUE index might not work as expected
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:16 +00:00
Arthur Schiwon e5b59531a3 add repair job for unencoded calendars
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:15 +00:00
James Letendre c9a724829a Resolves #24699, Support ES2 and ECS instance providers for S3 buckets
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:13 +00:00
Roeland Jago Douma 43b101caeb 21 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-29 08:56:34 +01:00
3114 changed files with 27179 additions and 55146 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

@ -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
@ -40,25 +38,3 @@ jobs:
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

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,11 +1,10 @@
name: Psalm Security Analysis
on:
pull_request:
push:
branches:
- master
- stable*
pull_request:
schedule:
- cron: '0 0 * * 0'
jobs:
psalm:
@ -20,7 +19,6 @@ jobs:
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

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
@ -43,7 +42,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

View File

@ -19,7 +19,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

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 fbc872de93b18d3e87367d00e281982eab74c5b9

View File

@ -133,7 +133,7 @@ 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 Leuker <j.leuker@hosting.de>
- Johannes Riedel <joeried@users.noreply.github.com>
- Johannes Schlichenmaier <johannes@schlichenmaier.info>
- Johannes Willnecker <johannes@willnecker.com>

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

@ -16,7 +16,7 @@
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="22" max-version="22"/>
<nextcloud min-version="21" max-version="21"/>
</dependencies>
<repair-steps>

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%);

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

@ -1,7 +1,7 @@
OC.L10N.register(
"accessibility",
{
"Dark theme" : "Tъмна Tема",
"Dark theme" : "Активиране на тъмна тема",
"Enable dark theme" : "Активиране на тъмна тема",
"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." : "Тъмна тема, която облекчава очите ви, като намалява яркостта. Все още е в процес на разработка, затова, моля, докладвайте за всички проблеми, които откриете.",
"High contrast mode" : "Висок контраст",

View File

@ -1,5 +1,5 @@
{ "translations": {
"Dark theme" : "Tъмна Tема",
"Dark theme" : "Активиране на тъмна тема",
"Enable dark theme" : "Активиране на тъмна тема",
"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." : "Тъмна тема, която облекчава очите ви, като намалява яркостта. Все още е в процес на разработка, затова, моля, докладвайте за всички проблеми, които откриете.",
"High contrast mode" : "Висок контраст",

View File

@ -1,19 +0,0 @@
OC.L10N.register(
"accessibility",
{
"Dark theme" : "অন্ধকার থিম",
"Enable dark theme" : "অন্ধকার থিম সক্ষম করুন",
"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." : "সামগ্রিক আলোকসজ্জা এবং উজ্জ্বলতা হ্রাস করে আপনার চোখকে সহজ করার জন্য একটি অন্ধকার থিম। এটা এখনও উন্নয়ন অধীনে, তাই কোনো সমস্যা আপনি খুঁজে পেতে পারেন রিপোর্ট করুন। ",
"High contrast mode" : "উচ্চ বিপরীতে মোড ",
"Enable high contrast mode" : "উচ্চতর বিপরীতে মোড সক্ষম করুন",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "আপনার নেভিগেশন সহজ করতে একটি উচ্চ বিপরীতে মোড। ভিজ্যুয়াল মান হ্রাস পাবে তবে স্বচ্ছতা বাড়ানো হবে। ",
"Dyslexia font" : "ডিসলেক্সিয়া হরফ",
"Enable dyslexia font" : "ডিসলেক্সিয়া হরফ সক্ষম করুন",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "ওপেনডাইলেক্সিক হ'ল ফ্রি টাইপফেস / হরফ ডিজাইলেসিয়া দ্বারা সৃষ্ট কিছু সাধারণ পাঠ্য ত্রুটি প্রশমিত করার জন্য ডিজাইন করা। ",
"Accessibility" : "অ্যাক্সেসযোগ্যতা",
"Accessibility options for nextcloud" : "নেক্সটক্লাউডের জন্য অ্যাক্সেসযোগ্যতার বিকল্পগুলি",
"Provides multiple accessibilities options to ease your use of Nextcloud" : "নেক্সটক্লাউডের আপনার ব্যবহার সহজ করার জন্য একাধিক অ্যাক্সেসিবিলিটি বিকল্প সরবরাহ করে",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "সর্বজনীন অ্যাক্সেস আমাদের জন্য খুব গুরুত্বপূর্ণ। আমরা ওয়েব স্ট্যান্ডার্ডগুলি অনুসরণ করি এবং মাউস ছাড়াই এবং স্ক্রিনড্রেডারের মতো সহায়ক সফ্টওয়্যার ছাড়াও সবকিছুকে ব্যবহারযোগ্য করে তুলতে পরীক্ষা করে দেখি। আমরা এএএ স্তরে এমনকি উচ্চতর বিপরীতে থিম সহ, এএ স্তরের {নির্দেশিকা} ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি নির্দেশিকা {লিনএন্ড} 2.1 এর সাথে অনুগত হতে লক্ষ্য করি।",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "আপনি যদি কোনও সমস্যা খুঁজে পান তবে তাদেরকে আমাদের ইস্যু ট্র্যাকার {লিনএন্ড} এ প্রতিবেদন করতে দ্বিধা করবেন না} এবং আপনি যদি এতে জড়িত থাকতে চান তবে আসুন {ডিজাইনটিয়াম} আমাদের ডিজাইন দল {লিনএন্ড} এ যোগদান করুন"
},
"nplurals=2; plural=(n != 1);");

View File

@ -1,17 +0,0 @@
{ "translations": {
"Dark theme" : "অন্ধকার থিম",
"Enable dark theme" : "অন্ধকার থিম সক্ষম করুন",
"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." : "সামগ্রিক আলোকসজ্জা এবং উজ্জ্বলতা হ্রাস করে আপনার চোখকে সহজ করার জন্য একটি অন্ধকার থিম। এটা এখনও উন্নয়ন অধীনে, তাই কোনো সমস্যা আপনি খুঁজে পেতে পারেন রিপোর্ট করুন। ",
"High contrast mode" : "উচ্চ বিপরীতে মোড ",
"Enable high contrast mode" : "উচ্চতর বিপরীতে মোড সক্ষম করুন",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "আপনার নেভিগেশন সহজ করতে একটি উচ্চ বিপরীতে মোড। ভিজ্যুয়াল মান হ্রাস পাবে তবে স্বচ্ছতা বাড়ানো হবে। ",
"Dyslexia font" : "ডিসলেক্সিয়া হরফ",
"Enable dyslexia font" : "ডিসলেক্সিয়া হরফ সক্ষম করুন",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "ওপেনডাইলেক্সিক হ'ল ফ্রি টাইপফেস / হরফ ডিজাইলেসিয়া দ্বারা সৃষ্ট কিছু সাধারণ পাঠ্য ত্রুটি প্রশমিত করার জন্য ডিজাইন করা। ",
"Accessibility" : "অ্যাক্সেসযোগ্যতা",
"Accessibility options for nextcloud" : "নেক্সটক্লাউডের জন্য অ্যাক্সেসযোগ্যতার বিকল্পগুলি",
"Provides multiple accessibilities options to ease your use of Nextcloud" : "নেক্সটক্লাউডের আপনার ব্যবহার সহজ করার জন্য একাধিক অ্যাক্সেসিবিলিটি বিকল্প সরবরাহ করে",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "সর্বজনীন অ্যাক্সেস আমাদের জন্য খুব গুরুত্বপূর্ণ। আমরা ওয়েব স্ট্যান্ডার্ডগুলি অনুসরণ করি এবং মাউস ছাড়াই এবং স্ক্রিনড্রেডারের মতো সহায়ক সফ্টওয়্যার ছাড়াও সবকিছুকে ব্যবহারযোগ্য করে তুলতে পরীক্ষা করে দেখি। আমরা এএএ স্তরে এমনকি উচ্চতর বিপরীতে থিম সহ, এএ স্তরের {নির্দেশিকা} ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি নির্দেশিকা {লিনএন্ড} 2.1 এর সাথে অনুগত হতে লক্ষ্য করি।",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "আপনি যদি কোনও সমস্যা খুঁজে পান তবে তাদেরকে আমাদের ইস্যু ট্র্যাকার {লিনএন্ড} এ প্রতিবেদন করতে দ্বিধা করবেন না} এবং আপনি যদি এতে জড়িত থাকতে চান তবে আসুন {ডিজাইনটিয়াম} আমাদের ডিজাইন দল {লিনএন্ড} এ যোগদান করুন"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@ -1,9 +1,9 @@
OC.L10N.register(
"accessibility",
{
"Dark theme" : "زمینه تیره",
"Enable dark theme" : "فعال‌سازی زمینه تیره",
"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." : "یک زمینه تیره برای راحتی چشم‌های شما با کاهش روی‌هم‌رفته درخشندگی و روشنایی. این امکان هنوز در حال توسعه می‌باشد، بنابراین در صورت مشاهده هرگونه ایراد، آن را گزارش کنید.",
"Dark theme" : "تم تاریک",
"Enable dark theme" : "فعالسازی تم تاریک",
"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." : "تم تاریک برای با کاهش نور و نیز شفافیت برای راحتی بیشتر چشمان شما در استفاده از نکست کلود تعبیه دیده شده است و این امکان در حال توسعه می باشد،به همین دلیل هرگونه ایراد پیش آمده را گزارش دهید.",
"High contrast mode" : "حالت با کنتراست بالا",
"Enable high contrast mode" : "فعالسازی حالت کنتراست بالا",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "یک حالت کنتراست بالا برای سهولت در پیمایش. کیفیت بصری کاهش می یابد اما وضوح افزایش می یابد.",

View File

@ -1,7 +1,7 @@
{ "translations": {
"Dark theme" : "زمینه تیره",
"Enable dark theme" : "فعال‌سازی زمینه تیره",
"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." : "یک زمینه تیره برای راحتی چشم‌های شما با کاهش روی‌هم‌رفته درخشندگی و روشنایی. این امکان هنوز در حال توسعه می‌باشد، بنابراین در صورت مشاهده هرگونه ایراد، آن را گزارش کنید.",
"Dark theme" : "تم تاریک",
"Enable dark theme" : "فعالسازی تم تاریک",
"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." : "تم تاریک برای با کاهش نور و نیز شفافیت برای راحتی بیشتر چشمان شما در استفاده از نکست کلود تعبیه دیده شده است و این امکان در حال توسعه می باشد،به همین دلیل هرگونه ایراد پیش آمده را گزارش دهید.",
"High contrast mode" : "حالت با کنتراست بالا",
"Enable high contrast mode" : "فعالسازی حالت کنتراست بالا",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "یک حالت کنتراست بالا برای سهولت در پیمایش. کیفیت بصری کاهش می یابد اما وضوح افزایش می یابد.",

View File

@ -3,7 +3,7 @@ OC.L10N.register(
{
"Dark theme" : "Ciemny motyw",
"Enable dark theme" : "Włącz ciemny motyw",
"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." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc zgłaszaj wszelkie zauważone błędy.",
"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." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc proszę zgłaszać wszelkie zauważone błędy.",
"High contrast mode" : "Tryb wysokiego kontrastu",
"Enable high contrast mode" : "Włącz tryb wysokiego kontrastu",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Tryb wysokiego kontrastu ułatwiający nawigację. Jakość obrazu zostanie zmniejszona, celem poprawy przejrzystości.",

View File

@ -1,7 +1,7 @@
{ "translations": {
"Dark theme" : "Ciemny motyw",
"Enable dark theme" : "Włącz ciemny motyw",
"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." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc zgłaszaj wszelkie zauważone błędy.",
"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." : "Ciemny motyw, który łagodzi zmęczenie oczu, zmniejszając ogólną jasność. Nadal jest w fazie rozwoju, więc proszę zgłaszać wszelkie zauważone błędy.",
"High contrast mode" : "Tryb wysokiego kontrastu",
"Enable high contrast mode" : "Włącz tryb wysokiego kontrastu",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Tryb wysokiego kontrastu ułatwiający nawigację. Jakość obrazu zostanie zmniejszona, celem poprawy przejrzystości.",

View File

@ -3,7 +3,7 @@ OC.L10N.register(
{
"Dark theme" : "Tema escuro",
"Enable dark theme" : "Ativar tema escuro",
"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." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que por favor reporte quaisquer erros que encontre.",
"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." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que tenha a gentileza de reportar quaisquer erros que encontre.",
"High contrast mode" : "Modo de alto contraste",
"Enable high contrast mode" : "Ativar modo de alto contraste",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Um modo de alto contraste para facilitar sua navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
@ -13,7 +13,7 @@ OC.L10N.register(
"Accessibility" : "Acessibilidade",
"Accessibility options for nextcloud" : "Opções de acessibilidade para nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Fornece várias opções de acessibilidade para facilitar a sua utilização do Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem rato e software auxiliar, como leitores de ecrã. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em o reportar no {issuetracker} nosso issue tracker {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo no {issuetracker} o nosso rastreador de problemas {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
},
"nplurals=2; plural=(n != 1);");

View File

@ -1,7 +1,7 @@
{ "translations": {
"Dark theme" : "Tema escuro",
"Enable dark theme" : "Ativar tema escuro",
"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." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que por favor reporte quaisquer erros que encontre.",
"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." : "Um tema escuro para descansar os olhos reduzindo a luminosidade e o brilho. Ainda está em desenvolvimento, pelo que tenha a gentileza de reportar quaisquer erros que encontre.",
"High contrast mode" : "Modo de alto contraste",
"Enable high contrast mode" : "Ativar modo de alto contraste",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Um modo de alto contraste para facilitar sua navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
@ -11,7 +11,7 @@
"Accessibility" : "Acessibilidade",
"Accessibility options for nextcloud" : "Opções de acessibilidade para nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Fornece várias opções de acessibilidade para facilitar a sua utilização do Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem rato e software auxiliar, como leitores de ecrã. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em o reportar no {issuetracker} nosso issue tracker {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo no {issuetracker} o nosso rastreador de problemas {linkend}. E se quiser participar, venha juntar-se à {designteam} a nossa equipa de design {linkend}!"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@ -3,7 +3,7 @@ OC.L10N.register(
{
"Dark theme" : "Temă întunecată",
"Enable dark theme" : "Activați tema întunecată",
"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." : "O temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
"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." : "Temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
"High contrast mode" : "Modul contrast puternic.",
"Enable high contrast mode" : "Activați tema cu contrast înalt",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un contrast puternic poate ușura utilizarea. Calitatea vizuală va fi redusă, dar claritatea va fi ridicată.",
@ -14,6 +14,6 @@ OC.L10N.register(
"Accessibility options for nextcloud" : "Opțiuni de accesibilitate pentru nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Vă oferă opțiuni multiple de accesibilitate pentru a simplifica utilizarea Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Accesul universal este foarte important pentru noi. Urmărim standardele web și verificăm să facem ca toate funcțiile să poată fii utilizate și fără mouse și software de asistență, cum ar fi sofware de citit ecranul. Ne propunem să fim conformi cu {guidelines} Accesibilitatea conținutului web {linkend} 2.1 la nivel AA, cu tema de contrast ridicat chiar și la nivel AAA.",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} tracker-ul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați în {designteam} echipa noastră de design {linkend}!"
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} următorul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați la {designteam} echipa noastră de design {linkend}!"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");

View File

@ -1,7 +1,7 @@
{ "translations": {
"Dark theme" : "Temă întunecată",
"Enable dark theme" : "Activați tema întunecată",
"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." : "O temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
"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." : "Temă întunecată pentru ușurarea ochilor prin reducerea generală a luminozității. Temă în curs de dezvoltare deci vă rugăm să raportați orice problemă găsită.",
"High contrast mode" : "Modul contrast puternic.",
"Enable high contrast mode" : "Activați tema cu contrast înalt",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un contrast puternic poate ușura utilizarea. Calitatea vizuală va fi redusă, dar claritatea va fi ridicată.",
@ -12,6 +12,6 @@
"Accessibility options for nextcloud" : "Opțiuni de accesibilitate pentru nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Vă oferă opțiuni multiple de accesibilitate pentru a simplifica utilizarea Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Accesul universal este foarte important pentru noi. Urmărim standardele web și verificăm să facem ca toate funcțiile să poată fii utilizate și fără mouse și software de asistență, cum ar fi sofware de citit ecranul. Ne propunem să fim conformi cu {guidelines} Accesibilitatea conținutului web {linkend} 2.1 la nivel AA, cu tema de contrast ridicat chiar și la nivel AAA.",
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} tracker-ul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați în {designteam} echipa noastră de design {linkend}!"
"If you find any issues, dont hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Dacă găsiți probleme, nu ezitați să le raportați la {issuetracker} următorul nostru de probleme {linkend}. Și dacă doriți să vă implicați, participați la {designteam} echipa noastră de design {linkend}!"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
}

View File

@ -40,9 +40,9 @@ 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\IUserSession;
use Psr\Log\LoggerInterface;
use ScssPhp\ScssPhp\Compiler;
use ScssPhp\ScssPhp\Exception\ParserException;
use ScssPhp\ScssPhp\OutputStyle;
@ -58,7 +58,7 @@ class AccessibilityController extends Controller {
/** @var IConfig */
private $config;
/** @var LoggerInterface */
/** @var ILogger */
private $logger;
/** @var ITimeFactory */
@ -82,7 +82,7 @@ class AccessibilityController extends Controller {
public function __construct(string $appName,
IRequest $request,
IConfig $config,
LoggerInterface $logger,
ILogger $logger,
ITimeFactory $timeFactory,
IUserSession $userSession,
IAppManager $appManager,
@ -145,12 +145,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']);
}
}
@ -259,12 +254,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

@ -117,7 +117,7 @@ class ConfigController extends OCSController {
$highcontrast = [$this->accessibilityProvider->getHighContrast()];
$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,8 +27,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,16 +55,26 @@ 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) {
IInitialStateService $initialStateService) {
$this->appName = $appName;
$this->config = $config;
$this->userSession = $userSession;
@ -78,7 +88,7 @@ class Personal implements ISettings {
* @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');
@ -94,8 +104,8 @@ class Personal implements ISettings {
'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 +114,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 +126,7 @@ class Personal implements ISettings {
* E.g.: 70
* @since 9.1
*/
public function getPriority(): int {
public function getPriority() {
return 40;
}
}

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

@ -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="21" max-version="21"/>
</dependencies>
<background-jobs>
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>

View File

@ -20,5 +20,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

@ -35,7 +35,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

@ -2,6 +2,6 @@ OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Audit / journalisation",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que l'accès aux fichiers de journalisation ou des actions autrement sensibles."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que la journalisation des accès aux fichiers ou des actions autrement sensibles."
},
"nplurals=2; plural=(n > 1);");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Audit / journalisation",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que l'accès aux fichiers de journalisation ou des actions autrement sensibles."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que la journalisation des accès aux fichiers ou des actions autrement sensibles."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}

View File

@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Audyt/Logowanie",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do pliku lub innych wrażliwych akcji."
"Auditing / Logging" : "Audyt/logowanie",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do plików lub innych wrażliwych akcji."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Audyt/Logowanie",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do pliku lub innych wrażliwych akcji."
"Auditing / Logging" : "Audyt/logowanie",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Zapewnia możliwość rejestrowania dla Nextcloud, takie jak rejestrowanie dostępu do plików lub innych wrażliwych akcji."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
}

View File

@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditoria / registo",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece a funcionalidade de registo ao Nextcloud como o registo de acesso a ficheiros ou acções sensíveis."
},
"nplurals=2; plural=(n != 1);");

View File

@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "Auditoria / registo",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece a funcionalidade de registo ao Nextcloud como o registo de acesso a ficheiros ou acções sensíveis."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@ -2,6 +2,6 @@ OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditare / Logare",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi înregistrarea accesării fișierelor sau alte acțiuni sensibile."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi accesarea fișierelor de înregistrare sau alte acțiuni sensibile."
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditare / Logare",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi înregistrarea accesării fișierelor sau alte acțiuni sensibile."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Oferă abilități de înregistrare pentru Nextcloud, cum ar fi accesarea fișierelor de înregistrare sau alte acțiuni sensibile."
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
}

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

@ -43,7 +43,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)',
@ -168,7 +168,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)',
@ -284,7 +284,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 +302,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 +319,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 +336,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

@ -49,7 +49,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 +58,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 +78,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 +94,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 +128,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 +142,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 +153,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 +165,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 +173,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 +189,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 +259,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;
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

@ -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="21" max-version="21"/>
</dependencies>
</info>

View File

@ -1,7 +0,0 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "Cloud ဖွဲ့စည်းမှု API ",
"Enable clouds to communicate with each other and exchange data" : "Cloud များကို တစ်ခုခုနှင့်တစ်ခု ဆက်သွယ်ခြင်း၊ သတင်းအချက်အလက်ဖလှယ်ခြင်းကို ပြုလုပ်နိုင်ရန် ဖွင့်ပေးပါ။"
},
"nplurals=1; plural=0;");

View File

@ -1,5 +0,0 @@
{ "translations": {
"Cloud Federation API" : "Cloud ဖွဲ့စည်းမှု API ",
"Enable clouds to communicate with each other and exchange data" : "Cloud များကို တစ်ခုခုနှင့်တစ်ခု ဆက်သွယ်ခြင်း၊ သတင်းအချက်အလက်ဖလှယ်ခြင်းကို ပြုလုပ်နိုင်ရန် ဖွင့်ပေးပါ။"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@ -1,8 +1,8 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "Birleşik Bulut API",
"Cloud Federation API" : "Bulut Birleşim API",
"Enable clouds to communicate with each other and exchange data" : "Karşılıklı iletişim kurmak için bulut hizmetlerini kullanın",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Birleşik Bulut API, farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Bulut Birleşim API farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
},
"nplurals=2; plural=(n > 1);");

View File

@ -1,6 +1,6 @@
{ "translations": {
"Cloud Federation API" : "Birleşik Bulut API",
"Cloud Federation API" : "Bulut Birleşim API",
"Enable clouds to communicate with each other and exchange data" : "Karşılıklı iletişim kurmak için bulut hizmetlerini kullanın",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Birleşik Bulut API, farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Bulut Birleşim API farklı Nextcloud kopyalarının birbiri ile iletişim kurarak karşılıklı veri aktarmasını sağlar."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}

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

@ -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="21" max-version="21"/>
</dependencies>
<activity>

View File

@ -16,10 +16,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

@ -31,10 +31,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 +1,2 @@
!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)}))}});
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=742)}({742:function(e,n){function r(e,n,t,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){return void t(e)}c.done?n(a):Promise.resolve(a).then(r,o)}var o=null,i=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",mount:function(e,n,t){return(i=regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:t}),r.next=4,o.update(n.id);case 4:o.$mount(e);case 5:case"end":return r.stop()}}),r)})),function(){var e=this,n=arguments;return new Promise((function(t,o){var u=i.apply(e,n);function c(e){r(u,t,o,c,a,"next",e)}function a(e){r(u,t,o,c,a,"throw",e)}c(void 0)}))})();var i},update:function(e){o.update(e.id)},destroy:function(){o.$destroy(),o=null},scrollBottomReached:function(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(i)}))}});
//# 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

@ -15,19 +15,12 @@ OC.L10N.register(
"Files app plugin to add comments to files" : "ファイルにコメントを追加するためのファイルアプリプラグイン",
"Edit comment" : "コメントを編集",
"Delete comment" : "コメントを削除",
"Cancel edit" : "編集をキャンセル",
"Post comment" : "コメントを投稿",
"No comments yet, start the conversation!" : "まだコメントはありません、会話を開始してください!",
"No more messages" : "これ以上のメッセージはありません",
"Retry" : "再試行",
"Unable to load the comments list" : "コメントリストを読み込めませんでした",
"_%n unread comment_::_%n unread comments_" : ["%n の未読のコメント"],
"_1 new comment_::_{unread} new comments_" : ["の未読のコメント {unread}"],
"Comment" : "コメント",
"An error occurred while trying to edit the comment" : "コメント編集中にエラーが発生しました",
"Comment deleted" : "コメントが削除されました",
"An error occurred while trying to delete the comment" : "コメントの削除中にエラーが発生しました",
"An error occurred while trying to create the comment" : "コメント中にエラーが発生しました",
"New comment …" : "新しいコメント...",
"Post" : "追加",
"Cancel" : "キャンセル",

View File

@ -13,19 +13,12 @@
"Files app plugin to add comments to files" : "ファイルにコメントを追加するためのファイルアプリプラグイン",
"Edit comment" : "コメントを編集",
"Delete comment" : "コメントを削除",
"Cancel edit" : "編集をキャンセル",
"Post comment" : "コメントを投稿",
"No comments yet, start the conversation!" : "まだコメントはありません、会話を開始してください!",
"No more messages" : "これ以上のメッセージはありません",
"Retry" : "再試行",
"Unable to load the comments list" : "コメントリストを読み込めませんでした",
"_%n unread comment_::_%n unread comments_" : ["%n の未読のコメント"],
"_1 new comment_::_{unread} new comments_" : ["の未読のコメント {unread}"],
"Comment" : "コメント",
"An error occurred while trying to edit the comment" : "コメント編集中にエラーが発生しました",
"Comment deleted" : "コメントが削除されました",
"An error occurred while trying to delete the comment" : "コメントの削除中にエラーが発生しました",
"An error occurred while trying to create the comment" : "コメント中にエラーが発生しました",
"New comment …" : "新しいコメント...",
"Post" : "追加",
"Cancel" : "キャンセル",

View File

@ -20,7 +20,7 @@ OC.L10N.register(
"No comments yet, start the conversation!" : "Ancora perunu cummentu, cumintza sa cunversatzione!",
"No more messages" : "Perunu àteru messàgiu",
"Retry" : "Torra a proare",
"Unable to load the comments list" : "Non faghet a carrigare sa lista de cummentos",
"Unable to load the comments list" : "Impossìbile a carrigare sa lista de cummentos",
"_%n unread comment_::_%n unread comments_" : ["%n cummentu non lèghidu","%n cummentos non lèghidos"],
"_1 new comment_::_{unread} new comments_" : ["1 cummentu nou","{unread} cummentos noos"],
"Comment" : "Cummenta",

View File

@ -18,7 +18,7 @@
"No comments yet, start the conversation!" : "Ancora perunu cummentu, cumintza sa cunversatzione!",
"No more messages" : "Perunu àteru messàgiu",
"Retry" : "Torra a proare",
"Unable to load the comments list" : "Non faghet a carrigare sa lista de cummentos",
"Unable to load the comments list" : "Impossìbile a carrigare sa lista de cummentos",
"_%n unread comment_::_%n unread comments_" : ["%n cummentu non lèghidu","%n cummentos non lèghidos"],
"_1 new comment_::_{unread} new comments_" : ["1 cummentu nou","{unread} cummentos noos"],
"Comment" : "Cummenta",

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

@ -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

@ -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)

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

@ -1,26 +1,3 @@
/**
* @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 './filesplugin'

View File

@ -66,12 +66,11 @@
</div>
<!-- Message editor -->
<div v-if="editor || editing" class="comment__editor ">
<div class="comment__editor " v-if="editor || editing">
<RichContenteditable ref="editor"
v-model="localMessage"
:auto-complete="autoComplete"
:contenteditable="!loading"
:value="localMessage"
@update:value="updateLocalMessage"
@submit="onSubmit" />
<input v-tooltip="t('comments', 'Post comment')"
:class="loading ? 'icon-loading-small' :'icon-confirm'"

View File

@ -1,26 +1,10 @@
/**
/*
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
*
* @author Joas Schilling <coding@schilljs.com>
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Michael Jobst <mjobst+github@tecratech.de>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @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.
*
*/

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