Compare commits

..

417 Commits

Author SHA1 Message Date
blizzz b9a56ee753 Merge pull request #31187 from nextcloud/release/23.0.2
23.0.2
2022-02-15 14:34:52 +01:00
blizzz d98fe9d23c Merge pull request #31171 from nextcloud/stable23-disable-bulkupload
[stable23] Disable bulk upload by not advertising it
2022-02-15 13:43:45 +01:00
Arthur Schiwon d72efb666c 23.0.2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-02-15 13:32:15 +01:00
Joas Schilling 585d069a71 Also comment out in test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-02-15 07:14:14 +01:00
Vincent Petry 58cec19291 Disable bulk upload by not advertising it
It has been reported broken on many instances.
Disable it for now until it can be fixed.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-02-14 16:14:57 +01:00
blizzz 2260f1e914 Merge pull request #31126 from nextcloud/release/23.0.2rc1
23.0.2 RC 1
2022-02-11 12:14:31 +01:00
Arthur Schiwon 768337cb95 23.0.2 RC 1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-02-11 11:42:19 +01:00
Vincent Petry 24349b9130 Merge pull request #31108 from nextcloud/backport/31077/stable23
[stable23] Revert the 'broken' public page changes
2022-02-10 19:31:55 +01:00
blizzz 639d4b6a15 Merge pull request #31107 from nextcloud/backport/30936/stable23
[stable23] Fix duplicated UUID migration issue
2022-02-10 19:13:08 +01:00
szaimen 6bbfaee8bd Revert "Add non-breaking space in the file size"
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-02-10 16:47:40 +00:00
Carl Schwan a87bd0ad40 Revert "Improve layout for the public download page"
This reverts commit 2e55ce0899.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-02-10 16:47:39 +00:00
Carl Schwan 970b65c139 Revert "Fix loading of the text app in public shared links"
This reverts commit d3d117c4a8.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-02-10 16:47:38 +00:00
Arthur Schiwon 092819d89b Setup warning for invalid LDAP user or group UUIDs.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-02-10 17:46:51 +01:00
Côme Chilliet 8cd5a901a8 Fix psalm errors in apps/user_ldap/lib/Jobs/CleanUp.php
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-02-10 17:46:18 +01:00
Côme Chilliet 3c259d76ee Fix ldap:update-uuid
Generators cannot be iterated with while or returned by an other
 generator, using foreach instead.
And a few other problems.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-02-10 17:46:09 +01:00
Arthur Schiwon b954462667 add occ command to update UUIDs (incomplete)
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-02-10 17:45:48 +01:00
Arthur Schiwon 9153d698bc allow to re-run migration step when backup DB is already created
- to heal incomplete states from broken upgrades

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-02-10 17:45:01 +01:00
Arthur Schiwon f975fe4ff3 invalidated duplicated UUIDs prior to migration change
- in a proper setup there are no duplicated UUIDs
- not all setups are proper
- log warning to admin

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-02-10 17:44:46 +01:00
Vincent Petry 1e2baa5a6b Merge pull request #30975 from nextcloud/nickvergessen-patch-1
Update version.php
2022-02-02 15:46:45 +01:00
Joas Schilling 26c97a4fbc Update version.php 2022-02-02 15:42:36 +01:00
Carl Schwan 0f6e1533d4 Merge pull request #30915 from nextcloud/fix/psalm-composer-stable23
[stable23] Fix psalm warning related to registerEventListener
2022-02-01 11:07:33 +01:00
Louis 77dec31419 Merge pull request #30800 from nextcloud/dependabot/npm_and_yarn/stable23/jquery-ui-1.13.1
Bump jquery-ui from 1.13.0 to 1.13.1
2022-01-31 16:40:43 +01:00
dependabot[bot] 1316acc445 Bump jquery-ui from 1.13.0 to 1.13.1
Bumps [jquery-ui](https://github.com/jquery/jquery-ui) from 1.13.0 to 1.13.1.
- [Release notes](https://github.com/jquery/jquery-ui/releases)
- [Commits](https://github.com/jquery/jquery-ui/compare/1.13.0...1.13.1)

---
updated-dependencies:
- dependency-name: jquery-ui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-31 13:23:46 +00:00
Louis abf2ed8ce7 Merge pull request #30890 from nextcloud/backport/30886/stable23
[stable23] Fixes occ user:info when the user never logged in
2022-01-31 13:44:37 +01:00
Louis e02f1a51d1 Merge pull request #30912 from nextcloud/dependabot/npm_and_yarn/stable23/clipboard-2.0.9
Bump clipboard from 2.0.8 to 2.0.9
2022-01-31 13:41:21 +01:00
dependabot[bot] fa064dd3a9 Bump clipboard from 2.0.8 to 2.0.9
Bumps [clipboard](https://github.com/zenorocha/clipboard.js) from 2.0.8 to 2.0.9.
- [Release notes](https://github.com/zenorocha/clipboard.js/releases)
- [Commits](https://github.com/zenorocha/clipboard.js/compare/v2.0.8...v2.0.9)

---
updated-dependencies:
- dependency-name: clipboard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-31 11:50:08 +00:00
Côme Chilliet 19324e6342 Fixes occ user:info when the user never logged in
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-31 10:26:20 +00:00
Louis 094c10a6e5 Merge pull request #30913 from nextcloud/dependabot/npm_and_yarn/stable23/webpack-cli-4.9.2
Bump webpack-cli from 4.9.1 to 4.9.2
2022-01-31 10:32:53 +01:00
Carl Schwan d9d60687bd Merge pull request #30911 from nextcloud/dependabot/npm_and_yarn/stable23/dompurify-2.3.5
Bump dompurify from 2.3.4 to 2.3.5
2022-01-30 09:50:55 +01:00
dependabot[bot] 64b7a50b6c Bump dompurify from 2.3.4 to 2.3.5
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.4...2.3.5)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-30 01:08:53 +00:00
Carl Schwan 003f2b59c9 Fix psalm warning related to registerEventListener
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-29 12:44:02 +01:00
dependabot[bot] 25530ede6f Bump webpack-cli from 4.9.1 to 4.9.2
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.9.1 to 4.9.2.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.1...webpack-cli@4.9.2)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-29 03:36:11 +00:00
John Molakvoæ e69281c66f Merge pull request #30840 from nextcloud/releases/23.0.1 2022-01-27 20:33:21 +01:00
John Molakvoæ 3ee9bcc4f7 Merge pull request #30814 from nextcloud/backport/30508/stable23 2022-01-27 20:06:29 +01:00
Carl Schwan d69531ac8e Fix psalm not running
The issue was that we were using psalm/phar instead of vimeo/psalm. This
caused issue with the custom psalm plugin in buildd/psalm.

This is using the opportunity to also update the psalm version from 3.8
to 3.17 and the php-cs-fixer too.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-27 17:20:00 +01:00
John Molakvoæ 8de4709a10 Merge pull request #30872 from nextcloud/backport/30844/stable23 2022-01-27 10:42:51 +01:00
John Molakvoæ f6f4c6c94f Prevent merging on EOL branches
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-27 08:09:09 +00:00
John Molakvoæ dd5ef2c3b0 Merge pull request #30847 from nextcloud/backport/30846/stable23 2022-01-26 13:13:03 +01:00
Louis Chemineau 91e49958bb Fix php:cs
Signed-off-by: Louis Chemineau <louis@chmn.me>
2022-01-26 10:48:50 +00:00
John Molakvoæ 380f31114f 23.0.1 Final 2022-01-25 14:53:02 +01:00
John Molakvoæ 6b22bc3df2 Merge pull request #30799 from nextcloud/dependabot/composer/build/integration/stable23/sabre/dav-4.3.1 2022-01-24 08:07:48 +01:00
John Molakvoæ 37b49e615c Merge pull request #30740 from nextcloud/backport23 2022-01-22 19:03:33 +01:00
John Molakvoæ 269f04b1b8 Merge pull request #30811 from nextcloud/backport/30795/stable23 2022-01-22 14:14:56 +01:00
John Molakvoæ 0c631830bb Merge pull request #30773 from nextcloud/backport/30769/stable23 2022-01-22 10:25:50 +01:00
Carl Schwan fc3b256dda Fix accessing undefined offsets
Move this to inside the else clause of the count($matches)

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-22 08:58:20 +00:00
dependabot[bot] 454c61be82 Update sabre/dav requirement from 4.3.0 to 4.3.1 in /build/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.3.0...4.3.1)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-22 02:10:48 +00:00
John Molakvoæ 8cb7adc131 Merge pull request #30765 from nextcloud/release/23.0.1rc3 2022-01-20 21:37:22 +01:00
John Molakvoæ c0b03000a5 Merge pull request #30782 from nextcloud/backport/29349/stable23 2022-01-20 21:25:58 +01:00
Robin Appelman 13b8179912 Add test for samba kerberos sso in ci
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-01-20 19:18:28 +00:00
Robin Appelman 0cdcccf9fe update icewind/smb to 3.5.2
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-01-20 19:18:27 +00:00
Robin Appelman 48f6d0f2f6 update to release smb lib
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-01-20 19:18:25 +00:00
Robin Appelman 39b294e0f8 update icewind/smb to 3.5.1
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-01-20 19:18:24 +00:00
Arthur Schiwon efad8ab4e3 do not use deprecated query() method
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-01-20 19:18:23 +00:00
Arthur Schiwon 8245c81584 add changes from Sebastian/dassIT and move default_realm to backend
- Sebastian added the switch depending on the preg_match result and with it
  the fall back to login credentials
- I turned default_realm to a backend option (was previously suggested as
  system config key)

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-01-20 19:18:22 +00:00
Arthur Schiwon dddab717bf add KerberosApacheAuth support to files_external
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-01-20 19:18:21 +00:00
Côme Chilliet 20c3f6d634 Always call flush() as getAllKeys() is broken
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-20 15:38:02 +00:00
John Molakvoæ 4466eb1f42 Merge pull request #30728 from nextcloud/backport/30614/stable23 2022-01-20 11:12:34 +01:00
Carl Schwan fab0e6dbe7 Fix tests with email templates
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-20 10:37:59 +01:00
John Molakvoæ 2645b6cd69 Merge pull request #29798 from nextcloud/stable23-disk 2022-01-20 10:36:40 +01:00
John Molakvoæ 182d1a3741 Merge pull request #30759 from nextcloud/backport/30731/stable23 2022-01-20 10:36:13 +01:00
John Molakvoæ 298333f07c 23.0.1 RC3
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-20 10:16:39 +01:00
Joas Schilling 713342cd23 Log bruteforce throttle and blocking
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-19 11:51:43 +00:00
John Molakvoæ f5dd452d5f Merge pull request #30753 from nextcloud/backport/30738/stable23 2022-01-19 11:04:33 +01:00
John Molakvoæ 84df632d62 Merge pull request #30747 from nextcloud/backport/30615/stable23 2022-01-19 10:45:33 +01:00
Joas Schilling 32c0710aa7 Create block-merge-freeze.yml
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-19 09:21:13 +00:00
Christopher Ng 38221b8c68 Update autoload and ClassLoader
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-01-19 02:12:15 +00:00
Christopher Ng 2063c58623 Improve installation pages
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 22768769c3)
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-19 00:42:55 +00:00
Carl Schwan 49a8a8fa98 Merge pull request #30734 from nextcloud/backport/30470/stable23
[stable23] Hash job argument
2022-01-18 17:02:37 +01:00
acsfer 61509de933 [stable23] Increase email main buttons width for non-english languages
Manual backport of https://github.com/nextcloud/server/pull/30653
2022-01-18 16:01:26 +01:00
Julius Härtl fb032ad04d Add hashed attribute column for indexed job existence check
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-18 15:09:27 +01:00
Marek-Wojtowicz 10ae5acf64 Update Session.php
The http headers according to rfc 2616 is iso-8859-1. This patch fixes the behavior when non-ascii characters are present in the header.

Signed-off-by: Marek Wójtowicz <Marek.Wojtowicz@agh.edu.pl>
2022-01-17 23:23:17 +00:00
MichaIng 58b4db7f7d Merge pull request #30685 from nextcloud/backport/29923/stable23
[stable23] Fix users can't login external mount user entered credentials not set
2022-01-17 21:20:05 +01:00
max-nextcloud 90ac982503 Merge pull request #30722 from nextcloud/backport/30719/stable23
[stable23] Fix loading of the text app in public shared links
2022-01-17 20:45:25 +01:00
Carl Schwan f989dcbea8 Fix loading of the text app in public shared links
Instead of doing the centering for the entire public content, only do it
for the preview. This is more safe.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-17 18:03:28 +00:00
blizzz 93fda5154d Merge pull request #30678 from nextcloud/release/23.0.1rc2
23.0.1 RC2
2022-01-17 12:28:47 +01:00
Carl Schwan 253d502471 Merge pull request #30684 from nextcloud/backport/30531/stable23
[stable23] Optimize FileSystemTags workflow for groupfolder
2022-01-17 10:15:26 +01:00
MichaIng 6c0d6e23e7 Merge pull request #30688 from nextcloud/backport/30499/stable23
[stable23] Remove inefficient fed share scanner
2022-01-15 02:52:03 +01:00
MichaIng 78f38493ba Merge pull request #30689 from nextcloud/backport/30645/stable23
[stable23] New Files internal link GET param to avoid opening the file
2022-01-15 02:50:26 +01:00
MichaIng 9f7c05cf4f Merge pull request #30695 from nextcloud/backport/30631/stable23
[stable23] updateEncryptedVersion: cleanup on target if cache already got renamed
2022-01-15 02:48:12 +01:00
MichaIng 5bebac3ab2 Merge pull request #30698 from nextcloud/backport/30655/stable23
[stable23] Improve layout for the public download page
2022-01-15 02:39:47 +01:00
Carl Schwan 05cb962361 Add non-breaking space in the file size
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-14 22:34:05 +00:00
Carl Schwan 7c1dfd9850 Improve layout for the public download page
This centers the content inside the pages, while also not hardcoded the
size of the footer.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-14 22:34:04 +00:00
Jonas Meurer 9da4620ff8 updateEncryptedVersion: cleanup on target if cache already got renamed
When moving a file to trash with encryption enabled, the cache gets
moved before the actual file. According to @icewind1991 this is in order
to not break object storage.

When moving a file from an unencrypted storage (e.g. a collectives
storage) to the encrypted trashbin storage, this causes errors, see

This commit fixes it by doing `updateEncryptedVersion()` on the target
cache entry *if* the source cache entry doesn't exist anymore, but the
corresponding target cache entry does exist already.

Fixes: #26544

Signed-off-by: Jonas Meurer <jonas@freesources.org>
2022-01-14 21:41:10 +00:00
Julien Veyssier 55dd10acca [files] new internal link GET param to avoid setting 'openfile' on redirect
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-01-14 16:57:51 +00:00
John Molakvoæ 834385a190 Merge pull request #30672 from nextcloud/backport/stable23/30597 2022-01-14 17:30:13 +01:00
Vincent Petry 3cac62f7ba Remove inefficient fed share scanner
Remove scanAll which relies on the "shareinfo" endpoint that returns the
full cache tree.
The latter can become big for big shares and result in timeouts.
Furthermode, the full tree would be retrieved again for each and every
detected change which can become expensive quickly.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-14 16:09:03 +00:00
John Molakvoæ bbde8dafeb Merge pull request #30674 from nextcloud/backport/30275/stable23 2022-01-14 16:27:21 +01:00
Anderson Luiz Alves f71593e3d5 files_external SMB: throw InvalidArgument when user is not set
Signed-off-by: Anderson Luiz Alves <alacn1@gmail.com>
2022-01-14 15:16:18 +00:00
Carl Schwan 61624c2213 Fix psalm issues
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-14 14:17:11 +00:00
Carl Schwan c3fcb2c199 Add helper method in Wrapper
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-14 14:17:06 +00:00
Carl Schwan 3c060e54fa The storage is not static anymore
Don't call twice $cache->getId

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-14 14:17:04 +00:00
Carl Schwan 88774cfbba Optimize FileSystemTags workflow for groupfolder
In https://github.com/nextcloud/server/pull/28774 we disabled the
caching for the groupfolder application since it worked due to the fact
that in groupfolders, getFileIds could be called with the same $cacheId
and path for actually different groupfolders.

This revert this change and instead add the folderId from the
groupFolder to the cacheId. This solve the issue of the uniqueness of
the cacheId inside GroupFolder. Downside is that we introduce
groupfolder specific implementation inside the server repo.

The seconf optimization is to not consider paths starting with
__groupfolders in executeCheck. This is due to the fact that files in
the groupfolder application call two times executeCheck one time with
the url __groupfolder/<folderId>/<path> and the other time with <path>.
The first time will always return an empty systemTags array while the
second call will return the correct system tags.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-14 14:17:00 +00:00
Simon L 377336a8f1 Merge pull request #30671 from nextcloud/backport/30363/stable23
[stable23] improve accessibility settings on mobile
2022-01-14 14:31:05 +01:00
Arthur Schiwon 2d147a4c4c 23.0.1 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-01-14 12:46:43 +01:00
Vincent Petry 3bdd8aeba0 Merge pull request #30662 from nextcloud/backport/30530/stable23
[stable23] Fix wrong unified search link to folder
2022-01-14 12:21:22 +01:00
blizzz c36ae149a0 Merge pull request #30663 from nextcloud/backport/30568/stable23
[stable23] Fix primary key change in user_ldap migration
2022-01-14 12:04:06 +01:00
Joas Schilling 28c6a4db1d Add version of disabled apps when available
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-14 11:02:47 +00:00
Carl Schwan 1904793d4b Fix file picker not respecting hidden files settings
This will only respect the setting inside the file app. For other apps
we will either need to do an API call or add an input field with the
same idea to spare a blocking api call.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
(cherry picked from commit 1fa58be1aa)
2022-01-14 11:46:43 +01:00
Julius Härtl 1938c41ace Merge pull request #30659 from nextcloud/backport/29622/stable23 2022-01-14 10:41:46 +01:00
szaimen 963220dbd7 address 2nd review
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-01-14 09:39:16 +00:00
szaimen 729ef0063f address review
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-01-14 09:39:15 +00:00
szaimen f47835cec3 improve accessibility settings on mobile
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-14 09:39:14 +00:00
Carl Schwan f4fcbaa8b9 Merge pull request #30643 from nextcloud/backport/30600/stable23
[stable23] Fix idn emails not working in shares
2022-01-14 10:08:19 +01:00
Côme Chilliet 101338063e Remove useless indexes with duplicated names on backup table
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-14 08:31:42 +00:00
Joas Schilling 9a9c8602e4 Update autoloader
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-14 08:31:41 +00:00
Côme Chilliet e4235bdeba Fix user_ldap migration for long DNs support
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-14 08:31:40 +00:00
Côme Chilliet 66ca2925e7 Move duplicated code to a base class for group_mapping migrations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
2022-01-14 08:31:38 +00:00
Côme Chilliet 03a570a500 Split dropTable and createTable in two migrations
It is not possible to drop and create the same table in one migration

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-14 08:31:38 +00:00
Côme Chilliet d90e9088d0 Fix primary key change in user_ldap migration
Use a backup table to copy the data, drop table and recreate it with
 correct primary key, then copy the data back and drop the backup table.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-01-14 08:31:36 +00:00
John Molakvoæ c124c27cdf Fix wrong unified search link to folder
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-14 08:22:29 +00:00
John Molakvoæ 05a13d3dc6 Implement multibucket shift for ObjectStore
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-14 08:31:38 +01:00
Carl Schwan 2b2d23ce21 Fix idn emails not working in shares
And add check before sending email that email address is valid

Fix #30595

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-13 17:10:43 +01:00
Vincent Petry 26b5949102 Merge pull request #30636 from nextcloud/backport/30620/stable23
[stable23] Properly abort uploads
2022-01-13 11:35:38 +01:00
Vincent Petry ac9ad51b10 Properly hide progress bar after error
Whenever an error occurs, also hide the progress bar.

The logic was also adjusted to properly detect uploads that are pending
deletion, in which case the progress bar can already be hidden.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-13 08:29:29 +00:00
Vincent Petry c78d542596 Properly abort uploads
Add a new approach for flagging an upload as aborted because we can't
rely on the browser fully cancelling the request as we now seem to
receive an error response from the server instead of a jQuery "abort"
message.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-13 08:29:28 +00:00
Vincent Petry c2f3f37f69 Merge pull request #30627 from nextcloud/backport/30593/stable23
[stable23] Trigger "changeDirectory" event on URL change
2022-01-12 17:42:45 +01:00
MichaIng 0323ced93a Merge pull request #30621 from nextcloud/backport/30358/stable23
[stable23] Reset job disabling timer on adding the job again
2022-01-12 16:01:56 +01:00
Vincent Petry 3340861c82 Trigger "changeDirectory" even on URL change
When using the browser back button or clicking on sections on the left
sidebar (like favorites), the "changeDirectory" jQuery event did not get
called, so apps like recommendations would not notice the directory
change.

This fixes the issue by also setting changeUrl to true when the file
list's directory got changed as a result from a URL change.

Added optional changedThroughUrl argument to make sure the event
recipient knows if the change was done through a URL change and make it
possible prevent a loop in the onDirectoryChange handler that actually
changes the URL when the origin was already from a URL change.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-12 13:46:13 +00:00
Carl Schwan 693771fd81 Merge pull request #30619 from nextcloud/backport/30609/stable23
[stable23] Fix RequestURL check for cli commands
2022-01-12 14:01:00 +01:00
Joas Schilling b89e743976 Merge pull request #30611 from nextcloud/backport/30588/stable23
[stable23] Fix undefined/unset scope in account properties
2022-01-12 13:51:07 +01:00
Louis 141524a0e2 Merge pull request #30623 from nextcloud/backport/30485/stable23
[stable23] Set the file's mtime from the headers in bulk upload
2022-01-12 13:36:38 +01:00
Louis Chemineau bb81f7afd8 Set the file's mtime from the headers in bulk upload
Signed-off-by: Louis Chemineau <louis@chmn.me>
2022-01-12 11:00:50 +00:00
Julius Härtl d7cb3d0643 Reset job disabling timer on adding the job again
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-12 10:52:51 +00:00
blizzz 6d2b690881 Merge pull request #30602 from nextcloud/backport/30291/stable23
[stable23] Prevent loading images that would require too much memory.
2022-01-12 11:16:48 +01:00
Carl Schwan 1b8f9420a3 Fix RequestURL check for cli commands
Fix https://github.com/nextcloud/files_automatedtagging/issues/526

Fix https://github.com/nextcloud/groupfolders/issues/1855

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-12 09:07:31 +00:00
Joas Schilling 08037eac25 Fix test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-11 18:44:56 +00:00
Joas Schilling 8fde21460f Fix undefined/unset scope in account properties
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-11 18:44:52 +00:00
Joachim Bauch cebac86ecd Prevent loading images that would require too much memory.
For most image formats, the header specifies the width/height.
PHP allocates an image object from that size, even if the actual
image data is much smaller. This image object size is not limited
by the limit configured in PHP.

The memory limit can be configured through "config.php" setting
"preview_max_memory" and defaults to 128 MBytes which should be
enough for most images without filling up all memory.

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2022-01-11 14:49:08 +00:00
MichaIng c5ea067795 Merge pull request #30594 from nextcloud/backport/30533/stable23
[stable23] Avoid zero division in setup checks
2022-01-11 15:35:18 +01:00
Louis 4846f5d33e Merge pull request #30592 from nextcloud/backport/30571/stable23
[stable23] fix: only use jquery once it is available
2022-01-11 14:18:28 +01:00
MichaIng 755381a4c2 Avoid zero division in setup checks
Fixes: https://github.com/nextcloud/server/issues/30532

Signed-off-by: MichaIng <micha@dietpi.com>
2022-01-11 12:42:02 +00:00
Azul 08016ac02d fix: only use jquery once it is available
publicpage.js is loaded very early and cannot rely on jquery being loaded already.

Move the use of `$` into the `DomContentLoaded` handler.

Signed-off-by: Azul <azul@riseup.net>
2022-01-11 10:34:44 +00:00
Louis ad5501a464 Merge pull request #30576 from nextcloud/backport/30565/stable23
[stable23] Fix fail when keys/files folder already exists
2022-01-11 10:44:10 +01:00
Vincent Petry 9eeaed0051 Fix fail when keys/files folder already exists
Fixes an issue with transfer ownership in move mode where the folder
"files_encryption/keys/files" already exists.

Instead of failing, its existence is checked before calling mkdir.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-11 08:20:41 +00:00
Vincent Petry 67fcbacd4f Merge pull request #30580 from nextcloud/bugfix/noid/npm-ci-for-karma/stable23
[stable23] Use npm ci when running JS tests
2022-01-11 08:53:48 +01:00
Vincent Petry 035d73db11 Make chokidar happy with fsevents
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-10 18:00:24 +01:00
Vincent Petry c948ceee60 Recompile JS
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-10 17:38:16 +01:00
Vincent Petry 4e4797b5b9 Fix JS tests after test lib updates
Prevent XHR during load by checking window.TESTING.
Adjust some expected values.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-10 17:30:32 +01:00
Vincent Petry 60e364018f Update node deps for JS tests
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-10 17:28:16 +01:00
Vincent Petry 7dcbcd21e1 Use npm ci when running JS tests
This makes sure that the pinned versions are selected correctly.
Fixes the colors.js incident.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-01-10 17:26:23 +01:00
John Molakvoæ ed1fcf1982 Merge pull request #30557 from nextcloud/backport/30468/stable23 2022-01-10 08:35:01 +01:00
Carl Schwan b054321fc0 Handle LocalServerException when scanning external shares
When remoteIsOwnCloud trows LocalServerException, the storage is
unavailable and instead of crashing the scanner, ignore the specific
storage.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-09 17:40:39 +00:00
blizzz 99b400c733 Merge pull request #30528 from nextcloud/backport/30511/stable23
[stable23]  update CRL after revocation of sharerenamer.crt
2022-01-08 00:55:12 +01:00
Pytal cc9a2e0558 Merge pull request #30525 from nextcloud/backport/30491/stable23 2022-01-07 11:21:43 -08:00
John Molakvoæ 7d8be4d044 Merge pull request #30518 from nextcloud/release/23.0.1 2022-01-07 14:57:27 +01:00
Vitor Mattos e2d9fb9d01 Update crl
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-01-07 11:25:47 +00:00
Christopher Ng c699f1bec2 Fix email verification
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-01-07 10:52:36 +00:00
Joas Schilling deeee36132 Merge pull request #30522 from nextcloud/backport/30492/stable23
[stable23] Fix passing on the parameter
2022-01-07 10:49:55 +01:00
Joas Schilling 3ca762e0af Fix passing on the parameter
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-07 09:27:35 +01:00
Joas Schilling 551e1a799a Merge pull request #30486 from nextcloud/backport/29780/stable23
[stable23] Run migrations fully when reenabling an app
2022-01-07 08:43:14 +01:00
John Molakvoæ 510e99a622 Merge pull request #30433 from nextcloud/backport/30392/stable23 2022-01-07 08:41:22 +01:00
John Molakvoæ c8702c7766 Merge pull request #30339 from nextcloud/backport/27403/stable23 2022-01-07 08:41:06 +01:00
John Molakvoæ e65a5e199e 23.0.1 RC 1
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-07 08:20:03 +01:00
blizzz 994b32f793 Merge pull request #30351 from nextcloud/backport/29958/stable23
[stable23] Remove iconv from dependencies and tests
2022-01-06 23:37:36 +01:00
Pytal 6a28abbbb6 Merge pull request #30480 from nextcloud/backport/30423/stable23 2022-01-04 17:05:32 -08:00
Pytal b47ecc6396 Merge pull request #30431 from nextcloud/backport/30413/stable23 2022-01-04 11:21:56 -08:00
Joas Schilling e69d0b0a65 Run migrations fully when reenabling an app
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-04 16:19:35 +00:00
Christoph Wurst df21ccd73a Add the Groupware Team as contactsinteraction co-maintainer
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-01-04 16:08:20 +01:00
Christoph Wurst d068ae445c Fix rendering app authors with homepage or email
When the first author of an app doesn't have homepage/email attributes
set in info.xml then any further author was rendered as `[object
Object]` due to the complex XML node seralized to a JavaScript string.
The logic was fixed so that it converts any of the authors to simple
text.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-01-04 16:08:20 +01:00
John Molakvoæ 9bffa5beff Fix uploading text position
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-01-04 08:47:00 +00:00
MichaIng 022d0058ca [stable23] Remove iconv from dependencies and tests
which is not used anymore since: https://github.com/nextcloud/server/pull/29470

Signed-off-by: MichaIng <micha@dietpi.com>
2022-01-04 03:06:55 +01:00
Louis 58dc589ed0 Merge pull request #30449 from nextcloud/backport/30440/stable23
[stable23] Make sure to get file model in template picker
2022-01-03 10:42:26 +01:00
Carl Schwan d92be7b886 Merge pull request #30462 from nextcloud/backport/30409/stable23
[stable23] Allow using composer plugin with composer 2.2
2022-01-03 08:56:35 +01:00
Julius Härtl d81768b2e2 Ignore composer/bin
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-01 14:01:01 +00:00
Julius Härtl 6bbd26b955 Allow using composer plugin with composer 2.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-01 14:01:00 +00:00
Simon L f98d7827e9 Merge pull request #30455 from nextcloud/backport/30420/stable23
[stable23] improve status modal
2021-12-31 18:07:23 +01:00
szaimen e6f837f4b5 improve status modal
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-30 18:50:19 +00:00
Julien Veyssier dccd2a635a fix template picker for file actions using the fileInfoModel
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-30 15:16:31 +00:00
Louis 955cb63e41 Merge pull request #30343 from nextcloud/backport/29329/stable23
[stable23] fix potential unwarranted memberships in nested groups from LDAP
2021-12-30 11:04:39 +01:00
Louis 94f3192b82 Merge pull request #30315 from nextcloud/backport/30266/stable23
[stable23] Fix share owner not being displayed in sharing tab
2021-12-30 10:57:01 +01:00
John Molakvoæ eac352bcc3 Merge pull request #30443 from nextcloud/backport/30353/stable23 2021-12-30 08:12:01 +01:00
Carl Schwan c68304d6d5 Handle external share with invalid host
remoteIsOwnCloud might throw an exception when the host is localhost.
Handle this case instead of aborting completely. The behavior is the
same as that is done 10 lines under it

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-12-29 17:13:06 +00:00
Julius Härtl af25d91b8d Merge pull request #30390 from nextcloud/backport/28438/stable23 2021-12-29 10:52:39 +01:00
Christoph Wurst 3cf98b75e2 Add missing index for propertypath only queries against properties
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-29 09:16:28 +00:00
Simon L 394915d2e4 Merge pull request #30411 from nextcloud/backport/30364/stable23
[stable23] improve personal settings on mobile
2021-12-27 23:54:38 +01:00
szaimen 83e5cf0ed0 improve personal settings on mobile
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-27 21:14:19 +00:00
Sven Strickroth 708d98d078 Don't die with LockedException when removing/restoring multiple files from trash
fixes issue #16491

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2021-12-23 10:26:57 +00:00
John Molakvoæ ad8cf1a2b4 Merge pull request #30356 from nextcloud/backport/30305/stable23 2021-12-21 11:17:06 +01:00
Joas Schilling b947bf3765 Merge pull request #30026 from nextcloud/backport/30013/stable23
[stable23] Don't query the bruteforce attempts when we just deleted them
2021-12-21 09:38:20 +01:00
Daniel Calviño Sánchez bcc54d06a1 Fix persistent tooltip in the "new folder" input of the file picker
When a new folder is tried to be created in the file picker dialog a
tooltip is shown on the input if the folder name exists already.
However, this tooltip was not cleared, so it was still shown even if the
name was fixed, the folder was created and then the "New folder" input
was shown again.

Now the tooltip is cleared as soon as the input changes, as keeping it
shown in that case did not provide any benefit either (and it is
consistent with how the "new folder" input works in the Files app view).

The input is also cleared whenever the menu that shows the input is
opened again, as otherwise the tooltip would be still shown if the menu
was closed and opened again without changing the input (and the menu
could be opened again after changing to another directory where the new
folder name is no longer duplicated).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-21 07:36:36 +00:00
Louis d645869f74 Merge pull request #30344 from nextcloud/backport/30322/stable23
[stable23] fix overlapping in the help settings section
2021-12-20 11:32:02 +01:00
Côme Chilliet e0c6673884 Merge pull request #29965 from nextcloud/backport/29470/stable23
[stable23] Avoid use of iconv to get rid of unicode
2021-12-20 10:54:25 +01:00
szaimen f16b00ae23 fix overlapping in the help settings section
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-12-20 09:30:36 +00:00
Arthur Schiwon bf81fa432a fix potential unwarranted memberships in nested groups from LDAP
- the issue was present only when using PHP based resolving of nested
  group members. Normally nested members are common in AD (and Samba4) and
  are resolved per LDAP_MATCHING_RULE_IN_CHAIN by default
- resolving nested members is recursive
- when the cache entry was created it happend for intermediate groups, too,
  containing members from the parent group
- the check was added to only cache the root group with its members
- a runtime cache stores intermediate ldap read results


Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-12-20 09:18:59 +00:00
Côme Chilliet 4010e58a96 [stable23] Avoid use of iconv to get rid of unicode
Using iconv for translit depends upon server configuration, locale, and
 PHP version. Using htmlentities instead to have a consistent behavior
 independent of configuration.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Co-authored-by: MichaIng <micha@dietpi.com>
2021-12-20 03:00:37 +01:00
MichaIng fd481913ef Enhance and complement OPcache setup checks
The current OPcache recommendations match the PHP defaults, but the values are much higher than required to run Nextcloud, even with a high number of installed apps. On the other hand, when other applications use the same OPcache instance, the recommended values might not be sufficient. Accurate recommendations need to take into account actual OPcache usage.

With this commit, recommendations are shown to raise the config value if more than 90% of max cache size or number of keys is used.

The checks whether the module is loaded and whether the OPcache is properly configured have been merged into a single function. This allowed to reduce the overhead of OPcache configuration checks when the module is not loaded.

A check has been added whether Nextcloud is permitted to use the OPcache API. Without this, inconsistencies during core or app upgrades may cause errors and OPcache usage cannot be determined for the new usage based checks.

OPcache usage based checks are skipped when Nextcloud is not permitted to use the API.

Signed-off-by: MichaIng <micha@dietpi.com>
2021-12-20 00:10:10 +00:00
MichaIng cdedd2df38 Merge pull request #30252 from nextcloud/backport/30193/stable23
[stable23] Fix setting up 2FA when no providers are set up but backup codes
2021-12-19 19:41:20 +01:00
MichaIng 4b8b2b4740 Merge pull request #30301 from nextcloud/backport/30119/stable23
[stable23] Use proper translation source for direct editing
2021-12-19 19:39:23 +01:00
MichaIng 2217abfa44 Merge pull request #30306 from nextcloud/backport/30281/stable23
[stable23] Ignore non-existing groups when notifying group shares
2021-12-19 19:37:21 +01:00
dependabot[bot] d9bcf061d5 Merge pull request #30325 from nextcloud/dependabot/composer/build/integration/stable23/sabre/dav-4.3.0 2021-12-18 05:34:16 +00:00
dependabot[bot] 1bea0296c0 Update sabre/dav requirement from 4.2.3 to 4.3.0 in /build/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.2.3...4.3.0)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-18 04:05:40 +00:00
Carl Schwan 2b7bee1bc3 Fix share owner not being displayed in sharing tab
This only concerns subfolder and files inside a shared folder and is
used as fallback when the OCS api returns a empty result, because it
only works on the shared folder and not the content inside of it.
This unify the tab with the folder list.

This offers a less descriptive share information but making the
OCS api returns all the details even for the subfolder would very
probably be bad for performance (since we would need to fetch the shares
for all the parent folders until we found one or are in the root folder).

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-17 13:23:23 +00:00
Vincent Petry d4e83a7988 Discard share notification for non-existing groups
Group shares might exist even after a group got deleted.

This fix catches the situation and discards the notification for the
obsolete group.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Co-authored-by: Joas Schilling <coding@schilljs.com>
2021-12-17 07:04:25 +00:00
Azul 26886d753d fix translation source in directEditing templates
The 'Empty file' string is translated in `lib` - not in `core`.

Signed-off-by: Azul <azul@riseup.net>
2021-12-16 18:23:12 +00:00
Louis 1c296cbc86 Merge pull request #30289 from nextcloud/backport/30256/stable23
[stable23] Fix ShareLink Upload UI for Folders
2021-12-16 10:58:14 +01:00
Pytal 659d10f7d5 Merge pull request #30272 from nextcloud/backport/30254/stable23 2021-12-15 17:35:19 -08:00
Christopher Ng 7479edbc1e Migrate profile_config id column to bigint
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-12-15 19:30:15 +00:00
nextcloud-command 1f1758ee3e Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-15 19:10:23 +00:00
Jonas Rittershofer c39c82a6bd Fix ShareLink Upload UI for Folders
Do not show the Upload-Option if it is not allowed to check.

Signed-off-by: Jonas Rittershofer <jotoeri@users.noreply.github.com>
2021-12-15 19:51:41 +01:00
Christopher Ng c4149aa8ed Use bigint for autoincremented column
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-12-14 21:34:24 +00:00
Christoph Wurst 9e9b448998 Merge pull request #30267 from nextcloud/backport/30048/stable23
[stable23] Carefully filter out non matching time ranges for CalDAV search
2021-12-14 16:08:30 +01:00
Christoph Wurst 593b4e53b3 Carefully filter out non matching time ranges for CalDAV search
When we search for CalDAV objects in the DB we take the first and last
occurence into account. For recurring events that is when they take
place the very first time and the very last time. Searching in a more
specific time range will still match this condition, because the
recurring event starts before the end of the requested range but ends
after the start of the requested range.

Sabre has filters for this. If we apply them on all seach objects of a
search with a time range, then only the recurring events actually taking
place at the time of the requested time range will be returned.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-14 13:52:56 +00:00
Côme Chilliet 5282fcec05 Merge pull request #30238 from nextcloud/backport/29523/stable23
Support LDAP dn longer than 255 characters
2021-12-14 13:15:23 +01:00
Christoph Wurst e4011bc3aa Fix setting up 2FA when no providers are set up but backup codes
2FA set up is allowed when only backup codes are set up but no other
provider and no provider is failing.

This patch syncs up the login controller check with the challenge
controller check 10 lines above.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-13 15:59:27 +00:00
MichaIng a31ee8d9f3 Merge pull request #30236 from nextcloud/backport/30200/stable23
[stable23] Don't check the configvalue for lastLogin which is never null
2021-12-13 15:20:40 +01:00
MichaIng 66e464a407 Merge pull request #30245 from nextcloud/backport/30156/stable23
[stable23] Only wildcard search if enumeration is allowed
2021-12-13 15:19:36 +01:00
Joas Schilling dd2c1c6fb8 Make psalm more happy
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 13:49:15 +01:00
Joas Schilling 39d6624ab3 Fix docs to make Psalm happier
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 13:49:09 +01:00
Joas Schilling 955c0d4885 Convert strict_search to wildcard property and add psalm docs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 13:49:03 +01:00
Joas Schilling 898c11c3b4 Limit more contact searches
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 13:48:55 +01:00
Joas Schilling daad1ce010 Only limit search in the system address book
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 13:48:47 +01:00
Joas Schilling b5d78d0b7c Only wildcard search if enumeration is allowed
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 13:48:41 +01:00
Côme Chilliet 6b107026dd Bump user_ldap version to make sure the migration runs
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:51:44 +01:00
Joas Schilling 995b45bb62 Don't check the configvalue for lastLogin which is never null
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 08:43:13 +00:00
Côme Chilliet b5b080a219 Add missing copyright headers in migration steps
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:40:38 +01:00
Côme Chilliet e7a769158d Use clearer names for variables
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:40:15 +01:00
Côme Chilliet 9e33d51c44 Add an index for directory_uuid as well
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:40:08 +01:00
Côme Chilliet fbed00bab4 Make sure that hash function returns a string
The documentation says it can return false, and even if that is highly
 unlikely for sha256, better safe than sorry.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:39:55 +01:00
Côme Chilliet 98476a9d5d Add the columns and alter the index in Version1010Date20200630192842
This is to ensure new installations do not need to go through migration
 history.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:39:45 +01:00
Côme Chilliet 2336a188df Fixes in migration step
We cannot set ldap_dn_hash column as notnull because it is empty for
 existing users before postSchemaChange is called

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:39:33 +01:00
Côme Chilliet a0db2a248c Put back length check to have a clear error
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:39:23 +01:00
Côme Chilliet 189852b549 Fixed migration step for user_ldap
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:39:12 +01:00
Joas Schilling 54007f9993 Fix variable names
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-13 09:39:04 +01:00
Côme Chilliet 514b34084a Change column names to ldap_dn and ldap_dn_hash and add migration
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:38:54 +01:00
Côme Chilliet fe3203a66e Support LDAP dns longer than 255 characters
Adds an ldap_full_dn column to store the dn, and only store a sha256
 hash in the ldap_dn which is shorter and can be indexed without
 trouble.
Migration still needs to be implemented.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-13 09:38:43 +01:00
MichaIng 86c0b22e97 Merge pull request #30214 from nextcloud/dependabot/npm_and_yarn/stable23/dompurify-2.3.4
Bump dompurify from 2.3.3 to 2.3.4
2021-12-11 21:50:21 +01:00
dependabot[bot] 2339d5d543 Bump dompurify from 2.3.3 to 2.3.4
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.3...2.3.4)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-11 16:31:23 +00:00
MichaIng 837d589cb4 Merge pull request #30215 from nextcloud/dependabot/npm_and_yarn/stable23/core-js-3.19.3
Bump core-js from 3.19.2 to 3.19.3
2021-12-11 16:04:39 +01:00
dependabot[bot] 7e2414c73a Bump core-js from 3.19.2 to 3.19.3
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.2 to 3.19.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.2...v3.19.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-11 12:59:40 +00:00
MichaIng 37b74dab89 Merge pull request #30213 from nextcloud/dependabot/composer/build/integration/stable23/sabre/dav-4.2.3
Update sabre/dav requirement from 4.2.1 to 4.2.3 in /build/integration
2021-12-11 13:50:58 +01:00
dependabot[bot] f35d000c7f Update sabre/dav requirement from 4.2.1 to 4.2.3 in /build/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.2.1...4.2.3)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 07:04:10 +00:00
dependabot[bot] fcb2bf130d Merge pull request #30212 from nextcloud/dependabot/composer/build/integration/stable23/guzzlehttp/guzzle-6.5.5 2021-12-11 07:02:56 +00:00
dependabot[bot] 4a1c576325 Update guzzlehttp/guzzle requirement in /build/integration
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/6.5.5/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.2...6.5.5)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 03:35:25 +00:00
Pytal 7d80036bed Merge pull request #30190 from nextcloud/backport/30157/stable23 2021-12-10 17:30:02 -08:00
Vincent Petry de8b0275a0 Merge pull request #30187 from nextcloud/backport/30164/stable23
[stable23] Use correct icon for dir-external-root
2021-12-10 12:02:36 +01:00
John Molakvoæ 32eed324a1 Fix first day locale
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-10 10:35:05 +00:00
John Molakvoæ ac5385101c Properly format sharing datepicker locale
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2021-12-10 09:47:35 +00:00
Vincent Petry 1a032ce6f1 Use correct icon for dir-external-root
When an external storage mount is shared with circles, it triggers the
share icon state to be rerendered. The picking of the mime type icon
would use the regular file icon because there is no actual icon for
"dir-external-root" that is shared.

This fixes the logic to use the "folder-external" icon in such
scenarios.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-12-10 09:29:32 +00:00
Vincent Petry 1fc27e771c Merge pull request #30180 from nextcloud/backport/30160/stable23
[stable23] Check resource before closing in encryption wrapper
2021-12-10 08:55:50 +01:00
John Molakvoæ 497fab8fe6 Merge pull request #30175 from nextcloud/backport/30168/stable23 2021-12-10 08:46:52 +01:00
John Molakvoæ 8e1b2cd59a Merge pull request #30176 from nextcloud/backport/29996/stable23 2021-12-10 07:57:42 +01:00
Vincent Petry 1291abc130 Check resource before closing in encryption wrapper
In case of error there is no guarantee that $source or $target is set or
is a resource when handling an error.

Without this fix, there's a risk that fclose will fail and the actual
exception will not be thrown, making it impossible to find out about the
root cause.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-12-10 00:03:08 +00:00
Pytal 9135b177be Update core/Migrations/Version23000Date20211203110726.php
Co-authored-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-12-09 23:07:30 +00:00
Christopher Ng 3600b84e6e Fix relation "user_id" already exists migration error
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-12-09 23:07:30 +00:00
John Molakvoæ 72422ccb10 Allow to delete non-migrated previews instead of moving them
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2021-12-09 22:59:38 +00:00
John Molakvoæ 28992a403e Merge pull request #30144 from nextcloud/backport/29968/stable23 2021-12-09 10:33:20 +01:00
Daniel Calviño Sánchez 30733d020d Remove no longer needed CSS rules
Since Nextcloud 22 the "#new-user" rules had no effect, as the DOM
structure changed to show a dialog rather than adding a row on top of
the list when adding new users.

Similarly, the z-index was no longer needed, as there will be no
"new-user" row that could overlap. Moreover, the z-index was set even
higher (100) in another rule still active.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-12-09 06:58:07 +01:00
Daniel Calviño Sánchez 7b53eb4066 Fix input for groups validation in new user form
The hidden input used for form validation was not actually hidden since
Nextcloud 22, as the DOM structure changed to show a dialog rather than
adding a row on top of the list when adding new users, so the CSS rules
no longer matched.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-12-09 06:58:07 +01:00
MichaIng c79b3be1aa Merge pull request #30151 from nextcloud/backport/30141/stable23
[stable23] Reload page instead of file list when getting 401 authentification error
2021-12-08 14:32:00 +01:00
Carl Schwan 9a81b75b38 Reload page on 401 since there is an authentification problem
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-12-08 11:39:57 +00:00
Carl Schwan ad44722397 Stop reloading file list when getting 401 error on root dir
When reaching the root dir, instead of reloading the file list we reload
the page completely. This trigger a redirection to the login page automatically
with the correct ?redirect_url= in thr url.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-12-08 11:39:57 +00:00
Julius Härtl c311f43c1f Merge pull request #30136 from nextcloud/backport/30134/stable23 2021-12-08 09:07:24 +01:00
Julien Veyssier fb0e22a3c4 do not trigger events when setting active view in gotoplugin
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-12-07 14:38:22 +00:00
John Molakvoæ e0b61fb449 Merge pull request #30132 from nextcloud/backport/30114/stable23 2021-12-07 13:55:54 +01:00
John Molakvoæ 36bacaa7af Prevent writing invalid mtime
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2021-12-07 11:16:29 +00:00
John Molakvoæ 778d1a1793 Merge pull request #30009 from nextcloud/backport/29905/stable23 2021-12-07 09:27:50 +01:00
marco 07931d9bb6 Only add the vue exeption to actual button elements
Signed-off-by: marco <marcoambrosini@pm.me>
2021-12-07 01:13:21 +01:00
Côme Chilliet c630c8ccec Merge pull request #30115 from nextcloud/backport/30040/stable23
[stable23] Avoid calling image* methods on boolean
2021-12-06 16:58:23 +01:00
Louis b2967923d2 Merge pull request #30106 from nextcloud/backport/30104/stable23
[stable23] Strengthify is now in the Nextcloud org
2021-12-06 15:58:28 +01:00
Côme Chilliet f889b251b1 Avoid assignment in if clause
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-06 14:22:05 +00:00
Côme Chilliet 3fe20bfbbb Fix typing problems in OC_Image
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-06 14:22:05 +00:00
Côme Chilliet 11b51ddbbe Avoid calling image* methods on boolean
This avoids fatal errors on PHP>=8, and warnings on older versions.
Log should also be clearer.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-06 14:22:05 +00:00
Christoph Wurst f88f57612b Merge pull request #30025 from nextcloud/backport/30012/stable23
[stable23] Only check the twofactor state once per request
2021-12-06 14:49:45 +01:00
Joas Schilling 7b88878895 Strengthify is now in the Nextcloud org
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-06 08:59:57 +00:00
dependabot[bot] af29d0b63e Merge pull request #30083 from nextcloud/dependabot/composer/build/integration/stable23/sabre/dav-4.2.1 2021-12-05 16:17:46 +00:00
dependabot[bot] 8fc41f6cf1 Update sabre/dav requirement from 4.2.0 to 4.2.1 in /build/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.2.0...4.2.1)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-05 16:43:43 +01:00
dependabot[bot] 6aa3677eaa Merge pull request #30088 from nextcloud/dependabot/npm_and_yarn/stable23/core-js-3.19.2 2021-12-04 13:25:01 +00:00
dependabot[bot] 99aca2f57c Bump core-js from 3.19.1 to 3.19.2
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.1 to 3.19.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.1...v3.19.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-04 12:49:10 +00:00
blizzz 76fa257789 Merge pull request #30036 from nextcloud/backport/30011/stable23
[stable23] Allow to log queries to db, ldap and redis
2021-12-03 11:53:59 +01:00
MichaIng e20b3de09e Merge pull request #30041 from nextcloud/backport/30032/stable23
[stable23] Add an index for selecting the next job
2021-12-03 03:02:13 +01:00
MichaIng d622dc63b9 Merge pull request #30053 from nextcloud/backport/30046/stable23
[stable23] Close open cursor in the caldav back-end
2021-12-03 02:56:21 +01:00
Joas Schilling 617d742aa9 Merge pull request #30062 from nextcloud/backport/30024/stable23
[stable23] list.php files are only invoked via ViewController and APIController
2021-12-03 00:02:44 +01:00
Joas Schilling d6bad0c0ba list.php files are only invoked via ViewController and APIController
Both of them actually check that the user is logged in before
and also the list.php files themselves would break with
getUserSession()->getUser()->getUID() which they contain.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-02 21:32:25 +00:00
Pytal 395e90c645 Merge pull request #30058 from nextcloud/backport/29735/stable23 2021-12-02 12:20:53 -08:00
Robin Appelman cc57b2b68e fix tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-02 17:47:06 +00:00
Robin Appelman 349555478f code checker fixes for instanceOfStorage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-02 17:47:06 +00:00
Robin Appelman c76c2d7581 stop background scan early if a users still has unscanned files after background scan
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-02 17:47:05 +00:00
Robin Appelman 375946b148 find users for background scan one by one
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-02 17:47:05 +00:00
Robin Appelman c9db02a921 background scan the source storage when a background scan on a storage jail is triggered
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-02 17:47:05 +00:00
Robin Appelman 4433732f22 teach psalm about Storage::instanceOfStorage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-02 17:47:05 +00:00
Joas Schilling 62bff517dc Merge pull request #30037 from nextcloud/backport/30028/stable23
[stable23] Fix log_query config flag
2021-12-02 17:14:11 +01:00
Christoph Wurst 2de7273905 Close open cursor in the caldav back-end
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-02 15:34:20 +00:00
Joas Schilling 88b6a42699 Add an index for selecting the next job
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-02 10:26:43 +00:00
Joas Schilling a361e69d5e Fix log_query config flag
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-02 09:35:52 +00:00
Joas Schilling 5e8fa37852 Allow to log DB, redis and LDAP requests into files
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-02 09:30:44 +00:00
MichaIng e3ee81de05 Merge pull request #30021 from nextcloud/backport/30018/stable23
[stable23] Fix collaborative tags styles
2021-12-02 02:40:45 +01:00
Pytal 2ccefec021 Merge pull request #30014 from nextcloud/backport/29995/stable23 2021-12-01 15:48:03 -08:00
Joas Schilling 761b5ac91e Don't query the bruteforce attempts when we just deleted them
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-01 20:29:47 +00:00
Joas Schilling febca701ee Only check the twofactor state once per request
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-01 20:29:28 +00:00
Christopher Ng 7fd7f73ab0 Fix profile actions menu
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-12-01 19:57:22 +00:00
Christopher Ng e0ffaaae51 Fix collaborative tags styles
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-12-01 19:51:01 +00:00
Pytal b67c6d9730 Merge pull request #29975 from nextcloud/backport/29872/stable23 2021-12-01 10:17:20 -08:00
Christoph Wurst b2b1feba0f Merge pull request #30008 from nextcloud/backport/30001/stable23
[stable23] Cast orphan subscription id to int
2021-12-01 19:07:18 +01:00
Christoph Wurst ea450f1161 Cast orphan subscription id to int
DB columns are of type int by default, so they need to be casted.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-01 13:47:40 +00:00
Christopher Ng 510249e258 Set profile page title
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-30 17:02:52 +00:00
blizzz 4caad84389 Merge pull request #29967 from nextcloud/backport/29917/stable23
[stable23] Fix source of translations
2021-11-30 14:55:23 +01:00
Christoph Wurst c7d5f98768 Merge pull request #29977 from nextcloud/backport/29974/stable23
[stable23] Let repair step query exceptions bubble up
2021-11-30 14:34:17 +01:00
Christoph Wurst 3b2122fc11 Include previous execption for repair steps that don't exist
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-30 11:56:53 +00:00
Christoph Wurst 3d58f6bd2b Let repair step query exceptions bubble up
And hide the type error caused by a constructor call with missing
arguments.

`new $repairStep();` only works for the rare case that no arguments are
required. Anything else will throw. Then we previously hid the trace of
the more important query exception.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-30 11:56:53 +00:00
Louis 17a659e277 Merge pull request #29970 from nextcloud/backport/29870/stable23
[stable23] Prevent your own status from replacing another user's status on profile
2021-11-30 10:03:04 +01:00
Christopher Ng 259dc80fca Prevent your own status from replacing another user's status
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-29 20:49:20 +00:00
Christoph Wurst 7b142f74a9 Merge pull request #29961 from nextcloud/backport/29951/stable23
[stable23] Interpolate the log message also for logged exceptions
2021-11-29 20:04:25 +01:00
Christopher Ng 3256de61a1 Fix source of translations
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-11-29 18:51:33 +00:00
Christoph Wurst 96aaa5dfa2 Interpolate the log message also for logged exceptions
According to PSR-3 the log message can have placeholders that are
replaced from the context object. Our logger implementation did that for
all PSR-3 logger methods. The only exception was our custom `logException`.

Since PsrLoggerAdapter calls logException when an exception key is
present in the context object, log messages were no longer interpolated.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-29 15:48:43 +00:00
dependabot[bot] b8ec50e816 Merge pull request #29937 from nextcloud/dependabot/npm_and_yarn/stable23/testing-library/jest-dom-5.15.1 2021-11-27 14:59:15 +00:00
dependabot[bot] 6ed5da993b Bump @testing-library/jest-dom from 5.15.0 to 5.15.1
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.15.0 to 5.15.1.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.15.0...v5.15.1)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-27 14:13:27 +00:00
dependabot[bot] 240e050360 Merge pull request #29936 from nextcloud/dependabot/npm_and_yarn/stable23/sass-1.43.5 2021-11-27 06:15:07 +00:00
dependabot[bot] 317e4242e6 Bump sass from 1.43.4 to 1.43.5
Bumps [sass](https://github.com/sass/dart-sass) from 1.43.4 to 1.43.5.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.43.4...1.43.5)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-27 03:17:43 +00:00
blizzz 0619207f13 Merge pull request #29925 from nextcloud/release/23.0.0
23.0.0
2021-11-26 21:49:32 +01:00
blizzz 842e22f882 Merge pull request #29928 from nextcloud/backport/29926/stable23
[stable23] obey  accounts_data column length when inserting and searching
2021-11-26 20:58:36 +01:00
Arthur Schiwon 09014ec6d1 Obey col length of 255 to insert and search in accounts_data
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-11-26 17:27:16 +00:00
Arthur Schiwon c853206e8a add method to shorten a string to given byte size to Utils
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-11-26 17:27:16 +00:00
Pytal df961fa2f3 Merge pull request #29918 from nextcloud/backport/29871/stable23 2021-11-26 09:16:22 -08:00
John Molakvoæ (skjnldsv) d5f6547fb8 Nextcloud Hub II
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-11-26 17:17:03 +01:00
Christopher Ng cb74a9af7d Set number of visibility dropdown rows dynamically
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-26 14:59:24 +00:00
MichaIng 1441f46bbe Merge pull request #29848 from nextcloud/backport/29836/stable23
[stable23] Make sure mapping cache is cleared when deleting a user
2021-11-26 15:46:16 +01:00
John Molakvoæ (skjnldsv) 614cc82d48 23.0.0
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-11-26 15:37:06 +01:00
Côme Chilliet 2b58973533 Test cache invalidation for AbstractMapping in test suite
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-11-26 14:19:14 +01:00
Côme Chilliet e983376e58 Make sure mapping cache is cleared when deleting a user
This avoids phantom remnants staying after user deletion

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-11-26 14:19:14 +01:00
Carl Schwan 9275a9f28a Merge pull request #29913 from nextcloud/backport/29906/stable23
[stable23] Use strict comparison to detect usage of redis cluster
2021-11-26 11:16:15 +01:00
Carl Schwan ab9282fe26 Merge pull request #29916 from nextcloud/backport/29893/stable23
[stable23] Improve accessibility for personal info settings and profile
2021-11-26 11:15:37 +01:00
Christopher Ng b5e314adf4 Improve accessibility
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-26 00:52:38 +00:00
Pytal d03df09879 Merge pull request #29909 from nextcloud/backport/29891/stable23 2021-11-25 16:10:58 -08:00
Joas Schilling 11722dd537 Merge pull request #29908 from nextcloud/backport/29894/stable23
[stable23] Fix inactive profile parameters being displayed in the Profile visibility section
2021-11-25 22:56:13 +01:00
Louis Chemineau 3f0cff6667 Use strict comparison to detect usage of redis cluster
Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-11-25 18:57:35 +00:00
Christopher Ng be529b46d9 Adjust margin of status on profile
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-25 16:32:11 +00:00
Christopher Ng 608cf4a592 Fix inactive profile parameters being returned
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-11-25 16:28:34 +00:00
MichaIng e3de5140b6 Merge pull request #29800 from nextcloud/backport/29632/stable23
[stable23] fix imagecreatetruecolor() error
2021-11-25 17:13:34 +01:00
Joas Schilling b1d4efd9f2 Merge pull request #29898 from nextcloud/backport/29895/stable23
[stable23] Check for invalid characters before trimming
2021-11-25 14:14:45 +01:00
Joas Schilling 7f7f21a7b9 Correctly set the response after a ClientException as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-25 11:49:55 +00:00
Joas Schilling e6d35b6655 Add an integration test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-25 11:49:54 +00:00
Joas Schilling 4736bba7f6 Check for invalid characters before trimming
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-25 11:49:54 +00:00
Pytal 11be6bf4ec Merge pull request #29877 from nextcloud/backport/29869/stable23 2021-11-24 11:07:38 -08:00
szaimen 43e032dd1b Merge pull request #29882 from nextcloud/backport/29826/stable23
[stable23] Personalsettings - fix marginLeft as it breaks the layout
2021-11-24 17:41:44 +01:00
szaimen 48e8f5a536 Personalsettings - remove marginLeft as it breaks the layout
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-24 13:47:34 +00:00
Vincent Petry 29166b6c61 Merge pull request #29876 from nextcloud/backport/29864/stable23
[stable23] Allow to fetch the creation time of folders
2021-11-24 12:45:43 +01:00
Christopher Ng 3a68a36ee4 Hide user status from public
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-11-24 10:33:33 +00:00
Julius Härtl 3d8aa4e038 Allow to fetch the creation time of folders
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-24 10:23:30 +00:00
Pytal 21a1b0cace Merge pull request #29858 from nextcloud/backport/29791/stable23 2021-11-23 16:19:19 -08:00
szaimen d0385114e1 Merge pull request #29847 from nextcloud/backport/29833/stable23
[stable23] make profile page usable on mobile
2021-11-23 17:33:34 +01:00
szaimen ce69760500 fix imagecreatetruecolor() error
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-11-23 14:26:26 +00:00
szaimen 7b4c6fe066 make profile page usable on mobile
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-23 14:18:47 +00:00
Carl Schwan 17db07c50a Fix multiple bugs with user status
* Fix editing the status while on a call, don't send a bogus request
* Clean backup user status when setting up a new status manually
* A bit more type hinting

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-23 13:39:27 +00:00
Louis 9b0b0fc8d3 Merge pull request #29844 from nextcloud/backport/29567/stable23
[stable23] Improve sorting of profile visibility dropdowns
2021-11-23 14:19:42 +01:00
Louis 503be0ef9f Merge pull request #29845 from nextcloud/backport/29544/stable23
[stable23] Fix wording on profile page
2021-11-23 14:17:43 +01:00
Vincent Petry a08b3b0f00 Merge pull request #29849 from nextcloud/backport/29835/stable23
[stable23] Fix getting subnet of ipv4 mapped ipv6 addresses
2021-11-23 14:03:01 +01:00
Vincent Petry 6ffd6b2dee Type hint in IpAddress
Signed-off-by: Vincent Petry <vincent@nextcloud.com>

Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2021-11-23 10:23:02 +00:00
Vincent Petry e7890cc401 Improve normalizer detecting IPv4 inside of IPv6
The subnet for an IPv4 address inside of IPv6 is now returned in its
IPv4 form.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-23 10:23:02 +00:00
Vincent Petry e98ee218be Fix getting subnet of ipv4 mapped ipv6 addresses
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-23 10:23:00 +00:00
Christopher Ng 185da2f25f Fix wording on profile page
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-23 01:35:53 +00:00
Christopher Ng 256437d120 Improve sorting
- Extract sort logic into a separate function
- Sort non-core parameters with localeCompare

Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-23 01:35:52 +00:00
dependabot[bot] a33e0a6580 Merge pull request #29815 from nextcloud/dependabot/composer/build/integration/stable23/sabre/dav-4.2.0 2021-11-22 20:43:40 +00:00
dependabot[bot] 2aeb134993 Update sabre/dav requirement from 4.1.5 to 4.2.0 in /build/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.1.5...4.2.0)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 19:58:42 +00:00
Louis 83e6007e34 Merge pull request #29813 from nextcloud/dependabot/npm_and_yarn/stable23/camelcase-6.2.1
Bump camelcase from 6.2.0 to 6.2.1
2021-11-22 11:06:23 +01:00
Joas Schilling 78db627d88 Merge pull request #29828 from nextcloud/backport/29708/stable23
[stable23] Do not print verbose info about app updates if there are none
2021-11-22 09:24:15 +01:00
Christoph Wurst 0afe44c449 Do not print verbose info about app updates if there are none
This is cosmetical but if you have a large number of apps installed then
you'll see a wall of text during the server and app upgrade when it
tries to update each app via the app store. In may cases nothing will be
updated. For those boring cases we can hide the verbose info, but show
when occ is run with -v. Any actual update will still print a few lines.
Those are the important ones for the admin.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-22 02:24:59 +00:00
MichaIng 8fe072e798 Merge pull request #29793 from nextcloud/backport/29605/stable23
[stable23] Normalize file name before existence check in scanner
2021-11-21 20:02:09 +01:00
MichaIng 6debeae0cf Merge pull request #29797 from nextcloud/backport/29788/stable23
[stable23] Fix doc link in sharing settings
2021-11-21 19:58:52 +01:00
dependabot[bot] ba2145ae57 Bump camelcase from 6.2.0 to 6.2.1
Bumps [camelcase](https://github.com/sindresorhus/camelcase) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/sindresorhus/camelcase/releases)
- [Commits](https://github.com/sindresorhus/camelcase/compare/v6.2.0...v6.2.1)

---
updated-dependencies:
- dependency-name: camelcase
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-20 03:32:16 +00:00
acsfer 913e64c81a [stable23] Check for disk_free_space
Backport of https://github.com/nextcloud/server/pull/29758
2021-11-19 20:03:34 +01:00
Vincent Petry 38e7d94006 Fix doc link in sharing settings
The doc link "i" icon was on the wrong line.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 15:54:02 +00:00
szaimen 6559144834 Merge pull request #29789 from nextcloud/backport/29784/stable23
[stable23] App summary is optional
2021-11-19 16:24:45 +01:00
Vincent Petry f0661de4e5 Normalize directory entries in Encoding wrapper
Directory entry file names are now normalized in getMetaData(),
getDirectoryContents() and opendir().

This makes the scanner work properly as it assumes pre-normalized names.

In case the names were not normalized, the scanner will now skip the
entries and display a warning when applicable.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 14:51:38 +00:00
Vincent Petry 516b10de33 Move storage encoding compatibility warning logic
The encoding check for file names is now happening the Scanner, and an
event will be emitted only if the storage doesn't contain the encoding
compatibility wrapper.

The event is listened to by the occ scan command to be able to display a
warning in case of file name mismatches when they have NFD encoding.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 14:51:38 +00:00
Vincent Petry 106950d493 Normalize file name before existence check in scanner
The scanner would not find a NFD-encoded file name in an
existing file list that is normalized.

This normalizes the file name before scanning.

Fixes issues where scanning repeatedly would make NFD files flicker in
and out of existence in the file cache.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 14:51:38 +00:00
Joas Schilling 098cf1f9aa App summary is optional
Fixing:
Error: Undefined index: summary at /var/www/html/apps/theming/lib/Controller/ThemingController.php#392

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-19 14:08:55 +00:00
blizzz d9e25f5f32 Merge pull request #29766 from nextcloud/version/23rc3
23 RC 3
2021-11-18 15:28:12 +01:00
blizzz 6c95b46948 Merge pull request #29760 from nextcloud/backport/29752/stable23
[stable23] Explicitly allow some routes without 2FA
2021-11-18 15:27:22 +01:00
Arthur Schiwon 6c7bc8ac98 23 RC 3
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-11-18 13:58:39 +01:00
Christoph Wurst ea38a798f3 Explicitly allow some routes without 2FA
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-18 13:03:39 +01:00
Carl Schwan 7be83b23f4 Merge pull request #29749 from nextcloud/backport/29747/stable23
[stable23] Allow to serve static WebAssembly and TensorFlow Lite files
2021-11-17 20:55:12 +01:00
rakekniven 73b8a016a4 Merge pull request #29746 from nextcloud/backport/29734/stable23
[stable23] Fixed grammar
2021-11-17 16:56:05 +01:00
Daniel Calviño Sánchez 8ff4870026 Allow to serve static WebAssembly and TensorFlow Lite files
Since Talk 13 (and thus Nextcloud 23) WebAssembly (.wasm) and TensorFlow
Lite (.tflite) files need to be loaded from the web server to provide
certain features (like the background blur in the WebUI).

Those files can be treated in a similar way to other static resources,
and there should not be any problem caching or compressing them.
However, as compressed TensorFlow Lite files are only ~12% smaller,
the compression directive depends on the MIME type and there is no
standard MIME type for TensorFlow Lite files it is not worth to compress
them.

Moreover, no directives to compress WebAssembly files were added either,
as it seems that they would override any other compression directives
set in the default server configuration; for reference it could be done
with something like:
<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/wasm
  </IfModule>
</IfModule>

Depending on the setup "application/wasm" may not be associated with
".wasm" files, so the directive was added just in case, as otherwise
browsers log a warning.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-11-17 14:11:52 +00:00
Vincent Petry 016482e50c Merge pull request #29672 from nextcloud/backport/29663/stable23
[stable23] Fix loading all principal calendars in the dav app calendar provider
2021-11-17 13:14:47 +01:00
Vincent Petry 2fb31dffc6 Merge pull request #29662 from nextcloud/enhancement/calendar-search-properties-api-stable23
[stable23] Document allowed property names for calendar property searches
2021-11-17 13:14:05 +01:00
rakekniven eecfa3f105 Fixed grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2021-11-17 11:08:09 +00:00
Vincent Petry b8318c2363 Merge pull request #29737 from nextcloud/backport/29695/stable23
[stable23] Fix missing setlocale with php 8
2021-11-17 08:10:45 +01:00
Naoto Kobayashi acece8f4ba OC_Util::isNonUTF8Locale: fix lint error
Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2021-11-16 17:52:18 +00:00
Naoto Kobayashi 5fc031c91f OC_Util::isSetLocaleWorking: fix typo
Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2021-11-16 17:52:18 +00:00
Naoto Kobayashi d27be604d4 OC_Util: Add fallbacks to check if current locale is UTF8
Using escapeshellcmd to get current locale causes error
if the function is disabled.

Add fallbacks to prevent the error.

Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2021-11-16 17:52:18 +00:00
Naoto Kobayashi df52393d31 Add check whether escapeshellcmd behaves the same as basename
Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2021-11-16 17:52:18 +00:00
Naoto Kobayashi 3b83976c98 Check whether setlocale works only after setlocale
Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2021-11-16 17:52:18 +00:00
Naoto Kobayashi 7e80182e75 Fix missing setlocale with php 8
When php version = 8, basename('§') does not bug even if LC_ALL is non-UTF-8 locale.
This cause OC_Util::isSetLocaleWorking() to skip setlocale("C.UTF-8").

Fix it by using escapeshellcmd instead of basename.

Signed-off-by: Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
2021-11-16 17:52:17 +00:00
MichaIng a80d49a0e7 Merge pull request #29728 from nextcloud/backport/29683/stable23
[stable23] Fix core depending on theming app
2021-11-16 13:24:26 +01:00
MichaIng 077c45f173 Correct comment about OC_Defaults being used
Signed-off-by: MichaIng <micha@dietpi.com>
2021-11-16 10:36:05 +00:00
Carl Schwan b8da11cd62 Fix core depending on theming app
This was introduced in https://github.com/nextcloud/server/commit/309354852f12ae88d5eef05d311d6ebcba8ee762
to fix a bug but I can't reproduce the bug after reverting this change.

Ideally we would need to create an interface in OCP and cleanup OC_Defaults
instead of depending on OC_Defaults.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-16 10:36:04 +00:00
John Molakvoæ 0233cd4edb Merge pull request #29716 from nextcloud/bump-doctrine-dbal-23 2021-11-15 19:55:18 +01:00
Joas Schilling ebfb94fbc0 Bump doctrine/dbal to 3.1.4
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-15 18:55:23 +01:00
Joas Schilling 8b0bf9eadf Allow NULL as well for limit, not integer only
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-15 18:53:42 +01:00
szaimen 1e1ef32cca Merge pull request #29705 from nextcloud/backport/29679/stable23
[stable23] don't flash external storage mountpoints during the status check
2021-11-15 16:33:21 +01:00
szaimen 3bd26b630e don't flash external storage mountpoints during the status check
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-11-15 12:12:37 +00:00
Louis 9eac3099d3 Merge pull request #29659 from nextcloud/dependabot/npm_and_yarn/stable23/bootstrap-4.6.1
Bump bootstrap from 4.6.0 to 4.6.1
2021-11-15 11:53:29 +01:00
Louis 28376490bf Merge pull request #29653 from nextcloud/dependabot/npm_and_yarn/stable23/moment-timezone-0.5.34
Bump moment-timezone from 0.5.33 to 0.5.34
2021-11-15 11:46:53 +01:00
Louis f37d550f8a Merge pull request #29649 from nextcloud/dependabot/composer/build/integration/stable23/sabre/dav-4.1.5
Update sabre/dav requirement from 3.2.3 to 4.1.5 in /build/integration
2021-11-15 11:34:00 +01:00
Louis ca2e024fb0 Merge pull request #29654 from nextcloud/dependabot/npm_and_yarn/stable23/marked-3.0.8
Bump marked from 3.0.7 to 3.0.8
2021-11-15 11:30:03 +01:00
John Molakvoæ b1c32d32b1 Merge pull request #29701 from nextcloud/fix-branch-selection-in-stable23 2021-11-15 10:13:41 +01:00
Christoph Wurst bf5c89bbdd Merge pull request #29671 from nextcloud/backport/29660/stable23
[stable23] Fix initialization of calendar search URIs
2021-11-15 09:52:24 +01:00
Joas Schilling 49486de8cd Fix branch selection in stable23
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-15 06:58:05 +01:00
dependabot[bot] 59cb10c59a Bump bootstrap from 4.6.0 to 4.6.1
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.6.0...v4.6.1)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-13 21:48:51 +00:00
dependabot[bot] 025951ebf4 Update sabre/dav requirement from 3.2.3 to 4.1.5 in /build/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/3.2.3...4.1.5)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-13 18:09:40 +00:00
dependabot[bot] 7a5dcf7e3e Bump moment-timezone from 0.5.33 to 0.5.34
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.33 to 0.5.34.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.33...0.5.34)

---
updated-dependencies:
- dependency-name: moment-timezone
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-13 18:09:39 +00:00
MichaIng 6db690c3c7 Merge pull request #29651 from nextcloud/dependabot/composer/build/integration/stable23/behat/behat-approx-3.10.0
Update behat/behat requirement from ~3.9.0 to ~3.10.0 in /build/integration
2021-11-13 19:08:47 +01:00
dependabot[bot] fb214c25c6 Bump marked from 3.0.7 to 3.0.8
Bumps [marked](https://github.com/markedjs/marked) from 3.0.7 to 3.0.8.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v3.0.7...v3.0.8)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-11-13 16:49:45 +00:00
blizzz 84397254b6 Merge pull request #29686 from nextcloud/version/23rc2
23.0.0 RC2
2021-11-12 16:42:13 +01:00
blizzz 22641dfd3f Merge pull request #29684 from nextcloud/backport/29682/stable23
[stable23] Fix missing token update
2021-11-12 16:41:48 +01:00
Arthur Schiwon cbfb7811a5 udpdate CA bundle
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-11-12 16:30:14 +01:00
Arthur Schiwon d67f540d15 23.0.0 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-11-12 15:58:14 +01:00
Joas Schilling f0045bf139 Fix unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-12 14:49:38 +00:00
Joas Schilling 21f7134fe0 Fix missing token update
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-12 14:49:38 +00:00
Joas Schilling 35546c034d Merge pull request #29677 from nextcloud/bugfix/noid/fix-video-verification-tests
Fix video verification tests
2021-11-12 12:19:36 +01:00
Joas Schilling 9967198e5a Fix video verification tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-11 16:47:12 +01:00
John Molakvoæ 36f1714f1d Merge pull request #29666 from nextcloud/backport/29664/stable23 2021-11-11 16:44:31 +01:00
Christoph Wurst dab21ab707 Fix loading all principal calendars in the dav app calendar provider
If we load all calendar infos of a principal then we get back an array
and not a single calendar info. This was handled incorrectly and an
array of calendar infos were passed to the calendar implementation,
resulting in interesting bugs.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-11 15:12:51 +00:00
Christoph Wurst ddf6b82112 Fix initialization of calendar search URIs
They are an empty array by default. If you don't initialize then
accessing them via the setter will throw a type error.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-11 15:07:36 +00:00
Joas Schilling 32005be6b2 Fix updating with apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-11 13:39:22 +00:00
Christoph Wurst 0b72abb7a5 Document allowed property names for calendar property searches
For API users it looked like any properties could be searched. But it
turned out to be a hand picked list of properties that we index and then
use for the search. To prevent application errors where special props
are not found, I suggest we document the allowed values.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-11 11:02:48 +01:00
dependabot[bot] 2e14d28262 Update behat/behat requirement in /build/integration
Updates the requirements on [behat/behat](https://github.com/Behat/Behat) to permit the latest version.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-11 09:38:46 +00:00
8637 changed files with 260630 additions and 377657 deletions
+15
View File
@@ -0,0 +1,15 @@
codecov:
branch: stable23
ci:
- drone.nextcloud.com
- !scrutinizer-ci.com
coverage:
precision: 2
round: down
range: "70...100"
status:
project: off
patch: off
comment: off
+28 -67
View File
@@ -1,56 +1,34 @@
FROM ubuntu:jammy
FROM ubuntu:focal
ARG DEBIAN_FRONTEND=noninteractive
# PHP
RUN apt-get update -y && \
apt install -y apache2 vim software-properties-common sudo nano gnupg2
RUN apt-get update -y
RUN apt-get install --no-install-recommends -y \
php8.1 \
php8.1-common \
php8.1-gd \
php8.1-zip \
php8.1-curl \
php8.1-xml \
php8.1-xmlrpc \
php8.1-mbstring \
php8.1-sqlite \
php8.1-xdebug \
php8.1-pgsql \
php8.1-intl \
php8.1-imagick \
php8.1-gmp \
php8.1-apcu \
php8.1-bcmath \
php8.1-redis \
php8.1-soap \
php8.1-imap \
php8.1-opcache \
php8.1-cli \
php8.1-dev \
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 \
unzip
nodejs \
npm
# Composer
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
curl -sS https://composer.github.io/installer.sig -o /tmp/composer-setup.sig && \
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') !== trim(file_get_contents('/tmp/composer-setup.sig'))) { echo 'Composer installation failed, invalid hash'; exit(1); }" && \
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
rm /tmp/composer-setup.php /tmp/composer-setup.sig
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.1/cli/conf.d/20-apcu.ini
# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.1/apache2/conf.d/20-xdebug.ini
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 \
@@ -58,29 +36,12 @@ RUN apt-get -y install \
ca-certificates \
curl \
gnupg-agent \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
add-apt-repository \
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" && \
apt-get update -y && \
apt-get install -y docker-ce docker-ce-cli containerd.io && \
ln -s /var/run/docker-host.sock /var/run/docker.sock
# Dedicated DevContainer user runs Apache
ENV APACHE_RUN_USER=devcontainer
ENV APACHE_RUN_GROUP=devcontainer
RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \
adduser ${APACHE_RUN_USER} sudo && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars"
USER devcontainer
# NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16'
WORKDIR /var/www/html
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
-72
View File
@@ -1,72 +0,0 @@
# Nextcloud DevContainer
## Usage
Make sure you have the [VSCode DevContainer](https://code.visualstudio.com/docs/devcontainers/containers) extensions installed. If you open the project, VSCode will ask you if you want to open it inside of the DevContainer. If that's not the case, use <kbd>F1</kbd>&rarr;*Dev Containers: Open Folder in Container*.
Alternatively open the project directly in [GitHub Codespaces](https://github.com/features/codespaces).
That's already it. Everything else will be configured automatically by the Containers startup routine.
## Credentials
On first start the Container installs and configures Nextcloud with the following credentials:
**Nextcloud Admin Login**
Username: `admin` <br>
Password: `admin`
**Postgres credentials**
Username: `postgres` <br>
Password: `postgres` <br>
Database: `postgres`
## Services
The following services will be started:
| Service | Local port | Description |
|---------|------------|-------------|
| Nextcloud (served via Apache) | `80` | The main application |
| Mailhog | `8025` | SMTP email delivery for testing |
| Adminer | `8080` | Database viewer. Use credentials from above and connect to `localhost` to get access to the NC database |
## Permissions
The container runs with the user `devcontainer` who is also running the Apache2 process. All mounted source files have
proper permissions so that this user can access everything which is inside the current workspace. If you need to
get root permissions for whatever reason, use `sudo su` or `sudo <command>` (for example `sudo service apache2 restart`).
Everything else (like building the application, adjusting files, ...) should be done as `devcontainer` user.
## NodeJs and NVM
The container comes with [`nvm`](https://github.com/nvm-sh/nvm) and Node 16 installed. This should be sufficient to
build Nextcloud Core sources via `make`. If you need a different Node Version (for example for
app development), you can easily switch between different versions by running:
```bash
# Install and use Node 14
nvm install 14
nvm use 14
# Check version
node -v
# Switch back to Node 16
nvm use 16
# Check version
node -v
```
Note that `nvm` is only installed for the user `devcontainer` and won't work out of the box for
any other user.
## Debugging
The Apache webserver is already configured to automatically try to connect to a debugger process
listening on port `9003`. To start the VSCode debugger process, use the delivered debug profile `Listen for XDebug`.
After you started the VSCode debugger, just navigate to the appropriate Nextcloud URL to get your
debug hits.
+3 -7
View File
@@ -1,7 +1,6 @@
<?php
$codespaceName = getenv('CODESPACE_NAME');
$codespaceDomain = getenv('GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN');
$cloudEnvironmentId = getenv('CLOUDENV_ENVIRONMENT_ID');
$CONFIG = [
'mail_from_address' => 'no-reply',
@@ -13,10 +12,7 @@ $CONFIG = [
'memcache.local' => '\OC\Memcache\APCu',
];
if(is_string($codespaceName) && !empty($codespaceName) && is_string($codespaceDomain) && !empty($codespaceDomain)) {
$host = $codespaceName . '-80.' . $codespaceDomain;
$CONFIG['overwritehost'] = $host;
$CONFIG['overwrite.cli.url'] = 'https://' . $host;
if($cloudEnvironmentId !== true) {
$CONFIG['overwritehost'] = $cloudEnvironmentId . '-80.apps.codespaces.githubusercontent.com';
$CONFIG['overwriteprotocol'] = 'https';
$CONFIG['trusted_domains'] = [ $host ];
}
+11 -16
View File
@@ -8,20 +8,15 @@
8080,
8025
],
"customizations": {
"vscode": {
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker",
"xdebug.php-debug",
"donjayamanne.githistory"
],
"settings": {
"php.suggest.basic": false
}
}
},
"workspaceFolder": "/var/www/html",
"remoteUser": "devcontainer"
"runArgs": [
"--privileged"
],
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker"
],
"settings": {
"php.suggest.basic": false,
}
}
+1 -8
View File
@@ -5,8 +5,7 @@ services:
volumes:
- .:/workspace:cached
- /var/run/docker.sock:/var/run/docker-host.sock
- ..:/var/www/html
command: /var/www/html/.devcontainer/entrypoint.sh
command: /bin/sh -c "while sleep 1000; do :; done"
ports:
- 80:80
- 8080:8080
@@ -17,9 +16,6 @@ services:
restart: always
environment:
POSTGRES_PASSWORD: postgres
PGDATA: /data/postgres
volumes:
- db:/data/postgres
network_mode: service:nextclouddev
adminer:
@@ -31,6 +27,3 @@ services:
image: mailhog/mailhog
restart: always
network_mode: service:nextclouddev
volumes:
db:
-5
View File
@@ -1,5 +0,0 @@
#!/bin/bash
sudo service apache2 start
while sleep 1000; do :; done
-14
View File
@@ -1,14 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
-25
View File
@@ -2,32 +2,7 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )"
cd $DIR/
# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty
git submodule update --init
# Codespace config
cp .devcontainer/codespace.config.php config/codespace.config.php
# VSCode debugger profile
mkdir -p .vscode && cp .devcontainer/launch.json .vscode/launch.json
# Onetime installation setup
if [[ ! $(sudo -u ${APACHE_RUN_USER} php occ status) =~ installed:[[:space:]]*true ]]; then
echo "Running NC installation"
sudo -u ${APACHE_RUN_USER} php occ maintenance:install \
--verbose \
--database=pgsql \
--database-name=postgres \
--database-host=127.0.0.1 \
--database-port=5432 \
--database-user=postgres \
--database-pass=postgres \
--admin-user admin \
--admin-pass admin
fi
sudo service apache2 restart
+601 -164
View File
File diff suppressed because it is too large Load Diff
-8
View File
@@ -23,11 +23,3 @@ trim_trailing_whitespace = false
[*.svg]
insert_final_newline = false
[package*.json]
indent_size = 2
indent_style = space
[build/psalm-baseline.xml]
indent_size = 2
indent_style = space
-1
View File
@@ -6,7 +6,6 @@ node_modules/
**/js/*
*.config.js
tests/lib/
apps-extra
# TODO: remove when comments files is not using handlebar templates anymore
apps/comments/src/templates.js
+5 -20
View File
@@ -1,35 +1,20 @@
module.exports = {
globals: {
__webpack_nonce__: true,
__webpack_public_path__: true,
_: true,
$: true,
dayNames: true,
escapeHTML: true,
firstDay: true,
moment: true,
escapeHTML: true,
oc_userconfig: true,
sinon: true,
dayNames: true,
firstDay: true,
},
plugins: [
'cypress',
],
extends: [
'@nextcloud/eslint-config/typescript',
'plugin:cypress/recommended',
],
extends: ['@nextcloud'],
rules: {
'no-tabs': 'warn',
// TODO: make sure we fix this as this is bad vue coding style.
// Use proper sync modifier
'vue/no-mutating-props': 'warn',
'vue/custom-event-name-casing': ['error', 'kebab-case', {
// allows custom xxxx:xxx events formats
ignores: ['/^[a-z]+(?:-[a-z]+)*:[a-z]+(?:-[a-z]+)*$/u'],
}],
},
settings: {
jsdoc: {
mode: 'typescript',
},
},
}
+34 -4
View File
@@ -1,4 +1,34 @@
/dist/* binary
/package-lock.json merge=binary
/core/css/*.css* binary
/.devcontainer/*.sh text eol=lf
/core/js/dist/*.js binary
/core/js/dist/*.js.map binary
/apps/accessibility/js/*.js binary
/apps/accessibility/js/*.js.map binary
/apps/comments/js/*.js binary
/apps/comments/js/*.js.map binary
/apps/dashboard/js/*.js binary
/apps/dashboard/js/*.js.map binary
/apps/dav/js/*.js binary
/apps/dav/js/*.js.map binary
/apps/files/js/dist/*.js binary
/apps/files/js/dist/*.js.map binary
/apps/files_sharing/js/dist/*.js binary
/apps/files_sharing/js/dist/*.js.map binary
/apps/files_trashbin/js/*.js binary
/apps/files_trashbin/js/*.js.map binary
/apps/files_versions/js/*.js binary
/apps/files_versions/js/*.js.map binary
/apps/oauth2/js/*.js binary
/apps/oauth2/js/*.js.map binary
/apps/settings/js/vue* binary
/apps/systemtags/js/systemtags.js binary
/apps/systemtags/js/systemtags.js.map binary
/apps/twofactor_backupcodes/js/*.js binary
/apps/twofactor_backupcodes/js/*.js.map binary
/apps/updatenotification/js/updatenotification.js binary
/apps/updatenotification/js/updatenotification.js.map binary
/apps/user_status/js/*.js binary
/apps/user_status/js/*.js.map binary
/apps/weather_status/js/*.js binary
/apps/weather_status/js/*.js.map binary
/apps/workflowengine/js/*.js binary
/apps/workflowengine/js/*.js.map binary
-51
View File
@@ -1,53 +1,2 @@
# App maintainers
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
/apps/cloud_federation_api/appinfo/info.xml @mejo-
/apps/comments/appinfo/info.xml @marcelklehr @Pytal
/apps/contactsinteraction/appinfo/info.xml @kesselb @miaulalala @ChristophWurst @GretaD @hamza221 @st3iny
/apps/dashboard/appinfo/info.xml @julien-nc @juliushaertl
/apps/dav/lib/CalDAV @ChristophWurst @miaulalala @tcitworld
/apps/dav/lib/CardDAV @ChristophWurst @miaulalala @tcitworld
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
/apps/federation/appinfo/info.xml @datenangebot
/apps/files/appinfo/info.xml @skjnldsv @Pytal @ArtificialOwl @come-nc @artonge @icewind1991 @szaimen @susnux @Fenn-CS
/apps/files_external/appinfo/info.xml @icewind1991 @artonge
/apps/files_reminders/appinfo/info.xml @Pytal
/apps/files_sharing/appinfo/info.xml @skjnldsv @come-nc
/apps/files_trashbin/appinfo/info.xml @Pytal @icewind1991
/apps/files_versions/appinfo/info.xml @artonge @icewind1991
/apps/oauth2/appinfo/info.xml @julien-nc @ChristophWurst
/apps/provisioning_api/appinfo/info.xml @provokateurin @nickvergessen
/apps/settings/appinfo/info.xml @Pytal @JuliaKirschenheuter
/apps/sharebymail/appinfo/info.xml @Altahrim
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliushaertl
/apps/twofactor_backupcodes/appinfo/info.xml @st3iny @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @Pytal @JuliaKirschenheuter
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
/apps/weather_status/appinfo/info.xml @julien-nc @juliushaertl
/apps/workflowengine/appinfo/info.xml @blizzz @juliushaertl
# Security team
/resources/config/ca-bundle.crt @ChristophWurst @miaulalala @nickvergessen
/.drone.yml @nickvergessen
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen @st3iny
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen @st3iny
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen @st3iny
# Limit login to IP
# Watch login routes for https://github.com/nextcloud/limit_login_to_ip
/core/routes.php @Altahrim
# OpenAPI
openapi.json @provokateurin
ResponseDefinitions.php @provokateurin
# Personal interest
*/Activity/* @nickvergessen
*/Notifications/* @nickvergessen
/lib/private/Profiler @CarlSchwan
/lib/public/Profiler @CarlSchwan
-217
View File
@@ -1,217 +0,0 @@
name: "Bug report: Nextcloud Server"
description: "Submit a report and help us improve Nextcloud Server"
title: "[Bug]: "
labels: ["bug", "0. Needs triage"]
body:
- type: markdown
attributes:
value: |
### 👍 Thank you for contributing to our project!
Please note this is a **free and open-source** project. Most people take on their own time to help you, so please, be patient.
You can obtain [Enterprise support](https://nextcloud.com/support/) if you run Nextcloud Server in a mission critical environment.
- type: checkboxes
id: before-posting
attributes:
label: "⚠️ This issue respects the following points: ⚠️"
description: All conditions are **required**. Your issue can be closed if these are checked incorrectly.
options:
- label: This is a **bug**, not a question or a configuration/webserver/proxy issue.
required: true
- label: This issue is **not** already reported on [Github](https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3Abug) OR [Nextcloud Community Forum](https://help.nextcloud.com/) _(I've searched it)_.
required: true
- label: Nextcloud Server **is** up to date. See [Maintenance and Release Schedule](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule) for supported versions.
required: true
- label: I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
required: true
- type: textarea
id: bug-description
attributes:
label: Bug description
description: |
Provide a description of the bug you're experiencing.
Don't just expect someone will guess what your specific problem is and provide full details.
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: |
Describe the steps to reproduce the bug.
The better your description is _(go 'here', click 'there'...)_ the fastest you'll get an _(accurate)_ answer.
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: Describe what you expected to happen instead.
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Installation method
description: |
Select installation method you've used.
_Describe the method in the "Additional info" section if you chose "Other"._
options:
- "Community Web installer on a VPS or web space"
- "Community Manual installation with Archive"
- "Community Docker image"
- "Community NextcloudPi appliance"
- "Community SNAP package"
- "Community VM appliance"
- "Other Community project"
- "Official All-in-One appliance"
- type: dropdown
id: nextcloud-version
attributes:
label: Nextcloud Server version
description: |
Select Nextcloud Server version.
_Versions not listed here are not maintained and not supported anymore_
options:
- "25"
- "26"
- "27"
- "master"
validations:
required: true
- type: dropdown
id: system
attributes:
label: Operating system
description: |
Select operating system where Nextcloud Server is installed.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Debian/Ubuntu"
- "RHEL/CentOS"
- "Other"
- type: dropdown
id: php
attributes:
label: PHP engine version
description: |
Select PHP engine version serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "PHP 7.4"
- "PHP 8.0"
- "PHP 8.1"
- "PHP 8.2"
- "Other"
- type: dropdown
id: webserver
attributes:
label: Web server
description: |
Select Webserver serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Apache (supported)"
- "Nginx"
- "Other"
- type: dropdown
id: database
attributes:
label: Database engine version
description: |
Select Database engine serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "MySQL"
- "MariaDB"
- "PostgreSQL"
- "SQlite"
- "Oracle"
- "Other"
- type: dropdown
id: fresh
attributes:
label: Is this bug present after an update or on a fresh install?
description: |
Select if bug is present after an update or on a fresh install.
options:
- "Updated from a MINOR version (ex. 22.1 to 22.2)"
- "Upgraded to a MAJOR version (ex. 22 to 23)"
- "Fresh Nextcloud Server install"
- type: dropdown
id: encryption
attributes:
label: Are you using the Nextcloud Server Encryption module?
description: Select if encryption is Enabled on your Nextcloud Server.
options:
- "Encryption is Enabled"
- "Encryption is Disabled"
- type: checkboxes
id: users
attributes:
label: What user-backends are you using?
description: |
Select **all** user-backends Enabled on your Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- label: "Default user-backend _(database)_"
- label: "LDAP/ Active Directory"
- label: "SSO - SAML"
- label: "Other"
- type: textarea
id: configs
attributes:
label: Configuration report
description: |
Provide information about your configuration.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ config:list system
php occ config:list system
./occ config:list system
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: apps
attributes:
label: List of activated Apps
description: |
Provide information about your apps.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ app:list
php occ app:list
./occ app:list
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: nextcloud-signingstatus
attributes:
label: Nextcloud Signing status
description: |
Provide Nextcloud Signing status.
First, login as Admin user into your Nextcloud, then access this URL:
```shell
https://yournextcloud.tld/index.php/settings/integrity/failed
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: nextcloud-log
attributes:
label: Nextcloud Logs
description: |
Provide Nextcloud logs lines.
Copy all contents from `data/nextcloud.log` or a RAW from `/settings/admin/logging` section:
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: additional-info
attributes:
label: Additional info
description: Any additional information related to the issue (ex. browser console errors, software versions).
+166
View File
@@ -0,0 +1,166 @@
---
name: 🐛 Bug report
about: Help us improving by reporting a bug
labels: bug, 0. Needs triage
---
<!--
Thanks for reporting issues back to Nextcloud!
Note: This is the **issue tracker of Nextcloud**, please do NOT use this to get answers to your questions or get help for fixing your installation. This is a place to report bugs to developers, after your server has been debugged. You can find help debugging your system on our home user forums: https://help.nextcloud.com or, if you use Nextcloud in a large organization, ask our engineers on https://portal.nextcloud.com. See also https://nextcloud.com/support for support options.
Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to https://github.com/nextcloud and type any word in the top search/command bar. You probably see something like "We couldnt find any repositories matching ..." then click "Issues" in the left navigation.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on search syntax within github: https://help.github.com/articles/searching-issues
* This repository https://github.com/nextcloud/server/issues is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
* You can also use the Issue Template app to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
-->
<!--- Please keep this note for other contributors -->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
### Steps to reproduce
1.
2.
3.
### Expected behaviour
Tell us what should happen
### Actual behaviour
Tell us what happens instead
### Server configuration
**Operating system:**
**Web server:**
**Database:**
**PHP version:**
**Nextcloud version:** (see Nextcloud admin page)
**Updated from an older Nextcloud/ownCloud or fresh install:**
**Where did you install Nextcloud from:**
**Signing status:**
<details>
<summary>Signing status</summary>
```
Login as admin user into your Nextcloud and access
http://example.com/index.php/settings/integrity/failed
paste the results here.
```
</details>
**List of activated apps:**
<details>
<summary>App list</summary>
```
If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your Nextcloud installation folder
```
</details>
**Nextcloud configuration:**
<details>
<summary>Config report</summary>
```
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder
or
Insert your config.php content here.
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)
```
</details>
**Are you using external storage, if yes which one:** local/smb/sftp/...
**Are you using encryption:** yes/no
**Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
#### LDAP configuration (delete this part if not used)
<details>
<summary>LDAP config</summary>
```
With access to your command line run e.g.:
sudo -u www-data php occ ldap:show-config
from within your Nextcloud installation folder
Without access to your command line download the data/owncloud.db to your local
computer or access your SQL server remotely and run the select query:
SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';
Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.
```
</details>
### Client configuration
**Browser:**
**Operating system:**
### Logs
<!--- Reports without logs might be closed as unqualified reports! -->
#### Web server error log
<details>
<summary>Web server error log</summary>
```
Insert your webserver log here
```
</details>
#### Nextcloud log (data/nextcloud.log)
<details>
<summary>Nextcloud log</summary>
```
Insert your Nextcloud log here
```
</details>
#### Browser log
<details>
<summary>Browser log</summary>
```
Insert your browser log here, this could for example include:
a) The javascript console log
b) The network log
c) ...
```
</details>
+12 -29
View File
@@ -28,8 +28,6 @@ updates:
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Testing master npm
- package-ecosystem: npm
@@ -64,7 +62,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable25
target-branch: stable20
labels:
- "3. to review"
- "feature: dependencies"
@@ -73,9 +71,7 @@ updates:
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: npm
directory: "/"
@@ -84,7 +80,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable26
target-branch: stable21
labels:
- "3. to review"
- "feature: dependencies"
@@ -93,9 +89,7 @@ updates:
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: npm
directory: "/"
@@ -104,7 +98,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable27
target-branch: stable22
labels:
- "3. to review"
- "feature: dependencies"
@@ -113,9 +107,7 @@ updates:
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Testing StableXX composer
- package-ecosystem: composer
@@ -125,7 +117,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable25
target-branch: stable20
labels:
- "3. to review"
- "feature: dependencies"
@@ -134,7 +126,7 @@ updates:
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: composer
directory: "/build/integration"
@@ -143,7 +135,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable26
target-branch: stable21
labels:
- "3. to review"
- "feature: dependencies"
@@ -152,7 +144,7 @@ updates:
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: composer
directory: "/build/integration"
@@ -161,7 +153,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable27
target-branch: stable22
labels:
- "3. to review"
- "feature: dependencies"
@@ -170,13 +162,4 @@ updates:
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
update-types: ["version-update:semver-major", "version-update:semver-minor"]
-18
View File
@@ -1,18 +0,0 @@
* Resolves: # <!-- related github issue -->
## Summary
## TODO
- [ ] ...
## Checklist
- Code is [properly formatted](https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/continuous_integration.html#linting)
- [Sign-off message](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md) is added to all commits
- [ ] Tests ([unit](https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html#unit-tests), [integration](https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html#integration-tests), api and/or acceptance) are included
- [ ] Screenshots before/after for front-end changes
- [ ] Documentation ([manuals](https://github.com/nextcloud/documentation/) or wiki) has been updated or is not required
- [ ] [Backports requested](https://github.com/nextcloud/backportbot/#usage) where applicable (ex: critical bugfixes)
+33
View File
@@ -0,0 +1,33 @@
# We wait 1 months to check
daysUntilStale: 30
# If no answer after two weeks, we close
daysUntilClose: 14
# Only issues that requires info from the op
onlyLabels:
- "needs info"
# Only if issues that are not triaged
exemptLabels:
- "1. to develop"
- "2. developing"
- "3. to review"
- "4. to release"
- security
# Label to use when marking as stale
staleLabel: stale
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity and seems to be missing some essential information.
It will be closed if no further activity occurs. Thank you
for your contributions.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
only: issues
+3 -10
View File
@@ -3,17 +3,10 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block merges for EOL
name: Pull request checks
on: pull_request
permissions:
contents: read
concurrency:
group: block-merge-eol-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-eol:
name: Block merges for EOL branches
@@ -31,7 +24,7 @@ jobs:
# retrieve version number from branch reference
server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p')
echo "server_major=$server_major" >> $GITHUB_ENV
- name: Checking if ${{ env.server_major }} is EOL
run: |
php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol // .beta[$version]["100"].eol' | grep --silent -i 'false'
php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol' | grep --silent -i 'false'
+3 -14
View File
@@ -3,24 +3,13 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block merges during freezes
name: Pull request checks
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-merge-freeze-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on: pull_request
jobs:
block-merges-during-freeze:
name: Block merges during freezes
if: github.event.pull_request.draft == false
name: Block merges during feature freezes
runs-on: ubuntu-latest
+17 -17
View File
@@ -18,43 +18,43 @@ jobs:
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2
uses: skjnldsv/check-actor-permission@v2
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.1
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: "+1"
reaction-type: "+1"
- name: Parse command
uses: skjnldsv/parse-command-comment@7cef1df370a99dfd5bf896d50121390c96785db8 # v2
uses: skjnldsv/parse-command-comment@master
id: command
# Init path depending on which command is run
- name: Init path
id: git-path
run: |
run: |
if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then
echo "path=${{ github.workspace }}${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
echo "::set-output name=path::${{ github.workspace }}${{steps.command.outputs.arg1}}"
else
echo "path=${{ github.workspace }}${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
echo "::set-output name=path::${{ github.workspace }}${{steps.command.outputs.arg2}}"
fi
- name: Init branch
uses: xt0rted/pull-request-comment-branch@d97294d304604fa98a2600a6e2f916a84b596dc7 # v1
uses: xt0rted/pull-request-comment-branch@v1
id: comment-branch
process:
runs-on: ubuntu-latest
needs: init
steps:
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@v2
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
@@ -66,14 +66,14 @@ jobs:
git config --local user.name "nextcloud-command"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.1
uses: skjnldsv/read-package-engines-version-actions@v1
id: package-engines-versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^12'
fallbackNpm: '^6'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@v2
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
@@ -90,7 +90,7 @@ jobs:
if: ${{ needs.init.outputs.arg1 != 'fixup' && needs.init.outputs.arg1 != 'amend' }}
run: |
git add ${{ needs.init.outputs.git_path }}
git commit --signoff -m 'chore(assets): Recompile assets'
git commit --signoff -m 'Compile assets'
git push origin ${{ needs.init.outputs.head_ref }}
- name: Commit and push fixup
@@ -108,10 +108,10 @@ jobs:
git push --force origin ${{ needs.init.outputs.head_ref }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.1
uses: peter-evans/create-or-update-comment@v1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: "-1"
reaction-type: "-1"
@@ -1,60 +0,0 @@
name: Update 3rdparty command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/update-3rdparty`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/update-3rdparty')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: "+1"
- name: Init branch
uses: xt0rted/pull-request-comment-branch@d97294d304604fa98a2600a6e2f916a84b596dc7 # v1
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Setup git
run: |
git config --local user.email "nextcloud-command@users.noreply.github.com"
git config --local user.name "nextcloud-command"
- name: Pull 3rdparty
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin ${{ github.event.issue.pull_request.base.ref }}; fi'
- name: Commit and push changes
run: |
git add 3rdparty
git commit -s -m "Update submodule 3rdparty to latest ${{ github.event.issue.pull_request.base.ref }}"
git push
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: "-1"
+4 -9
View File
@@ -9,21 +9,16 @@ on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.1
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -31,18 +26,18 @@ jobs:
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@v2
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
uses: cirrus-actions/rebase@1.5
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.1
uses: peter-evans/create-or-update-comment@v1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
-153
View File
@@ -1,153 +0,0 @@
name: Cypress
on:
pull_request:
push:
branches:
- main
- master
- stable*
env:
# Adjust APP_NAME if your repository name is different
APP_NAME: ${{ github.event.repository.name }}
# Server requires head_ref instead of base_ref, as we want to test the PR branch
BRANCH: ${{ github.head_ref || github.ref_name }}
jobs:
init:
runs-on: ubuntu-latest
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
steps:
- name: Checkout app
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
with:
files: "composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: composer install --no-dev
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: "^14"
fallbackNpm: "^7"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install node dependencies & build app
run: |
npm ci
TESTING=true npm run build --if-present
- name: Save context
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
key: cypress-context-${{ github.run_id }}
path: ./
cypress:
runs-on: ubuntu-latest
needs: init
strategy:
fail-fast: false
matrix:
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows
containers: ["component", 1, 2]
name: runner ${{ matrix.containers }}
steps:
- name: Restore context
uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@d69252d52b9a31bad4f418f05ba2bc83687a02eb # v5.8.3
with:
record: true
parallel: true
# cypress run type
component: ${{ matrix.containers == 'component' }}
group: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }}
# cypress env
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
tag: ${{ github.event_name }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
# https://github.com/cypress-io/github-action/issues/124
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
# Needed for some specific code workarounds
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
- name: Upload snapshots
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
if: always()
with:
name: snapshots_${{ matrix.containers }}
path: cypress/snapshots
- name: Extract NC logs
if: failure() && matrix.containers != 'component'
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log
- name: Create data dir archive
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
if: failure() && matrix.containers != 'component'
with:
name: nc_data_${{ matrix.containers }}
path: data.tar
summary:
runs-on: ubuntu-latest
needs: [init, cypress]
if: always()
name: cypress-summary
steps:
- name: Summary status
run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi
+2 -13
View File
@@ -8,33 +8,22 @@ name: Dependabot
on:
pull_request_target:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
steps:
# Github actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
- uses: hmarr/auto-approve-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
- uses: ahmadnassri/action-dependabot-auto-merge@v2
with:
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
+3 -16
View File
@@ -3,31 +3,18 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block fixup and squash commits
name: Pull request checks
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: fixup-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on: pull_request
jobs:
commit-message-check:
if: github.event.pull_request.draft == false
permissions:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
uses: xt0rted/block-autosquash-commits-action@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
+12 -21
View File
@@ -1,15 +1,13 @@
name: FTP unit tests
name: FTP
on:
push:
branches:
- master
- stable*
paths:
- '.github/**'
- 'apps/files_external/**'
pull_request:
paths:
- '.github/**'
- 'apps/files_external/**'
env:
@@ -19,40 +17,34 @@ jobs:
ftp-tests:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0']
php-versions: ['7.4', '8.0']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
submodules: true
- name: Set up ftpd
run: |
sudo mkdir /tmp/ftp
sudo chmod -R 0777 /tmp/ftp
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo '$6$Q7V2n3q2GRVv5YeQ$/AhLu07H76Asojy7bxGXMY1caKLAbp5Vt82LOZYMkD/8uDzyMAEXwk0c1Bdz1DkBsk2Vh/9SF130mOPavRGMo.' > /tmp/secret.txt; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo 'FTP_ROOT=/home/test' > $GITHUB_ENV; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then docker run --name ftp -d --net host -e PASV_ADDRESS=127.0.0.1 -e FTPUSER_NAME=test -v /tmp/secret.txt:/run/secrets/ftp-user-password-secret -v /tmp/ftp:/home/test instantlinux/proftpd; fi
sudo chown -R 0777 /tmp/ftp
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then docker run --name ftp -d --net host -e FTP_USERNAME=test -e FTP_PASSWORD=test -v /tmp/ftp:/home/test hauptmedia/proftpd; fi
if [[ "${{ matrix.ftpd }}" == 'vsftpd' ]]; then docker run --name ftp -d --net host -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=127.0.0.1 -v /tmp/ftp:/home/vsftpd/test fauria/vsftpd; fi
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp2:/home/test -v /tmp/ftp2:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
tools: phpunit
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
@@ -62,14 +54,13 @@ jobs:
php -S localhost:8080 &
- name: smoketest ftp
run: |
php -r 'var_dump(file_put_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt", "asd"));'
php -r 'var_dump(file_get_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt"));'
php -r 'var_dump(mkdir("ftp://test:test@localhost${{ env.FTP_ROOT }}/asdads"));'
php -r 'var_dump(file_put_contents("ftp://test:test@localhost/ftp.txt", "asd"));'
php -r 'var_dump(file_get_contents("ftp://test:test@localhost/ftp.txt"));'
php -r 'var_dump(mkdir("ftp://test:test@localhost/asdads"));'
ls -l /tmp/ftp
[ -f /tmp/ftp/ftp.txt ]
- name: PHPUnit
run: |
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => '${{ env.FTP_ROOT }}'];" > apps/${{ env.APP_NAME }}/tests/config.ftp.php
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => ''];" > apps/${{ env.APP_NAME }}/tests/config.ftp.php
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/FtpTest.php
- name: ftpd logs
if: always()
@@ -1,39 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint eslint
on:
pull_request:
paths-ignore:
- '.github/workflows/**'
- 'src/**'
- 'apps/**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
permissions:
contents: read
jobs:
lint:
permissions:
contents: none
runs-on: ubuntu-latest
name: eslint
steps:
- run: 'echo "No eslint required"'
+10 -28
View File
@@ -2,33 +2,15 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint eslint
name: Lint
on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'apps/**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
permissions:
contents: read
concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
push:
branches:
- master
- stable*
jobs:
lint:
@@ -38,17 +20,17 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@v2
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.1
uses: skjnldsv/read-package-engines-version-actions@v1.1
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^12'
fallbackNpm: '^6'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@v2
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
-40
View File
@@ -1,40 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint php-cs
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-cs-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: php-cs
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Set up php
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
with:
php-version: 8.1
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i
- name: Lint
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
-60
View File
@@ -1,60 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint php
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: lint-php-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
php-lint:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: [ "8.0", "8.1", "8.2" ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Lint
run: composer run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: php-lint
if: always()
name: php-lint-summary
steps:
- name: Summary status
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi
+42
View File
@@ -0,0 +1,42 @@
name: Lint
on: pull_request
jobs:
php-linters:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.3', '7.4', '8.0']
name: php${{ matrix.php-versions }} lint
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@master
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Lint
run: composer run lint
php-cs-fixer:
name: php-cs check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up php
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
tools: cs2pr
- name: Install dependencies
run: composer i
- name: Run coding standards check
run: |
composer run cs:check -- --format=checkstyle | cs2pr
composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
shell: bash
+33 -42
View File
@@ -1,4 +1,4 @@
name: Node tests
name: Node
on:
pull_request:
@@ -10,61 +10,31 @@ on:
jobs:
versions:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v2
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1
uses: skjnldsv/read-package-engines-version-actions@v1.1
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^12'
fallbackNpm: '^6'
test:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v2
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ needs.versions.outputs.npmVersion }}"
- name: Install dependencies
run: npm ci
- name: Test and process coverage
run: npm run test:coverage
- name: Collect coverage
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
with:
files: ./coverage/lcov.info
jsunit:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
uses: actions/setup-node@v2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
@@ -75,18 +45,39 @@ jobs:
run: npm ci
- name: Test
run: npm run test:jsunit
run: npm run test
handlebars:
jsunit:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v2
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
uses: actions/setup-node@v2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
# This test requires npm6 for some reason
# TODO: fix this and/or move away from jsunit
- name: Set up npm 6
run: npm i -g npm@^6
- name: Test
run: ./autotest-js.sh
handlebars:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@v2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
-43
View File
@@ -1,43 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# Use node together with node-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Node
on:
pull_request:
paths-ignore:
- '.github/workflows/**'
- 'src/**'
- 'apps/**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
push:
branches:
- main
- master
- stable*
concurrency:
group: node-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
permissions:
contents: none
runs-on: ubuntu-latest
name: node
steps:
- name: Skip
run: 'echo "No JS/TS files changed, skipped Node"'
+6 -25
View File
@@ -7,29 +7,11 @@ name: Node
on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'apps/**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
push:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: node-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
@@ -37,17 +19,17 @@ jobs:
name: node
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@v2
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.1
uses: skjnldsv/read-package-engines-version-actions@v1.1
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^12'
fallbackNpm: '^6'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@v2
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -61,11 +43,10 @@ jobs:
- name: Check webpack build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"
bash -c "[[ ! \"`git status --porcelain `\" ]] || exit 1"
- name: Show changes on failure
if: failure()
run: |
git status
git --no-pager diff
exit 1 # make it red to grab attention
-71
View File
@@ -1,71 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Npm audit fix and compile
on:
workflow_dispatch:
schedule:
# At 2:30 on Sundays
- cron: '30 2 * * 0'
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ["main", "master", "stable27", "stable26", "stable25", "stable24"]
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
ref: ${{ matrix.branches }}
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.1
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Fix npm audit
run: |
npm audit fix
- name: Run npm ci and npm run build
if: always()
run: |
npm ci
npm run build --if-present
- name: Create Pull Request
if: always()
uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v5
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(deps): fix npm audit"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
title: "[${{ matrix.branches }}] Fix npm audit"
body: |
Auto-generated fix of npm audit
labels: |
dependencies
3. to review
+25 -56
View File
@@ -1,61 +1,48 @@
name: PHPUnit oci
name: PHPUnit
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-oci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
phpunit-oci:
phpunit-oci8:
runs-on: ubuntu-20.04
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.0', '8.1', '8.2']
php-versions: [ '7.3', '7.4', '8.0' ]
databases: [ 'oci' ]
name: php${{ matrix.php-versions }}-${{ matrix.databases }}
services:
oracle:
image: ghcr.io/gvenzl/oracle-xe:11
# Provide passwords and other environment variables to container
env:
ORACLE_RANDOM_PASSWORD: true
APP_USER: autotest
APP_USER_PASSWORD: owncloud
# Forward Oracle port
image: deepdiver/docker-oracle-xe-11g # "wnameless/oracle-xe-11g-r2"
ports:
- 1521:1521/tcp
# Provide healthcheck script options for startup
options: >-
--health-cmd healthcheck.sh
--health-interval 10s
--health-timeout 5s
--health-retries 10
- "1521:1521"
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, oci8, openssl, pcntl, pdo_sqlite, posix, sqlite, xml, zip
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,oci8,openssl,pdo_sqlite,posix,sqlite,xml,zip
tools: phpunit:9
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
@@ -66,21 +53,3 @@ jobs:
- name: PHPUnit
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --group DB,SLOWDB
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: phpunit-oci
if: always()
name: phpunit-oci-summary
steps:
- name: Summary status
run: if ${{ needs.phpunit-oci.result != 'success' }}; then exit 1; fi
-33
View File
@@ -1,33 +0,0 @@
name: OpenAPI
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
openapi:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: xml
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: OpenAPI checker
run: build/openapi-checker.sh
-108
View File
@@ -1,108 +0,0 @@
name: Performance testing
on:
pull_request:
jobs:
performance-testing:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.0']
name: performance-${{ matrix.php-versions }}
steps:
- name: Checkout server before PR
uses: actions/checkout@v3
with:
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@v0.1.2
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
- name: Run before measurements
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: before.json
profiler-branch: master
- name: Apply PR
run: |
git remote add pr ${{ github.event.pull_request.head.repo.clone_url }}
git fetch pr ${{ github.event.pull_request.head.ref }}
git checkout -b pr/${{ github.event.pull_request.head.ref }}
git submodule update
./occ upgrade
- name: Run after measurements
id: compare
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: after.json
profiler-branch: master
compare-with: before.json
- name: Upload profiles
if: always()
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@v6
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
let comment = `Possible performance regression detected\n`;
comment += `<details><summary>Show Output</summary>
\`\`\`
${{ steps.compare.outputs.compare }}
\`\`\`
</details>`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
-65
View File
@@ -1,65 +0,0 @@
name: PHPUnit 32bits
on:
pull_request:
paths:
- 'version.php'
- '.github/workflows/phpunit-32bits.yml'
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
permissions:
contents: read
concurrency:
group: phpunit-32bits-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
phpunit-32bits:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
container: shivammathur/node:latest-i386
strategy:
matrix:
php-versions: ['8.0']
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9c77701ae57b0c47f6732beebfbdec76e4e5c90a #debian bookworm fix
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip, apcu
tools: phpunit:9
coverage: none
ini-values:
apc.enabled=on,
apc.enable_cli=on
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: PHPUnit
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness
-29
View File
@@ -1,29 +0,0 @@
name: 'Ask for feedback on PRs'
on:
schedule:
- cron: '30 1 * * *'
jobs:
pr-feedback:
runs-on: ubuntu-22.04
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
id: scrape
with:
website: 'https://nextcloud.com/team/'
- uses: marcelklehr/pr-feedback-action@601109aa729eb4c8d6d0ece7567b9d4901db4aef
with:
feedback-message: |
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
We hope that the reviewing process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR reviewing process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
days-before-feedback: 14
start-date: "2023-07-10"
exempt-authors: "${{ steps.scrape.outputs.users }}"
exempt-bots: true
+28
View File
@@ -0,0 +1,28 @@
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:4.9.3
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
+28
View File
@@ -0,0 +1,28 @@
name: Psalm Security Analysis
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
psalm:
name: Psalm
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- name: Psalm
uses: docker://vimeo/psalm-github-actions:4.9.3
with:
security_analysis: true
composer_ignore_platform_reqs: false
report_file: results.sarif
- name: Upload Security Analysis results to GitHub
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif
+9 -17
View File
@@ -17,13 +17,11 @@ jobs:
s3-external-tests-minio:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0', '8.1']
php-versions: ['7.4', '8.0']
name: php${{ matrix.php-versions }}-minio
@@ -38,18 +36,16 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
tools: phpunit
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
@@ -59,7 +55,7 @@ jobs:
php -S localhost:8080 &
- name: PHPUnit
run: |
echo "<?php return ['run' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => 'minio','secret' => 'minio123', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/${{ env.APP_NAME }}/tests/config.amazons3.php
echo "<?php return ['run' => true,'hostname' => 'localhost','key' => 'minio','secret' => 'minio123', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/${{ env.APP_NAME }}/tests/config.amazons3.php
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/Amazons3Test.php
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/VersionedAmazonS3Test.php
- name: S3 logs
@@ -70,13 +66,11 @@ jobs:
s3-external-tests-localstack:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0', '8.1']
php-versions: ['7.4', '8.0']
name: php${{ matrix.php-versions }}-localstack
@@ -91,18 +85,16 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
tools: phpunit
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
@@ -1,86 +0,0 @@
name: S3 primary storage integration tests
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
s3-primary-integration-tests-minio:
runs-on: ubuntu-20.04
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
redis:
image: redis
ports:
- "6379:6379"
minio:
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
image: bitnami/minio:2021.12.29
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, redis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: Set up Nextcloud
run: |
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "minio", "secret" => "minio123", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
echo '<?php $CONFIG=["redis" => ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: Integration
run: |
cd build/integration
bash run.sh --tags "~@failure-s3" features/webdav-related.feature
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-integration-summary:
runs-on: ubuntu-latest
needs: [s3-primary-integration-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.s3-primary-integration-tests-minio.result != 'success' }}; then exit 1; fi
-78
View File
@@ -1,78 +0,0 @@
name: S3 primary storage
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
s3-primary-tests-minio:
runs-on: ubuntu-20.04
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
minio:
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
image: bitnami/minio:2021.12.29
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "minio", "secret" => "minio123", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f index.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --group DB,SLOWDB
- name: S3 logs
if: always()
run: |
docker ps -a
docker logs $(docker ps -aq)
s3-primary-summary:
runs-on: ubuntu-latest
needs: [s3-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.s3-primary-tests-minio.result != 'success' }}; then exit 1; fi
+28 -24
View File
@@ -6,23 +6,24 @@ on:
- stable*
paths:
- 'apps/files_external/**'
- '.github/workflows/smb-kerberos.yml'
pull_request:
paths:
- 'apps/files_external/**'
- '.github/workflows/smb-kerberos.yml'
jobs:
smb-kerberos-tests:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
php-versions: ['7.4', '8.0']
name: smb-kerberos-sso
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
submodules: true
- name: Pull images
@@ -32,12 +33,9 @@ jobs:
docker pull icewind1991/samba-krb-test-client
- name: Setup AD-DC
run: |
cp apps/files_external/tests/*.sh .
mkdir data
sudo chown -R 33 data apps config
DC_IP=$(./start-dc.sh)
./start-apache.sh $DC_IP $PWD
echo "DC_IP=$DC_IP" >> $GITHUB_ENV
apps/files_external/tests/setup-krb.sh
- name: Set up Nextcloud
run: |
docker exec --user 33 apache ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
@@ -46,8 +44,7 @@ jobs:
# setup user_saml
docker exec --user 33 apache ./occ app:enable user_saml --force
docker exec --user 33 apache ./occ config:app:set user_saml type --value 'environment-variable'
docker exec --user 33 apache ./occ saml:config:create
docker exec --user 33 apache ./occ saml:config:set 1 --general-uid_mapping=REMOTE_USER
docker exec --user 33 apache ./occ config:app:set user_saml general-uid_mapping --value REMOTE_USER
# setup external storage
docker exec --user 33 apache ./occ app:enable files_external --force
@@ -57,18 +54,25 @@ jobs:
docker exec --user 33 apache ./occ files_external:list
- name: Test SSO
run: |
mkdir /tmp/shared/cookies
chmod 0777 /tmp/shared/cookies
mkdir cookies
chmod 0777 cookies
echo "SAML login"
./client-cmd.sh ${{ env.DC_IP }} curl -c /shared/cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/index.php/apps/user_saml/saml/login
echo "Check we are logged in"
CONTENT=$(./client-cmd.sh ${{ env.DC_IP }} curl -b /shared/cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/remote.php/webdav/smb/test.txt)
CONTENT=$(echo $CONTENT | head -n 1 | tr -d '[:space:]')
DC_IP=$(docker inspect dc --format '{{.NetworkSettings.IPAddress}}')
docker run --rm --name client -v $PWD/cookies:/cookies -v /tmp/shared:/shared --dns $DC_IP --hostname client.domain.test icewind1991/samba-krb-test-client \
curl -c /cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/index.php/apps/user_saml/saml/login
CONTENT=$(docker run --rm --name client -v $PWD/cookies:/cookies -v /tmp/shared:/shared --dns $DC_IP --hostname client.domain.test icewind1991/samba-krb-test-client \
curl -b /cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/remote.php/webdav/smb/test.txt)
echo $CONTENT
CONTENT=$(echo $CONTENT | tr -d '[:space:]')
[[ $CONTENT == "testfile" ]]
- name: Show logs
if: failure()
run: |
docker exec --user 33 apache ./occ log:file
FILEPATH=$(docker exec --user 33 apache ./occ log:file | grep "Log file:" | cut -d' ' -f3)
docker exec --user 33 apache cat $FILEPATH
smb-kerberos-summary:
runs-on: ubuntu-latest
needs: smb-kerberos-tests
if: always()
steps:
- name: Summary status
run: if ${{ needs.smb-kerberos-tests.result != 'success' }}; then exit 1; fi
-33
View File
@@ -1,33 +0,0 @@
name: Close stale issues
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
stale:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
issues: write
steps:
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity and seems to be missing some essential information.
It will be closed if no further activity occurs. Thank you
for your contributions.
stale-issue-label: 'stale'
only-labels: 'needs info'
labels-to-remove-when-unstale: 'needs info,stale'
exempt-issue-labels: '1. to develop,2. developing,3. to review,4. to release,security'
days-before-stale: 30
days-before-close: 14
# debug-only: true
+52 -97
View File
@@ -1,101 +1,56 @@
name: Psalm static code analysis
name: Static code analysis
on:
pull_request:
push:
branches:
- master
- stable*
on: [pull_request]
jobs:
static-code-analysis:
runs-on: ubuntu-latest
static-code-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- --monochrome --no-progress --output-format=github --update-baseline || ( git diff -- . ':!lib/composer' && exit 1 )
- name: Check diff
run: git diff -- . ':!lib/composer'
- name: Show potential changes in Psalm baseline
run: |
bash -c "[[ ! \"`git status --porcelain build/psalm-baseline.xml`\" ]] || ( echo 'Uncommited changes in Psalm baseline' && git status && git diff build/psalm-baseline.xml)"
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --update-baseline --report=results.sarif
- name: Show potential changes in Psalm baseline
if: always()
run: git diff -- . ':!lib/composer'
- name: Upload Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
static-code-analysis-security:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: true
- name: Set up php
uses: shivammathur/setup-php@master
with:
php-version: '8.0'
extensions: ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm taint analysis
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --report=results.sarif --taint-analysis
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
static-code-analysis-ocp:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
- name: Show potential changes in Psalm baseline
if: always()
run: git diff -- . ':!lib/composer'
static-code-analysis-ocp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline || ( git diff -- . ':!lib/composer' && exit 1 )
- name: Check diff
run: git diff -- . ':!lib/composer'
- name: Show potential changes in Psalm baseline
run: |
bash -c "[[ ! \"`git status --porcelain build/psalm-baseline-ocp.xml`\" ]] || ( echo 'Uncommited changes in Psalm baseline' && git status && git diff build/psalm-baseline.xml)"
@@ -1,42 +0,0 @@
name: Update CA certificate bundle
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
jobs:
update-ca-certificate-bundle:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ["master", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Download CA certificate bundle from curl
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "fix(security): Update CA certificate bundle"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-update-ca-cert-bundle
title: "[${{ matrix.branches }}] fix(security): Update CA certificate bundle"
body: |
Auto-generated update of CA certificate bundle from [https://curl.se/docs/caextract.html](https://curl.se/docs/caextract.html)
labels: |
dependencies
3. to review
+9 -23
View File
@@ -3,35 +3,23 @@ name: Update Psalm baseline
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
- cron: '5 4 * * *'
jobs:
update-psalm-baseline:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
branches: ["master", "stable27", "stable26", "stable25"]
name: update-psalm-baseline-${{ matrix.branches }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Set up php
- name: Set up php7.4
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer install
@@ -40,25 +28,23 @@ jobs:
run: composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
continue-on-error: true
- name: Psalm OCP
run: composer run psalm -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
continue-on-error: true
- name: Reset composer
run: |
git clean -f lib/composer
git checkout composer.json composer.lock lib/composer
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-update-psalm-baseline
title: "[${{ matrix.branches }}] Update psalm-baseline.xml"
branch: automated/noid/psalm-baseline-update
# Make sure we can open multiple PRs
branch-suffix: timestamp
title: '[Automated] Update psalm-baseline.xml'
body: |
Auto-generated update psalm-baseline.xml with fixed psalm warnings
labels: |
+2 -11
View File
@@ -13,6 +13,7 @@
# ignore all apps except core ones
/apps*/*
!/apps/accessibility
!/apps/cloud_federation_api
!/apps/comments
!/apps/contactsinteraction
@@ -24,7 +25,6 @@
!/apps/sharebymail
!/apps/encryption
!/apps/files_external
!/apps/files_reminders
!/apps/files_sharing
!/apps/files_trashbin
!/apps/files_versions
@@ -74,7 +74,6 @@ CVS/*
RCS/*
*.backup*
.php_cs.cache
.php-cs-fixer.cache
# kdevelop
.kdev
@@ -97,7 +96,6 @@ nbproject
# vscode
.vscode
*.code-workspace
# geany
*.geany
@@ -131,6 +129,7 @@ nbproject
/build/jsdocs/
/npm-debug.log
/PhantomJS_*
/build/package-lock.json
# puphpet
puphpet
@@ -155,7 +154,6 @@ Vagrantfile
/config/config-autotest-backup.php
/config/autoconfig.php
clover.xml
/coverage
# Tests - dependencies
tests/acceptance/vendor/
@@ -163,10 +161,3 @@ tests/acceptance/vendor/
composer.phar
/lib/composer/bin
/vendor-bin/**/vendor
./.htaccess
core/js/mimetypelist.js
# Tests - cypress
cypress/snapshots
cypress/videos
+17 -10
View File
@@ -24,6 +24,9 @@
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Download-Options
Header always set X-Download-Options "noopen"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
@@ -31,7 +34,7 @@
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
Header always set X-Robots-Tag "none"
Header onsuccess unset X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
@@ -40,13 +43,8 @@
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
<FilesMatch "\.(css|js|svg|gif|png|jpg|ico|wasm|tflite)$">
Header set Cache-Control "max-age=15778463"
</FilesMatch>
# Let browsers cache WOFF files for a week
@@ -55,6 +53,17 @@
</FilesMatch>
</IfModule>
# PHP 7.x
<IfModule mod_php7.c>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
# PHP 8+
<IfModule mod_php.c>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
@@ -68,8 +77,6 @@
AddType image/svg+xml svg svgz
AddType application/wasm wasm
AddEncoding gzip svgz
# Serve ESM javascript files (.mjs) with correct mime type
AddType text/javascript js mjs
</IfModule>
<IfModule mod_dir.c>
-13
View File
@@ -21,17 +21,4 @@ $config
->notPath('node_modules')
->notPath('vendor')
->in(__DIR__);
// Ignore additional app directories
$rootDir = new \DirectoryIterator(__DIR__);
foreach ($rootDir as $node) {
if (str_starts_with($node->getFilename(), 'apps')) {
$return = shell_exec('git check-ignore ' . escapeshellarg($node->getFilename() . '/'));
if ($return !== null) {
$config->getFinder()->exclude($node->getFilename());
}
}
}
return $config;
-17
View File
@@ -1,17 +0,0 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/nextcloud/pre-commit-php.git
rev: 1.5.1
hooks:
- id: php-lint
- id: php-cs-fixer
files: \.(php)$
exclude: ^(config|data|composer|lib\/composer)
args: []
+148 -148
View File
@@ -1,183 +1,183 @@
[main]
host = https://www.transifex.com
lang_map = fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs
host = https://www.transifex.com
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
[o:nextcloud:p:nextcloud:r:admin_audit]
file_filter = translationfiles/<lang>/admin_audit.po
source_file = translationfiles/templates/admin_audit.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:cloud_federation_api]
file_filter = translationfiles/<lang>/cloud_federation_api.po
source_file = translationfiles/templates/cloud_federation_api.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:comments]
file_filter = translationfiles/<lang>/comments.po
source_file = translationfiles/templates/comments.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:contactsinteraction]
file_filter = translationfiles/<lang>/contactsinteraction.po
source_file = translationfiles/templates/contactsinteraction.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:core]
[nextcloud.core]
file_filter = translationfiles/<lang>/core.po
source_file = translationfiles/templates/core.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:dashboard-shipped-with-server]
file_filter = translationfiles/<lang>/dashboard.po
source_file = translationfiles/templates/dashboard.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:dav]
file_filter = translationfiles/<lang>/dav.po
source_file = translationfiles/templates/dav.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:federatedfilesharing]
file_filter = translationfiles/<lang>/federatedfilesharing.po
source_file = translationfiles/templates/federatedfilesharing.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:federation]
file_filter = translationfiles/<lang>/federation.po
source_file = translationfiles/templates/federation.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files]
[nextcloud.files]
file_filter = translationfiles/<lang>/files.po
source_file = translationfiles/templates/files.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:files_encryption]
file_filter = translationfiles/<lang>/encryption.po
source_file = translationfiles/templates/encryption.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_external]
file_filter = translationfiles/<lang>/files_external.po
source_file = translationfiles/templates/files_external.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_reminders]
file_filter = translationfiles/<lang>/files_reminders.po
source_file = translationfiles/templates/files_reminders.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_sharing]
file_filter = translationfiles/<lang>/files_sharing.po
source_file = translationfiles/templates/files_sharing.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_trashbin]
file_filter = translationfiles/<lang>/files_trashbin.po
source_file = translationfiles/templates/files_trashbin.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_versions]
file_filter = translationfiles/<lang>/files_versions.po
source_file = translationfiles/templates/files_versions.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:lib]
file_filter = translationfiles/<lang>/lib.po
source_file = translationfiles/templates/lib.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:lookup_server_connector]
file_filter = translationfiles/<lang>/lookup_server_connector.po
source_file = translationfiles/templates/lookup_server_connector.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:oauth2]
file_filter = translationfiles/<lang>/oauth2.po
source_file = translationfiles/templates/oauth2.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:provisioning_api]
file_filter = translationfiles/<lang>/provisioning_api.po
source_file = translationfiles/templates/provisioning_api.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:settings-1]
[nextcloud.settings-1]
file_filter = translationfiles/<lang>/settings.po
source_file = translationfiles/templates/settings.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:sharebymail]
file_filter = translationfiles/<lang>/sharebymail.po
source_file = translationfiles/templates/sharebymail.pot
[nextcloud.lib]
file_filter = translationfiles/<lang>/lib.po
source_file = translationfiles/templates/lib.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:systemtags]
file_filter = translationfiles/<lang>/systemtags.po
source_file = translationfiles/templates/systemtags.pot
[nextcloud.dav]
file_filter = translationfiles/<lang>/dav.po
source_file = translationfiles/templates/dav.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:theming]
file_filter = translationfiles/<lang>/theming.po
source_file = translationfiles/templates/theming.pot
[nextcloud.files_encryption]
file_filter = translationfiles/<lang>/encryption.po
source_file = translationfiles/templates/encryption.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:twofactor_backupcodes]
file_filter = translationfiles/<lang>/twofactor_backupcodes.po
source_file = translationfiles/templates/twofactor_backupcodes.pot
[nextcloud.files_external]
file_filter = translationfiles/<lang>/files_external.po
source_file = translationfiles/templates/files_external.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:updatenotification]
file_filter = translationfiles/<lang>/updatenotification.po
source_file = translationfiles/templates/updatenotification.pot
[nextcloud.files_sharing]
file_filter = translationfiles/<lang>/files_sharing.po
source_file = translationfiles/templates/files_sharing.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:user_ldap]
[nextcloud.files_trashbin]
file_filter = translationfiles/<lang>/files_trashbin.po
source_file = translationfiles/templates/files_trashbin.pot
source_lang = en
type = PO
[nextcloud.files_versions]
file_filter = translationfiles/<lang>/files_versions.po
source_file = translationfiles/templates/files_versions.pot
source_lang = en
type = PO
[nextcloud.user_ldap]
file_filter = translationfiles/<lang>/user_ldap.po
source_file = translationfiles/templates/user_ldap.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:user_status]
file_filter = translationfiles/<lang>/user_status.po
source_file = translationfiles/templates/user_status.pot
[nextcloud.comments]
file_filter = translationfiles/<lang>/comments.po
source_file = translationfiles/templates/comments.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:weather_status]
file_filter = translationfiles/<lang>/weather_status.po
source_file = translationfiles/templates/weather_status.pot
[nextcloud.federatedfilesharing]
file_filter = translationfiles/<lang>/federatedfilesharing.po
source_file = translationfiles/templates/federatedfilesharing.pot
source_lang = en
type = PO
type = PO
[o:nextcloud:p:nextcloud:r:workflowengine]
[nextcloud.federation]
file_filter = translationfiles/<lang>/federation.po
source_file = translationfiles/templates/federation.pot
source_lang = en
type = PO
[nextcloud.oauth2]
file_filter = translationfiles/<lang>/oauth2.po
source_file = translationfiles/templates/oauth2.pot
source_lang = en
type = PO
[nextcloud.sharebymail]
file_filter = translationfiles/<lang>/sharebymail.po
source_file = translationfiles/templates/sharebymail.pot
source_lang = en
type = PO
[nextcloud.systemtags]
file_filter = translationfiles/<lang>/systemtags.po
source_file = translationfiles/templates/systemtags.pot
source_lang = en
type = PO
[nextcloud.updatenotification]
file_filter = translationfiles/<lang>/updatenotification.po
source_file = translationfiles/templates/updatenotification.pot
source_lang = en
type = PO
[nextcloud.theming]
file_filter = translationfiles/<lang>/theming.po
source_file = translationfiles/templates/theming.pot
source_lang = en
type = PO
[nextcloud.twofactor_backupcodes]
file_filter = translationfiles/<lang>/twofactor_backupcodes.po
source_file = translationfiles/templates/twofactor_backupcodes.pot
source_lang = en
type = PO
[nextcloud.workflowengine]
file_filter = translationfiles/<lang>/workflowengine.po
source_file = translationfiles/templates/workflowengine.pot
source_lang = en
type = PO
type = PO
[nextcloud.accessibility]
file_filter = translationfiles/<lang>/accessibility.po
source_file = translationfiles/templates/accessibility.pot
source_lang = en
type = PO
[nextcloud.provisioning_api]
file_filter = translationfiles/<lang>/provisioning_api.po
source_file = translationfiles/templates/provisioning_api.pot
source_lang = en
type = PO
[nextcloud.lookup_server_connector]
file_filter = translationfiles/<lang>/lookup_server_connector.po
source_file = translationfiles/templates/lookup_server_connector.pot
source_lang = en
type = PO
[nextcloud.dashboard-shipped-with-server]
file_filter = translationfiles/<lang>/dashboard.po
source_file = translationfiles/templates/dashboard.pot
source_lang = en
type = PO
[nextcloud.contactsinteraction]
file_filter = translationfiles/<lang>/contactsinteraction.po
source_file = translationfiles/templates/contactsinteraction.pot
source_lang = en
type = PO
[nextcloud.cloud_federation_api]
file_filter = translationfiles/<lang>/cloud_federation_api.po
source_file = translationfiles/templates/cloud_federation_api.pot
source_lang = en
type = PO
[nextcloud.admin_audit]
file_filter = translationfiles/<lang>/admin_audit.po
source_file = translationfiles/templates/admin_audit.pot
source_lang = en
type = PO
[nextcloud.user_status]
file_filter = translationfiles/<lang>/user_status.po
source_file = translationfiles/templates/user_status.pot
source_lang = en
type = PO
[nextcloud.weather_status]
file_filter = translationfiles/<lang>/weather_status.po
source_file = translationfiles/templates/weather_status.pot
source_lang = en
type = PO
+28 -130
View File
@@ -1,40 +1,33 @@
Nextcloud is written by:
- AW-UC <git@a-wesemann.de>
- Aaron Ball <nullspoon@oper.io>
- Aaron Wood <aaronjwood@gmail.com>
- Abijeet <abijeetpatro@gmail.com>
- Achim Königs <garfonso@tratschtante.de>
- Adam Williamson <awilliam@redhat.com>
- Administrator "Administrator@WINDOWS-2012"
- Adrian Brzezinski <adrian.brzezinski@eo.pl>
- Akhil <akhil.potukuchi@gmail.com>
- Akhil <akhil@e.email>
- Akhil Potukuchi <akhil.potukuchi@gmail.com>
- Alan Meeson <alan@carefullycalculated.co.uk>
- Aldo "xoen" Giambelluca <xoen@xoen.org>
- Alecks Gates <alecks.g@gmail.com>
- Alejandro Varela <epma01@gmail.com>
- Alex Harpin <development@landsofshadow.co.uk>
- Alex Weirig <alex.weirig@technolink.lu>
- Alexander A. Klimov <grandmaster@al2klimov.de>
- Alexander Bergolth <leo@strike.wu.ac.at>
- Alexander F <32201363+alx-tuilmenau@users.noreply.github.com>
- Alexey Pyltsyn <lex61rus@gmail.com>
- Allan Nordhøy <epost@anotheragency.no>
- Anderson Luiz Alves <alacn1@gmail.com>
- Andreas Fischer <bantu@owncloud.com>
- Andreas Pflug <dev@admin4.org>
- Andrew Brown <andrew@casabrown.com>
- Andy Xheli <axheli@axtsolutions.com>
- André Gaul <gaul@web-yard.de>
- Anna Larch <anna@nextcloud.com>
- ArcticFall <23174635+ArcticFall@users.noreply.github.com>
- Ardinis <Ardinis@users.noreply.github.com>
- Ari Selseng <ari@selseng.net>
- Arne Hamann <kontakt+github@arne.email>
- Artem Kochnev <MrJeos@gmail.com>
- Artem Sidorenko <artem@posteo.de>
- Arthur Schiwon <blizzz@arthur-schiwon.de>
- Artur Neumann <artur@jankaritech.com>
- Artur Neumann <info@individual-it.net>
- Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Asier Iturralde Sarasola <asier.iturralde@gmail.com>
- Avior <florian.bouillon@delta-wings.net>
- Axel Helmert <axel.helmert@luka.de>
- Azul <azul@riseup.net>
- Bart Visscher <bartv@thisnet.nl>
@@ -43,19 +36,13 @@ Nextcloud is written by:
- Bastien Ho <bastienho@urbancube.fr>
- Benjamin Diele <benjamin@diele.be>
- Benjamin Liles <benliles@arch.tamu.edu>
- Bennet Becker <bbecker@pks.mpg.de>
- Bennet Becker <dev@bennet.cc>
- Bernard Spil <Sp1l@users.noreply.github.com>
- Bernd Rederlechner <Bernd.Rederlechner@t-systems.com>
- Bernd Stellwag <burned@zerties.org>
- Bernhard Ostertag <bernieo.code@gmx.de>
- Bernhard Posselt <dev@bernhard-posselt.com>
- Bernhard Reiter <ockham@raz.or.at>
- Bill McGonigle <bill-github.com@bfccomputing.com>
- Birk Borkason <daniel.niccoli@gmail.com>
- Bjoern Schiessle <bjoern@schiessle.org>
- Björn Schießle <bjoern@schiessle.org>
- Bjørn Forsman <bjorn.forsman@gmail.com>
- Blaok <i@blaok.me>
- Boris Rybalkin <ribalkin@gmail.com>
- Borjan Tchakaloff <borjan@tchakaloff.fr>
@@ -63,9 +50,7 @@ Nextcloud is written by:
- Brandon Kirsch <brandonkirsch@github.com>
- Branko Kokanovic <branko@kokanovic.org>
- Brice Maron <brice@bmaron.net>
- CRA Yoshihito Nakatani <yoshihito.nakatani@craftsman-software.com>
- Carl Csaposs <carl@csaposs.com>
- Carl Schwan <carl@carlschwan.eu>
- Byron Marohn <combustible@live.com>
- Carla Schroder <carla@owncloud.com>
- Carlos Cerrillo <ccerrillo@gmail.com>
- Carlos Ferreira <carlos@reendex.com>
@@ -75,47 +60,37 @@ Nextcloud is written by:
- Christian Berendt <berendt@b1-systems.de>
- Christian Jürges <christian@eqipe.ch>
- Christian Kampka <christian@kampka.net>
- Christian Oliff <christianoliff@yahoo.com>
- Christian Weiske <cweiske@cweiske.de>
- Christoph Schaefer "christophł@wolkesicher.de"
- Christoph Seitz <christoph.seitz@posteo.de>
- Christoph Wickert <cwickert@suse.de>
- Christoph Wurst <christoph@winzerhof-wurst.at>
- Christopher Bartz <bartz@dkrz.de>
- Christopher Ng <chrng8@gmail.com>
- Christopher Schäpers <kondou@ts.unde.re>
- Christopher T. Johnson <ctjctj@gmail.com>
- Claas Augner <github@caugner.de>
- Clark Tomlinson <fallen013@gmail.com>
- Claus-Justus Heine <himself@claus-justus-heine.de>
- Clement Wong <git@clement.hk>
- Cornelius Kölbel <cornelius.koelbel@netknights.it>
- Cyrille Bollu <cyrpub@bollu.be>
- Cédric Neukom <github@webguy.ch>
- Côme Chilliet <91878298+come-nc@users.noreply.github.com>
- Côme Chilliet <come.chilliet@nextcloud.com>
- Cthulhux <git@tuxproject.de>
- Damjan Georgievski <gdamjan@gmail.com>
- Dan Callahan <dan.callahan@gmail.com>
- Daniel <mail@danielkesselberg.de>
- Daniel Calviño Sánchez <danxuliu@gmail.com>
- Daniel Hansson <daniel@techandme.se>
- Daniel Jagszent <daniel@jagszent.de>
- Daniel Kesselberg <mail@danielkesselberg.de>
- Daniel Rudolf <github.com@daniel-rudolf.de>
- Daniel Schneider <daniel@schneidoa.de>
- Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
- Dariusz Olszewski <starypatyk@users.noreply.github.com>
- David <37280718+yeyulantu@users.noreply.github.com>
- David Prévot <taffit@debian.org>
- David Toledo <dtoledo@solidgear.es>
- Denis Mosolov <denismosolov@gmail.com>
- Derek <derek.kelly27@gmail.com>
- Dominik Schmidt <dev@dominik-schmidt.de>
- Donquixote <marjunebatac@gmail.com>
- Dries Mys <dries.mys@my-dreams.be>
- EWouters <6179932+EWouters@users.noreply.github.com>
- Elijah Martin-Merrill <elijah@nyp-itsours.com>
- Ember 'n0emis' Keske <git@n0emis.eu>
- Eric Masseran <rico.masseran@gmail.com>
- Erik van Velzen <erik@evanv.nl>
- Evgeny Golyshev <eugulixes@gmail.com>
- Fabrizio Steiner <fabrizio.steiner@gmail.com>
- Felix Epp <work@felixepp.de>
@@ -124,38 +99,29 @@ Nextcloud is written by:
- Felix Nieuwenhuizen <felix@tdlrali.com>
- Felix Nüsse <Felix.nuesse@t-online.de>
- Felix Rupp <github@felixrupp.com>
- Ferdinand Thiessen <opensource@fthiessen.de>
- Ferdinand Thiessen <rpm@fthiessen.de>
- Filis Futsarov <filisko@users.noreply.github.com>
- Florent <florent@coppint.com>
- Florian Schunk <florian.schunk@rwth-aachen.de>
- Florin Peter <github@florin-peter.de>
- Flávio Gomes da Silva Lisboa <flavio.lisboa@serpro.gov.br>
- Frank Isemann <frank@isemann.name>
- Frank Karlitschek <frank@karlitschek.de>
- François Freitag <mail@franek.fr>
- François Kubler <francois@kubler.org>
- François Ménabé <francois.menabe@gmail.com>
- Frederic Werner <frederic-github@werner-net.work>
- Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
- Gary Kim <gary@garykim.dev>
- Georg Ehrke <oc.list@georgehrke.com>
- Git'Fellow <12234510+solracsf@users.noreply.github.com>
- Git'Fellow <carlos@reendex.com>
- Glandos <bugs-github@antipoul.fr>
- GrayFix <grayfix@gmail.com>
- Greta Doci <gretadoci@gmail.com>
- GretaD <gretadoci@gmail.com>
- Guillaume COMPAGNON <gcompagnon@outlook.com>
- Guillaume Colson <guillaume.colson@univ-lorraine.fr>
- Guillaume Virlet <github@virlet.org>
- Hasso Tepper <hasso@zone.ee>
- Hemanth Kumar Veeranki <hems.india1997@gmail.com>
- Hendrik Leppelsack <hendrik@leppelsack.de>
- Hinrich Mahler <22366557+Bibo-Joshi@users.noreply.github.com>
- Holger Hees <holger.hees@gmail.com>
- HouraisanNEET <HouraisanNEET@users.noreply.github.com>
- Ilja Neumann <ineumann@owncloud.com>
- Ilya Apasov <apasov@users.noreply.github.com>
- Immanuel Pasanec <immanuel.pasanec@compaso.de>
- Individual IT Services <info@individual-it.net>
- Iscle <albertiscle9@gmail.com>
- J0WI <J0WI@users.noreply.github.com>
@@ -163,15 +129,13 @@ Nextcloud is written by:
- Jacob Neplokh <me@jacobneplokh.com>
- Jakob Sack <mail@jakobsack.de>
- Jakub Onderka <ahoj@jakubonderka.cz>
- James Guo <i@ze3kr.com>
- James Letendre <James.Letendre@gmail.com>
- Jan C. Borchardt <hey@jancborchardt.net>
- Jan Messer <jan@mtec-studios.ch>
- Jan-Christoph Borchardt <hey@jancborchardt.net>
- Jan-Philipp Litza <jpl@plutex.de>
- Jan-Philipp Litza <jplitza@users.noreply.github.com>
- JanBartels <j.bartels@arcor.de>
- Janis Köhr <janis.koehr@novatec-gmbh.de>
- Jared Boone <jared.boone@gmail.com>
- Jarkko Lehtoranta <devel@jlranta.com>
- Jasper Weyne <jasperweyne@gmail.com>
- Jean-Louis Dupond <jean-louis@dupond.be>
- Jens-Christian Fischer <jens-christian.fischer@switch.ch>
- Jesús Macias <jmacias@solidgear.es>
@@ -186,31 +150,25 @@ Nextcloud is written by:
- Johannes Schlichenmaier <johannes@schlichenmaier.info>
- Johannes Willnecker <johannes@willnecker.com>
- John Molakvoæ <skjnldsv@protonmail.com>
- Jonas <jonas@freesources.org>
- Jonas Heinrich <heinrich@synyx.de>
- Jonas Meurer <jonas@freesources.org>
- Jonas Rittershofer <jotoeri@users.noreply.github.com>
- Jonas Sulzer <jonas@violoncello.ch>
- Jonny007-MKD <1-23-4-5@web.de>
- Jos Poortvliet <jos@opensuse.org>
- Jose Quinteiro <github@quinteiro.org>
- Josh Richards <josh.t.richards@gmail.com>
- Juan Pablo Villafañez <jvillafanez@solidgear.es>
- Juan Pablo Villafáñez <jvillafanez@solidgear.es>
- Julien Lutran <julien.lutran@corp.ovh.com>
- Julien Veyssier <eneiluj@posteo.net>
- Julien Veyssier <julien-nc@posteo.net>
- Julius Haertl <jus@bitgrid.net>
- Julius Härtl <jus@bitgrid.net>
- Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
- Jörn Friedrich Dreyer <jfd@butonic.de>
- KB7777 <k.burkowski@gmail.com>
- Kamil Domanski <kdomanski@kdemail.net>
- Karel Hink <info@karelhink.cz>
- Kawohl <john@owncloud.com>
- Kenneth Newwood <kenneth@newwood.name>
- Kevin Lanni <therealklanni@gmail.com>
- Kevin Ndung'u <kevgathuku@gmail.com>
- Kevin Niehage <k.niehage@syseleven.de>
- Kirill Popov <kirill.s.popov@gmail.com>
- Kim Brose <kim.brose@rwth-aachen.de>
- Klaas Freitag <freitag@owncloud.com>
- Knut Ahlers <knut@ahlers.me>
- Ko- <k.stoffelen@cs.ru.nl>
@@ -221,7 +179,7 @@ Nextcloud is written by:
- Lars Knickrehm <mail@lars-sh.de>
- Laurens Post <Crote@users.noreply.github.com>
- Laurens Post <lkpost@scept.re>
- Lee Garrett <lgarrett@rocketjump.eu>
- Lauris Binde <laurisb@users.noreply.github.com>
- Lennart Rosam <hello@takuto.de>
- Lennart Rosam <lennart.rosam@medien-systempartner.de>
- Leon Klingele <git@leonklingele.de>
@@ -231,22 +189,13 @@ Nextcloud is written by:
- Lionel Elie Mamane <lionel@mamane.lu>
- Loki3000 <github@labcms.ru>
- Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
- Lorenzo Tanganelli <35271287+tanganellilore@users.noreply.github.com>
- Louis <6653109+artonge@users.noreply.github.com>
- Louis Chemineau <louis@chmn.me>
- Loïc Hermann <loic.hermann@sciam.fr>
- Luka Trovic <luka@nextcloud.com>
- Lukas Reschke <lukas@statuscode.ch>
- Lukas Stabe <lukas@stabe.de>
- Luke Policinski <lpolicinski@gmail.com>
- Magnus Walbeck <mw@mwalbeck.org>
- Maksim Sukharev <antreesy.web@gmail.com>
- Marc Hefter <marchefter@gmail.com>
- Marc Hefter <marchefter@march42.net>
- Marcel Klehr <mklehr@gmx.net>
- Marcel Müller <marcel-mueller@gmx.de>
- Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de>
- Marco Ambrosini <marcoambrosini@pm.me>
- Marco Ziech <marco@ziech.net>
- Marin Treselj <marin@pixelipo.com>
- Mario Danic <mario@lovelyhq.com>
@@ -255,25 +204,19 @@ Nextcloud is written by:
- Marius David Wieschollek <git.public@mdns.eu>
- Markus Goetz <markus@woboq.com>
- Markus Staab <markus.staab@redaxo.de>
- Markus Zeller <git@markuszeller.com>
- MartB <mart.b@outlook.de>
- Martin Brugnara <martin@0x6d62.eu>
- Martin <github@diemattels.at>
- Martin Konrad <info@martin-konrad.net>
- Martin Konrad <konrad@frib.msu.edu>
- Martin Mattel <martin.mattel@diemattels.at>
- Marvin Thomas Rabe <mrabe@marvinrabe.de>
- Masaki Kawabata Neto <masaki.kawabata@gmail.com>
- MasterOfDeath <rinat.gumirov@mail.ru>
- Matthew Setter <matthew@matthewsetter.com>
- Matthieu Gallien <matthieu.gallien@nextcloud.com>
- Mattia Narducci <mattianarducci1@gmail.com>
- Max <max@nextcloud.com>
- Max Kovalenko <mxss1998@yandex.ru>
- Max Kunzelmann <maxdev@posteo.de>
- Maxence Lange <maxence@artificial-owl.com>
- Maxence Lange <maxence@nextcloud.com>
- Maxence Lange <maxence@pontapreta.net>
- Maxime Besson <maxime.besson@worteks.com>
- Maximilian Martin <maximilian_martin@gmx.de>
- Maxopoly <max@dermax.org>
- MichaIng <28480705+MichaIng@users.noreply.github.com>
- MichaIng <micha@dietpi.com>
@@ -281,51 +224,40 @@ Nextcloud is written by:
- Michael Göhler <somebody.here@gmx.de>
- Michael Jobst <mjobst+github@tecratech.de>
- Michael Jobst <mjobst@necls.com>
- Michael Kuhn <github@ikkoku.de>
- Michael Kuhn <michael@ikkoku.de>
- Michael Letzgus <www@chronos.michael-letzgus.de>
- Michael Roitzsch <reactorcontrol@icloud.com>
- Michael Weimann <mail@michael-weimann.eu>
- Michael Zamot <michael@zamot.io>
- Michał Węgrzynek <michal.wegrzynek@malloc.com.pl>
- Michiel de Jong <michiel@unhosted.org>
- Micke Nordin <kano@sunet.se>
- Mickey Knox <mickey@netfreaks.org>
- Miguel Prokop <miguel.prokop@vtu.com>
- Mikael Hammarin <mikael@try2.se>
- Mikael Nordin <mickenordin@users.noreply.github.com>
- Mikael Saarinen <mikaels@iki.fi>
- Mikhail Sazanov <m@sazanof.ru>
- Mitar <mitar.git@tnode.com>
- Mohammed Abdellatif <m.latief@gmail.com>
- Morris Jobke <hey@morrisjobke.de>
- Mátyás Jani <jzombi@gmail.com>
- Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
- Nazar Mokrynskyi <nazar@mokrynskyi.com>
- Nick Sweeting <git@sweeting.me>
- Nicolai Ehemann <en@enlightened.de>
- Nicolas Grekas <nicolas.grekas@gmail.com>
- Nicolas SIMIDE <2083596+dems54@users.noreply.github.com>
- Nils <git@to.nilsschnabel.de>
- Nils Wittenbrink <nilswittenbrink@web.de>
- Nina Pypchenko <22447785+nina-py@users.noreply.github.com>
- NoSleep82 <52562874+NoSleep82@users.noreply.github.com>
- Nmz <nemesiz@nmz.lt>
- Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in>
- Ole Ostergaard <ole.c.ostergaard@gmail.com>
- Ole Ostergaard <ole.ostergaard@knime.com>
- Oliver Kohl D.Sc. <oliver@kohl.bz>
- Oliver Wegner <void1976@gmail.com>
- Olivier Paroz <github@oparoz.com>
- Orzu Ionut <orzu.ionut@gmail.com>
- Owen Winkler <a_github@midnightcircus.com>
- Pascal de Bruijn <pmjdebruijn@pcode.nl>
- Patrick Paysant <patrick.paysant@linagora.com>
- Patrik Kernstock <info@pkern.at>
- Pauli Järvinen <pauli.jarvinen@gmail.com>
- Pavel Krasikov <klonishe@gmail.com>
- Pawel Boguslawski <pawel.boguslawski@ib.pl>
- Pellaeon Lin <nfsmwlin@gmail.com>
- Peter Kubica <peter@kubica.ch>
- Petre T <petre.tudor@dorkfarm.com>
- Phil Davis <phil.davis@inf.org>
- Philipp Kapfer <philipp.kapfer@gmx.at>
- Philipp Schaffrath <github@philipp.schaffrath.email>
@@ -337,7 +269,6 @@ Nextcloud is written by:
- Piotr M <mrow4a@yahoo.com>
- Piotr Mrowczynski <mrow4a@yahoo.com>
- Piotr Mrówczyński <mrow4a@yahoo.com>
- Pytal <24800714+Pytal@users.noreply.github.com>
- Qingping Hou <dave2008713@gmail.com>
- Raghu Nayyar <hey@raghunayyar.com>
- Ralph Krimmel <rkrimme1@gwdg.de>
@@ -348,10 +279,7 @@ Nextcloud is written by:
- RealRancor <fisch.666@gmx.de>
- Rello <Rello@users.noreply.github.com>
- Remco Brenninkmeijer <requist1@starmail.nl>
- Retidurc Silvernight <retidurc@silvernight.social>
- Richard Steinmetz <richard@steinmetz.cloud>
- Richard de Boer <github@tubul.net>
- Rid <rid@cylo.io>
- Rinat Gumirov <rinat.gumirov@mail.ru>
- Robert Dailey <rcdailey@gmail.com>
- Robin Appelman <robin@icewind.nl>
@@ -363,7 +291,6 @@ Nextcloud is written by:
- Romain Rivière <lecoyote@lecoyote.org>
- Roman Kreisel <mail@romankreisel.de>
- Ross Nicoll <jrn@jrn.me.uk>
- Rsplwe <i@rsplwe.com>
- Ruben Homs <ruben@homs.codes>
- RussellAult <RussellAult@users.noreply.github.com>
- Rémy Jacquin <remy@remyj.fr>
@@ -376,10 +303,11 @@ Nextcloud is written by:
- Sander Ruitenbeek <s.ruitenbeek@getgoing.nl>
- Sander Ruitenbeek <sander@grids.be>
- Sandro Lutz <sandro.lutz@temparus.ch>
- Sanpi <sanpi@homecomputing.fr>
- Sascha Sambale <mastixmc@gmail.com>
- Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
- Scott Dutton <exussum12@users.noreply.github.com>
- Scott Dutton <scott@exussum.co.uk>
- Scott Shambarger <devel@shambarger.net>
- Sean Comeau <sean@ftlnetworks.ca>
- Sean Molenaar <sean@seanmolenaar.eu>
- Sebastian Döll <sebastian.doell@libasys.de>
@@ -394,16 +322,10 @@ Nextcloud is written by:
- Sergey Shliakhov <husband.sergey@gmail.com>
- Sergio Bertolin <sbertolin@solidgear.es>
- Sergio Bertolín <sbertolin@solidgear.es>
- Sijmen Schoon <me@sijmenschoon.nl>
- Simon Könnecke <simonkoennecke@gmail.com>
- Simon L <szaimen@e.mail.de>
- Simon Leiner <simon@leiner.me>
- Simon Spannagel <simonspa@kth.se>
- Simounet <contact@simounet.net>
- Sjors van der Pluijm <sjors@desjors.nl>
- Stanimir Bozhilov <stanimir.bozhilov.1998@gmail.com>
- Stanimir Bozhilov <stanimir@audriga.com>
- Stefan <Stefan.Schilling@EXXETA.com>
- Stefan Rado <owncloud@sradonia.net>
- Stefan Schneider <stefan.schneider@squareweave.com.au>
- Stefan Weiberg <sweiberg@suse.com>
@@ -417,7 +339,6 @@ Nextcloud is written by:
- Sujith Haridasan <Sujith_Haridasan@mentor.com>
- Sujith Haridasan <sujith.h@gmail.com>
- Sven Strickroth <email@cs-ware.de>
- Sylvain <git@sylvain.dev>
- Sylvia van Os <sylvia@hackerchick.me>
- Tekhnee <info@tekhnee.org>
- Temtaime <temtaime@gmail.com>
@@ -436,7 +357,6 @@ Nextcloud is written by:
- Timo Förster <tfoerster@webfoersterei.de>
- Tobia De Koninck <LEDfan@users.noreply.github.com>
- Tobia De Koninck <tobia@ledfan.be>
- Tobias Assmann <tobias.assmann@ecsec.de>
- Tobias Kaminsky <tobias@kaminsky.me>
- Tobias Perschon <tobias@perschon.at>
- Tom Grant <TomG736@users.noreply.github.com>
@@ -444,42 +364,30 @@ Nextcloud is written by:
- Tomasz Grobelny <tomasz@grobelny.net>
- Tomasz Paluszkiewicz <tomasz.paluszkiewicz@gmail.com>
- Tor Lillqvist <tml@collabora.com>
- UmbrellaCodr <umbrella@biohazard.cc>
- Unknown <anpz.asutp@gmail.com>
- Unpublished <unpublished@gmx.net>
- Valdnet <47037905+Valdnet@users.noreply.github.com>
- Vanessa Pertsch <vanessa.pertsch@nextcloud.com>
- Varun Patil <radialapps@gmail.com>
- Varun Patil <varunpatil@ucla.edu>
- Victor Dubiniuk <dubiniuk@owncloud.com>
- Viktor Szépe <viktor@szepe.net>
- Vincent Chan <plus.vincchan@gmail.com>
- Vincent Petry <vincent@nextcloud.com>
- Vincent Van Houtte <vvh@aplusv.be>
- Vinicius Cubas Brand <vinicius@eita.org.br>
- Vitor Mattos <vitor@php.rio>
- Vlastimil Pecinka <pecinka@email.cz>
- Volkan Gezer <volkangezer@gmail.com>
- Volker <skydiablo@gmx.net>
- William <william.hak57@gmail.com>
- William Pain <pain.william@gmail.com>
- Xheni Myrtaj <myrtajxheni@gmail.com>
- Xuanwo <xuanwo@yunify.com>
- ZitronePlus <tobiasscharf92@gmail.com>
- acsfer <12234510+acsfer@users.noreply.github.com>
- acsfer <carlos@reendex.com>
- adrien <adrien.waksberg@believedigital.com>
- alanmeeson <alan@carefullycalculated.co.uk>
- aler9 <46489434+aler9@users.noreply.github.com>
- alexweirig <alex.weirig@technolink.lu>
- b108@volgograd "b108@volgograd"
- bbx-github <53237674+bbx-github@users.noreply.github.com>
- bladewing <lukas@ifflaender-family.de>
- bline <scottbeck@gmail.com>
- blizzz <blizzz@arthur-schiwon.de>
- brad2014 <brad2014@users.noreply.github.com>
- brumsel <brumsel@losecatcher.de>
- cahogan <caitlin.hogan@swiftsolar.com>
- call-me-matt <nextcloud@matthiasheinisch.de>
- castillo92 <37965565+castillo92@users.noreply.github.com>
- cetra3 <peter@parashift.com.au>
@@ -492,32 +400,27 @@ Nextcloud is written by:
- duritong <peter.meier+github@immerda.ch>
- eduardo <eduardo@vnexu.net>
- eleith <online+github@eleith.com>
- enoch <lanxenet@hotmail.com>
- essys <essys@users.noreply.github.com>
- exner104 <59639860+exner104@users.noreply.github.com>
- fabian <fabian@web2.0-apps.de>
- felixboehm <felix@webhippie.de>
- fenn-cs <fenn25.fn@gmail.com>
- fnuesse <felix.nuesse@t-online.de>
- fnuesse <fnuesse@techfak.uni-bielefeld.de>
- greta <gretadoci@gmail.com>
- helix84 <helix84@centrum.sk>
- hkjolhede <hkjolhede@gmail.com>
- hoellen <dev@hoellen.eu>
- howardZa <33491519+howardZa@users.noreply.github.com>
- ideaship <ideaship@users.noreply.github.com>
- j-ed <juergen@eisfair.org>
- j3l11234 <297259024@qq.com>
- jaltek <jaltek@mailbox.org>
- jknockaert <jasper@knockaert.nl>
- jld3103 <jld3103yt@gmail.com>
- josh4trunks <joshruehlig@gmail.com>
- julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
- karakayasemi <karakayasemi@itu.edu.tr>
- kevin147147 <kevintamool@gmail.com>
- korelstar <korelstar@users.noreply.github.com>
- leith abdulla <online-nextcloud@eleith.com>
- lui87kw <lukas.ifflaender@uni-wuerzburg.de>
- luz paz <luzpaz@github.com>
- luz paz <luzpaz@pm.me>
- lynn-stephenson <lynn.stephenson@protonmail.com>
- macjohnny <estebanmarin@gmx.ch>
- marco44 <cousinmarc@gmail.com>
@@ -528,6 +431,7 @@ Nextcloud is written by:
- michaelletzgus <michaelletzgus@users.noreply.github.com>
- michag86 <micha_g@arcor.de>
- mmccarn <mmccarn-github@mmsionline.us>
- nacho <nacho@ownyourbits.com>
- nhirokinet <nhirokinet@nhiroki.net>
- nik gaffney <nik@fo.am>
- nishiki <nishiki@yaegashi.fr>
@@ -535,12 +439,9 @@ Nextcloud is written by:
- noveens <noveen.sachdeva@research.iiit.ac.in>
- npmbuildbot[bot] "npmbuildbot[bot]@users.noreply.github.com"
- onehappycat <one.happy.cat@gmx.com>
- oparoz <owncloud@interfasys.ch>
- phisch <git@philippschaffrath.de>
- pjft <pjft@users.noreply.github.com>
- plumbeo <plumbeo@users.noreply.github.com>
- rakekniven <2069590+rakekniven@users.noreply.github.com>
- rakekniven <mark.ziegler@rakekniven.de>
- raul <raul@nextcloud.com>
- robottod <83244577+robottod@users.noreply.github.com>
- root "root@oc.(none)"
- root <root@localhost.localdomain>
@@ -550,8 +451,6 @@ Nextcloud is written by:
- scolebrook <scolebrook@mac.com>
- shkdee <louis.traynard@m4x.org>
- simonspa <1677436+simonspa@users.noreply.github.com>
- smichel17 <git@smichel.me>
- sodimel <corentin@244466666.xyz>
- ste101 <stephan_bauer@gmx.de>
- sualko <klaus@jsxc.org>
- szaimen <szaimen@e.mail.de>
@@ -563,7 +462,6 @@ Nextcloud is written by:
- v1r0x <vinzenz.rosenkranz@gmail.com>
- voxsim "Simon Vocella"
- waleczny <michal@walczak.xyz>
- zorn-v <zorn7@yandex.ru>
- zulan <git@zulan.net>
- Łukasz Buśko <busko.lukasz@pm.me>
-24
View File
@@ -1,24 +0,0 @@
# Nextcloud Design contribution guidelines
## 👋 Welcome
At Nextcloud we want to make sure to have everything in place to enable designers to contribute making our apps universally accessible and easy to use.
## 🚢 How to contribute design
We have a dedicated page with more in-detail guidelines on our website:
https://nextcloud.com/design/
**TL;DR**
1. Check out open [issues](https://github.com/nextcloud/server/issues) here on GitHub (we label them with `design`)
2. Make sure create publicly accessible assets
3. Add your contributions to an issue and we promise we will review your contribution carefully and foster discussions
[This issue](https://github.com/nextcloud/desktop/issues/877) has examples of other apps, some simple mockups, and specifications about the design. In the discussions in the comments there are updates to the design as well.
[This pull request](https://github.com/nextcloud/desktop/pull/1565) by a developer has the implementation of that issue, the changes they made, and more design discussions and adjustments.
**We encourage you to:**
- Get in touch with the team by joining our [public Talk channel](https://cloud.nextcloud.com/call/gqff69i8)
+34 -2
View File
@@ -28,7 +28,39 @@ lint-fix-watch:
# Cleaning
clean:
rm -rf dist
rm -rf apps/accessibility/js/
rm -rf apps/comments/js/
rm -rf apps/dashboard/js/
rm -rf apps/dav/js/
rm -rf apps/files/js/dist/
rm -rf apps/files_sharing/js/dist/
rm -rf apps/files_trashbin/js/
rm -rf apps/files_versions/js/
rm -rf apps/oauth2/js/
rm -rf apps/settings/js/vue-*
rm -rf apps/systemtags/js/systemtags.*
rm -rf apps/twofactor_backupcodes/js
rm -rf apps/updatenotification/js/updatenotification.*
rm -rf apps/user_status/js/
rm -rf apps/weather_status/js/
rm -rf apps/workflowengine/js/
rm -rf core/js/dist
clean-git: clean
git checkout -- dist
git checkout -- apps/accessibility/js/
git checkout -- apps/comments/js/
git checkout -- apps/dashboard/js/
git checkout -- apps/dav/js/
git checkout -- apps/files/js/dist/
git checkout -- apps/files_sharing/js/dist/
git checkout -- apps/files_trashbin/js/
git checkout -- apps/files_versions/js/
git checkout -- apps/oauth2/js/
git checkout -- apps/settings/js/vue-*
git checkout -- apps/systemtags/js/systemtags.*
git checkout -- apps/twofactor_backupcodes/js
git checkout -- apps/updatenotification/js/updatenotification.*
git checkout -- apps/user_status/js/
git checkout -- apps/weather_status/js/
git checkout -- apps/workflowengine/js/
git checkout -- core/js/dist
+16 -35
View File
@@ -1,27 +1,26 @@
# Nextcloud Server ☁
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=stable23)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=stable23)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/stable23/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209)
[![Design](https://contribute.design/api/shield/nextcloud/server)](https://contribute.design/nextcloud/server)
**A safe home for all your data.**
![](https://raw.githubusercontent.com/nextcloud/screenshots/master/nextcloud-hub-files-25-preview.png)
![](https://raw.githubusercontent.com/nextcloud/screenshots/master/files/Files%20Sharing.png)
## Why is this so awesome? 🤩
* 📁 **Access your Data** You can store your files, contacts, calendars, and more on a server of your choosing.
* 🔄 **Sync your Data** You keep your files, contacts, calendars, and more synchronized amongst your devices.
* 📁 **Access your Data** You can store your files, contacts, calendars and more on a server of your choosing.
* 🔄 **Sync your Data** You keep your files, contacts, calendars and more synchronized amongst your devices.
* 🙌 **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with.
* 🚀 **Expandable with hundreds of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail), [Video Chat](https://github.com/nextcloud/spreed) and all those you can discover in our [App Store](https://apps.nextcloud.com)
* 🔒 **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentication.
Do you want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and in your organization? [**Learn about all our Features**](https://nextcloud.com/athome/).
You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your organization? [**Learn about all our Features**](https://nextcloud.com/athome/).
## Get your Nextcloud 🚚
- ☑️ [**Simply sign up**](https://nextcloud.com/signup/) at one of our providers either through our website or through the apps directly.
- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your hardware or by using one of our ready to use **appliances**
- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your own hardware or by using one of our ready to use **appliances**
- 📦 Buy one of the [awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/)
- 🏢 Find a [service **provider**](https://nextcloud.com/providers/) who hosts Nextcloud for you or your company
@@ -39,7 +38,7 @@ You can also [get support for Nextcloud](https://nextcloud.com/support)!
## Join the team 👪
There are many ways to contribute, of which development is only one! Find out [how to get involved](https://nextcloud.com/contribute/), including as a translator, designer, tester, helping others, and much more! 😍
There are many ways to contribute, of which development is only one! Find out [how to get involved](https://nextcloud.com/contribute/), including as translator, designer, tester, helping others and much more! 😍
### Development setup 👩‍💻
@@ -48,7 +47,7 @@ There are many ways to contribute, of which development is only one! Find out [h
2. 🐛 [Pick a good first issue](https://github.com/nextcloud/server/labels/good%20first%20issue)
3. 👩‍🔧 Create a branch and make your changes. Remember to sign off your commits using `git commit -sm "Your commit message"`
4. ⬆ Create a [pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) and `@mention` the people from the issue to review
5. 👍 Fix things that come up during a review
5. 👍 Fix things that come up during review
6. 🎉 Wait for it to get merged!
Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking `git submodule update --init` or a similar command is needed, for details see Git documentation.
@@ -59,9 +58,9 @@ Otherwise, git checkouts can be handled the same as release archives, by using t
### Working with front-end code 🏗
#### Building Vue components and scripts
#### Building
We are moving more and more toward using Vue.js in the front-end, starting with Settings. For building the code on changes, use these terminal commands in the root folder:
We are moving more and more towards using Vue.js in the frontend, starting with Settings. For building the code on changes, use these terminal commands in the root folder:
```bash
# install dependencies
@@ -77,26 +76,11 @@ make watch-js
make build-js-production
```
#### Building styles
Styles are written in SCSS and compiled to css.
```bash
# install dependencies
make dev-setup
# compile style sheets
npm run sass
# compile style sheets and watch edits
npm run sass:watch
```
#### Committing changes
**When making changes, also commit the compiled files!**
We still use Handlebars templates in some places in Files and Settings. We will replace these step-by-step with Vue.js, but in the meantime, you need to compile them separately.
We still use Handlebars templates some places in Files and Settings. We will replace these step-by-step with Vue.js, but in the meantime you need to compile them separately.
If you dont have Handlebars installed yet, you can do it with this terminal command:
```bash
@@ -123,7 +107,7 @@ Please note that if you used `make build-js` or `make watch-js` before, you'll n
### Working with back-end code 🏗
When changing back-end PHP code, in general, no additional steps are needed before checking in.
When changing back-end PHP code, in general no additional steps are needed before checking in.
However, if new files were created, you will need to run the following command to update the autoloader files:
```bash
@@ -136,20 +120,17 @@ After that, please also include the autoloader file changes in your commits.
- [👀 BrowserStack](https://browserstack.com) for cross-browser testing
- [🌊 WAVE](https://wave.webaim.org/extension/) for accessibility testing
- [🚨 Lighthouse](https://developers.google.com/web/tools/lighthouse/) for testing performance, accessibility, and more
- [🚨 Lighthouse](https://developers.google.com/web/tools/lighthouse/) for testing of performance, accessibility and more
#### Helpful bots at github :robot:
- Comment on a pull request with `/update-3rdparty` to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target.
## Contribution guidelines 📜
All contributions to this repository from June 16, 2016, and onward are considered to be
All contributions to this repository from June, 16 2016 on are considered to be
licensed under the AGPLv3 or any later version.
Nextcloud doesn't require a CLA (Contributor License Agreement).
The copyright belongs to all the individual contributors. Therefore we recommend
that every contributor adds the following line to the header of a file if they
that every contributor adds following line to the header of a file, if they
changed it substantially:
```
-34
View File
@@ -1,34 +0,0 @@
/**
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* 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/>.
*
*/
export const getCurrentUser = function() {
return {
uid: 'test',
displayName: 'Test',
isAdmin: false,
}
}
export const getRequestToken = function() {
return 'test-token-1234'
}
export const onRequestTokenUpdate = function() {}
-26
View File
@@ -1,26 +0,0 @@
/**
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* 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/>.
*
*/
export default {
get: async () => ({ status: 200, data: {} }),
delete: async () => ({ status: 200, data: {} }),
post: async () => ({ status: 200, data: {} }),
}
-30
View File
@@ -1,30 +0,0 @@
/**
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* 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 { jest } from '@jest/globals'
export const showMessage = jest.fn()
export const showSuccess = jest.fn()
export const showWarning = jest.fn()
export const showInfo = jest.fn()
export const showError = jest.fn()
export const showUndo = jest.fn()
-25
View File
@@ -1,25 +0,0 @@
/**
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* 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/>.
*
*/
export const loadState = function(app: string, key: string, fallback?: any) {
return fallback
}
-22
View File
@@ -1,22 +0,0 @@
/**
* @copyright Copyright (c) 2023 Lucas Azevedo <lhs_azevedo@hotmail.com>
*
* @author Lucas Azevedo <lhs_azevedo@hotmail.com>
*
* @license AGPL-3.0-or-later
*
* 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/>.
*
*/
export default {}
-22
View File
@@ -1,22 +0,0 @@
/**
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* 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/>.
*
*/
export default '<svg>SvgMock</svg>'
-27
View File
@@ -1,27 +0,0 @@
/**
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* 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/>.
*
*/
export const createClient = () => {}
export const getPatcher = () => {
return {
patch: () => {}
}
}
-29
View File
@@ -1,29 +0,0 @@
/**
* @copyright 2021 François Freitag <mail@franek.fr>
*
* @author François Freitag <mail@franek.fr>
*
* @license AGPL-3.0-or-later
*
* 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 '@testing-library/jest-dom'
// Mock `window.location` with Jest spies and extend expect
import 'jest-location-mock'
// Mock `window.fetch` with Jest
import 'jest-fetch-mock'
-6
View File
@@ -1,6 +0,0 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"verbatimModuleSyntax": false
}
}
+9
View File
@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = tab
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
+12
View File
@@ -0,0 +1,12 @@
.DS_Store
node_modules/
dist/
npm-debug.log
yarn-error.log
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
+3
View File
@@ -0,0 +1,3 @@
{
"esversion": 6
}
+2
View File
@@ -0,0 +1,2 @@
# compiled vue templates
js/
+26
View File
@@ -0,0 +1,26 @@
all: dev-setup build-js-production
dev-setup: clean clean-dev npm-init
npm-init:
npm install
npm-update:
npm update
build-js:
npm run dev
build-js-production:
npm run build
watch-js:
npm run watch
clean:
rm -f js/accessibility.js
rm -f js/accessibility.js.map
clean-dev:
rm -rf node_modules
+22
View File
@@ -0,0 +1,22 @@
# Accessibility ♿
> This app provide multiple features to ease the use of nextcloud.
## Build Setup
``` bash
# install dependencies
make dev-setup
# build for development
make build-js
# build for development and watch edits
make watch-js
# build for production with minification
make build-js-production
# clean output files
make clean
```
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>accessibility</id>
<name>Accessibility</name>
<summary>Accessibility options for nextcloud</summary>
<description><![CDATA[Provides multiple accessibilities options to ease your use of Nextcloud]]></description>
<version>1.9.0</version>
<licence>agpl</licence>
<author>John Molakvoæ</author>
<namespace>Accessibility</namespace>
<default_enable/>
<category>customization</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="23" max-version="23"/>
</dependencies>
<repair-steps>
<pre-migration>
<step>OCA\Accessibility\Migration\RepairUserConfig</step>
</pre-migration>
</repair-steps>
<settings>
<personal>OCA\Accessibility\Settings\Personal</personal>
<personal-section>OCA\Accessibility\Settings\PersonalSection</personal-section>
</settings>
</info>
+47
View File
@@ -0,0 +1,47 @@
<?php
/**
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author Alexey Pyltsyn <lex61rus@gmail.com>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*/
return [
'routes' => [
['name' => 'accessibility#getCss', 'url' => '/css/user-{md5}', 'verb' => 'GET'],
],
'ocs' => [
[
'name' => 'Config#getConfig',
'url' => '/api/v1/config',
'verb' => 'GET',
],
[
'name' => 'Config#setConfig',
'url' => '/api/v1/config/{key}',
'verb' => 'PUT',
],
[
'name' => 'Config#deleteConfig',
'url' => '/api/v1/config/{key}',
'verb' => 'DELETE',
],
]
];
+7
View File
@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitAccessibility::getLoader();
+13
View File
@@ -0,0 +1,13 @@
{
"config" : {
"vendor-dir": ".",
"optimize-autoloader": true,
"classmap-authoritative": true,
"autoloader-suffix": "Accessibility"
},
"autoload" : {
"psr-4": {
"OCA\\Accessibility\\": "../lib/"
}
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "d751713988987e9331980363e24189ce",
"packages": [],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
"plugin-api-version": "2.1.0"
}
@@ -0,0 +1,572 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
/** @var ?string */
private $vendorDir;
// PSR-4
/**
* @var array[]
* @psalm-var array<string, array<string, int>>
*/
private $prefixLengthsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, array<int, string>>
*/
private $prefixDirsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr4 = array();
// PSR-0
/**
* @var array[]
* @psalm-var array<string, array<string, string[]>>
*/
private $prefixesPsr0 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr0 = array();
/** @var bool */
private $useIncludePath = false;
/**
* @var string[]
* @psalm-var array<string, string>
*/
private $classMap = array();
/** @var bool */
private $classMapAuthoritative = false;
/**
* @var bool[]
* @psalm-var array<string, bool>
*/
private $missingClasses = array();
/** @var ?string */
private $apcuPrefix;
/**
* @var self[]
*/
private static $registeredLoaders = array();
/**
* @param ?string $vendorDir
*/
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
/**
* @return string[]
*/
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
/**
* @return array[]
* @psalm-return array<string, array<int, string>>
*/
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
/**
* @return string[] Array of classname => path
* @psalm-var array<string, string>
*/
public function getClassMap()
{
return $this->classMap;
}
/**
* @param string[] $classMap Class to filename map
* @psalm-param array<string, string> $classMap
*
* @return void
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*
* @return void
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 base directories
*
* @return void
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*
* @return void
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*
* @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*
* @return void
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*
* @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
* Unregisters this instance as an autoloader.
*
* @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
/**
* @param string $class
* @param string $ext
* @return string|false
*/
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
* @private
*/
function includeFile($file)
{
include $file;
}
@@ -0,0 +1,350 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer;
use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
/**
* This class is copied in every Composer installed project and available to all
*
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
*
* To require its presence, you can require `composer-runtime-api ^2.0`
*/
class InstalledVersions
{
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
*/
private static $installed;
/**
* @var bool|null
*/
private static $canGetVendors;
/**
* @var array[]
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/
private static $installedByVendor = array();
/**
* Returns a list of all package names which are present, either by being installed, replaced or provided
*
* @return string[]
* @psalm-return list<string>
*/
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
/**
* Returns a list of all package names with a specific type e.g. 'library'
*
* @param string $type
* @return string[]
* @psalm-return list<string>
*/
public static function getInstalledPackagesByType($type)
{
$packagesByType = array();
foreach (self::getInstalled() as $installed) {
foreach ($installed['versions'] as $name => $package) {
if (isset($package['type']) && $package['type'] === $type) {
$packagesByType[] = $name;
}
}
}
return $packagesByType;
}
/**
* Checks whether the given package is installed
*
* This also returns true if the package name is provided or replaced by another package
*
* @param string $packageName
* @param bool $includeDevRequirements
* @return bool
*/
public static function isInstalled($packageName, $includeDevRequirements = true)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
}
}
return false;
}
/**
* Checks whether the given package satisfies a version constraint
*
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
*
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
*
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
* @param string $packageName
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
* @return bool
*/
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
/**
* Returns a version constraint representing all the range(s) which are installed for a given package
*
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
* whether a given version of a package is installed, and not just whether it exists
*
* @param string $packageName
* @return string Version constraint usable with composer/semver
*/
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
*/
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
*/
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
*/
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
*/
public static function getInstallPath($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
/**
* @return array
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
*/
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
/**
* Returns the raw installed.php data for custom implementations
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
*/
public static function getRawData()
{
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
self::$installed = include __DIR__ . '/installed.php';
} else {
self::$installed = array();
}
}
return self::$installed;
}
/**
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/
public static function getAllRawData()
{
return self::getInstalled();
}
/**
* Lets you reload the static array from another file
*
* This is only useful for complex integrations in which a project needs to use
* this class but then also needs to execute another project's autoloader in process,
* and wants to ensure both projects have access to their version of installed.php.
*
* A typical case would be PHPUnit, where it would need to make sure it reads all
* the data it needs from this class, then call reload() with
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
* the project in which it runs can then also use this class safely, without
* interference between PHPUnit's dependencies and the project's dependencies.
*
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
*/
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
/**
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
*/
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
}
}
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
self::$installed = require __DIR__ . '/installed.php';
} else {
self::$installed = array();
}
}
$installed[] = self::$installed;
return $installed;
}
}
@@ -0,0 +1,18 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'OCA\\Accessibility\\AccessibilityProvider' => $baseDir . '/../lib/AccessibilityProvider.php',
'OCA\\Accessibility\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
'OCA\\Accessibility\\Controller\\AccessibilityController' => $baseDir . '/../lib/Controller/AccessibilityController.php',
'OCA\\Accessibility\\Controller\\ConfigController' => $baseDir . '/../lib/Controller/ConfigController.php',
'OCA\\Accessibility\\Migration\\RepairUserConfig' => $baseDir . '/../lib/Migration/RepairUserConfig.php',
'OCA\\Accessibility\\Service\\JSDataService' => $baseDir . '/../lib/Service/JSDataService.php',
'OCA\\Accessibility\\Settings\\Personal' => $baseDir . '/../lib/Settings/Personal.php',
'OCA\\Accessibility\\Settings\\PersonalSection' => $baseDir . '/../lib/Settings/PersonalSection.php',
);
@@ -0,0 +1,9 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
);
@@ -0,0 +1,10 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = $vendorDir;
return array(
'OCA\\Accessibility\\' => array($baseDir . '/../lib'),
);
@@ -0,0 +1,46 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitAccessibility
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitAccessibility', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitAccessibility', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitAccessibility::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->setClassMapAuthoritative(true);
$loader->register(true);
return $loader;
}
}
@@ -0,0 +1,44 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInitAccessibility
{
public static $prefixLengthsPsr4 = array (
'O' =>
array (
'OCA\\Accessibility\\' => 18,
),
);
public static $prefixDirsPsr4 = array (
'OCA\\Accessibility\\' =>
array (
0 => __DIR__ . '/..' . '/../lib',
),
);
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'OCA\\Accessibility\\AccessibilityProvider' => __DIR__ . '/..' . '/../lib/AccessibilityProvider.php',
'OCA\\Accessibility\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
'OCA\\Accessibility\\Controller\\AccessibilityController' => __DIR__ . '/..' . '/../lib/Controller/AccessibilityController.php',
'OCA\\Accessibility\\Controller\\ConfigController' => __DIR__ . '/..' . '/../lib/Controller/ConfigController.php',
'OCA\\Accessibility\\Migration\\RepairUserConfig' => __DIR__ . '/..' . '/../lib/Migration/RepairUserConfig.php',
'OCA\\Accessibility\\Service\\JSDataService' => __DIR__ . '/..' . '/../lib/Service/JSDataService.php',
'OCA\\Accessibility\\Settings\\Personal' => __DIR__ . '/..' . '/../lib/Settings/Personal.php',
'OCA\\Accessibility\\Settings\\PersonalSection' => __DIR__ . '/..' . '/../lib/Settings/PersonalSection.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitAccessibility::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitAccessibility::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitAccessibility::$classMap;
}, null, ClassLoader::class);
}
}
@@ -0,0 +1,23 @@
<?php return array(
'root' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'name' => '__root__',
'dev' => false,
),
'versions' => array(
'__root__' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'dev_requirement' => false,
),
),
);
+112
View File
@@ -0,0 +1,112 @@
// SCSS variables
$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-placeholder-light: lighten($color-main-background, 10%);
$color-placeholder-dark: lighten($color-main-background, 20%);
$color-text-maxcontrast: darken($color-main-text, 30%);
$color-text-light: darken($color-main-text, 10%);
$color-text-lighter: darken($color-main-text, 20%);
$color-loading-light: #777;
$color-loading-dark: #ccc;
$color-box-shadow: transparentize(darken($color-main-background, 70%), 0.5);
$color-border: lighten($color-main-background, 7%);
$color-border-dark: lighten($color-main-background, 14%);
$image-logo: url('../../../core/img/logo/logo.svg?v=1');
$image-logoheader: url('../../../core/img/logo/logo.svg?v=1');
#app-navigation > ul > li > a:first-child,
#app-navigation > ul > li > ul > li > a:first-child,
#contactsmenu-menu a,
#expanddiv a,
.activity-section .activity-icon.monochrome {
& > img,
:not(.avatardiv) > img {
filter: invert(100%);
}
}
#navigation #apps li a,
#body-settings #content-vue.app-settings .app-image-icon,
#body-settings #content-vue.app-settings #app-sidebar #app-details-view h2 {
svg {
filter: invert(100%);
}
}
// Otherwise icon-more gets inverted via function
#appmenu .icon-more-white {
filter: invert(100%);
}
// since svg icons are inverted, revert to white for the header
.header-right > * {
>[class^='icon-'] {
filter: invert(100%);
}
}
.bubble,
.app-navigation-entry-menu,
.popovermenu,
.popover__menu {
li {
> button,
> a,
> .menuitem, > .popover__menuitem {
> img {
filter: invert(100%);
}
}
}
}
.bubble,
.app-navigation-entry-menu,
.popovermenu,
#header .menu {
border: 1px solid var(--color-border);
}
.popover[x-placement^='top'] .popover__arrow {
border-top-color: var(--color-border);
}
.popover[x-placement^='bottom'] .popover__arrow {
border-bottom-color: var(--color-border);
}
.popover[x-placement^='left'] .popover__arrow {
border-left-color: var(--color-border);
}
.popover[x-placement^='right'] .popover__arrow {
border-right-color: var(--color-border);
}
.popover .popover__inner {
border: 1px solid var(--color-border);
}
// Prevent slideshow icons from going dark
#slideshow {
[class^='icon-'], [class*=' icon-']{
filter: invert(100%);
}
}
input[type=checkbox] {
&.checkbox {
&:checked + label:before {
background-image: url('../../../core/img/actions/checkbox-mark-dark.svg');
}
&:indeterminate + label:before {
background-image: url('../../../core/img/actions/checkbox-mixed-dark.svg');
}
}
}
+18
View File
@@ -0,0 +1,18 @@
@font-face {
font-family: 'OpenDyslexic';
font-style: normal;
font-weight: 400;
src: url('../fonts/OpenDyslexic-Regular.woff') format('woff');
}
@font-face {
font-family: 'OpenDyslexic';
font-style: normal;
font-weight: 700;
src: url('../fonts/OpenDyslexic-Bold.woff') format('woff');
}
$font-face: OpenDyslexic, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', Arial, 'Noto Color Emoji', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
$image-logo: url('../../../core/img/logo/logo.svg?v=1');
$image-logoheader: url('../../../core/img/logo/logo.svg?v=1');
+31
View File
@@ -0,0 +1,31 @@
// SCSS variables
$color-main-text: #000;
$color-main-background: #fff;
$color-background-dark: darken($color-main-background, 30%);
$color-background-darker: darken($color-main-background, 30%);
$color-placeholder-light: darken($color-main-background, 30%);
$color-placeholder-dark: darken($color-main-background, 45%);
$color-text-maxcontrast: $color-main-text;
$color-text-light: $color-main-text;
$color-text-lighter: $color-main-text;
$color-loading-light: #ddd;
$color-loading-dark: #000;
$color-box-shadow: $color-main-text;
$color-border: darken($color-main-background, 50%);
$color-border-dark: darken($color-main-background, 50%);
$image-logo: url('../../../core/img/logo/logo.svg?v=1');
$image-logoheader: url('../../../core/img/logo/logo.svg?v=1');
[class^='icon-'], [class*=' icon-'],
.action,
#appmenu li a,
.menutoggle {
opacity: 1 !important;
}
@@ -0,0 +1,25 @@
// SCSS variables
$color-main-text: #fff;
$color-main-background: #000;
$color-background-dark: lighten($color-main-background, 30%);
$color-background-darker: lighten($color-main-background, 30%);
$color-text-maxcontrast: $color-main-text;
$color-text-light: $color-main-text;
$color-text-lighter: $color-main-text;
$color-loading-light: #000;
$color-loading-dark: #ddd;
$color-box-shadow: $color-main-text;
$color-border: lighten($color-main-background, 50%);
$color-border-dark: lighten($color-main-background, 50%);
[class^='icon-'], [class*=' icon-'],
.action,
#appmenu li a,
.menutoggle {
opacity: 1 !important;
}
+73
View File
@@ -0,0 +1,73 @@
// Rules we could port to the rest of Nextcloud too
// Proper highlight for links and focus feedback
#accessibility a {
font-weight: bold;
&:hover,
&:focus {
text-decoration: underline;
}
}
// Highlight checkbox label in bold for focus feedback
// Drawback: Text width increases a bit
#accessibility .checkbox:focus + label {
font-weight: bold;
}
// Limit width of settings sections for readability
#accessibility.section p {
max-width: 800px;
}
// End of rules we could port to rest of Nextcloud
.preview-list {
display: flex;
flex-direction: column;
max-width: 800px;
}
.preview {
display: flex;
justify-content: flex-start;
margin-top: 3em;
position: relative;
&,
* {
user-select: none;
}
.preview-image {
flex-basis: 200px;
flex-shrink: 0;
margin-right: 1em;
background-position: top left;
background-size: cover;
background-repeat: no-repeat;
border-radius: var(--border-radius);
}
.preview-description {
display: flex;
flex-direction: column;
label {
padding: 12px 0;
}
}
}
@media (max-width: ($breakpoint-mobile / 2)) {
.app-settings #accessibility .preview-list .preview {
display: unset;
.preview-image {
height: 150px;
}
}
}
Binary file not shown.
Binary file not shown.

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