Commit Graph

284 Commits

Author SHA1 Message Date
Ferdinand Thiessen
f0e020f97d fix(template): add import map for JS module entry points
Currently apps are broken if they have exports in the JS entry point,
because they then will import from the entry point but because they do
not know about the Nextcloud cache buster they will import without cache
buster.

This results in two problem:
1. The module might be outdated (old cached)
2. The module is duplicated, so the module will be loaded twice and will
   have two different - out of sync - states. This also means it will
   re-run sideeffects of the entry point.

To fix this we generate an import map which basically maps the plain
entry point script to the script with cache buster added.

(Some background: Bundler will try to minimize chunks (reduce page
loading time) so they can inline modules into entry points and thus
extend the entry point exports and then this issue would be caused).

For example:
```js
// entry.mjs
console.error('called')

async function onClick() {
  await import('./chunk.mjs')
}

export const name = 'foo'

// chunk.mjs
import { name } from './entry.mjs'

console.error(name)
```

When calling `onClick` without this fix the output will be:
> called
> called
> foo

With this fix:
> called
> foo

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-12 13:34:11 +01:00
Thomas Citharel
8482302e42 fix(lib): include headers from OC\Template\Template as well in produced HTML
Otherwise we only take those added through deprecated method C_Util::addHeader, not those of
OC\Template\Template::addHeader, which does nothing

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-12-16 23:01:38 +01:00
Ferdinand Thiessen
ab551c4c8a chore(Template): allow styles from dist folder
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 14:57:47 +02:00
Côme Chilliet
bdff12361c fix: Cleanup and fix tests, and fix related issues in code
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-30 11:53:59 +02:00
Côme Chilliet
c6d148344a chore: Fix the last psalm issues in lib/private/Template
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-29 12:32:26 +02:00
Côme Chilliet
73447618e7 chore: Run rector on lib/private/Template folder and cleanup more typing
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-29 12:23:37 +02:00
Côme Chilliet
b58b3750a7 chore: Cleanup typing and deprecated method calls in resource locators
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-29 12:10:56 +02:00
Ferdinand Thiessen
3b8c50e2c7 fix: remove executable flag from source files
(exceptions for real scripts, but source files never should be executable)

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-04 11:57:44 +02:00
Maxence Lange
6076b67696 feat(preset): share link expiration date
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-14 16:07:32 -01:00
Maxence Lange
cb84ccc57d feat(preset): share password protection
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-12 14:37:32 -01:00
Daniel Calviño Sánchez
03c76d86a6 fix: Do not show password dialog when user can not validate password
The password confirmation dialog is always shown unless the user backend
does not allow password confirmation. A user backend may explicitly
provide that information, but even if it does not that could have been
defined in the authentication token with
"IToken::SCOPE_SKIP_PASSWORD_VALIDATION" (for example, when "user_oidc"
is only used for authentication and user provision is done by another
user backend).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-07-18 20:55:02 +02:00
Ferdinand Thiessen
5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Robert Zenz
f428e6786b fix(JSResourceLocator) fix incorrect parameter being used. 2025-04-26 15:19:55 +02:00
zorn-v
d0658e85ea Check that user actually can validate password for js
Signed-off-by: zorn-v <zorn7@yandex.ru>
2025-04-16 16:06:11 +02:00
Côme Chilliet
59edcdc537 fix: Fix types for sharingDisabledForUser
and use the non-deprecated version whenever possible

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-07 17:36:24 +02:00
Côme Chilliet
b2100484c0 fix: Remove some call and references to deprecated OC_Util class
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-07 17:05:54 +02:00
Côme Chilliet
e467ea1c6a chore(legacy): Remove deprecated OC_Util::addScript and functions depending on it
Deprecated since 24, currently unused.
Sadly not all related functions were officially marked as deprecated,
 but all of them were unused.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-01 15:24:24 +02:00
Côme Chilliet
1ce593311b fix: Go back to soft typing for template function p
Strong typing breaks legacy code in this case.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-24 12:53:27 +01:00
Côme Chilliet
101b1f0eaf chore: cleanup human_file_size usage
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-20 10:54:50 +01:00
Côme Chilliet
e9046a0f24 fix: Remove obsolete component template function
HTML imports are not a thing anymore, they are not supported by any
 browser.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-20 10:54:50 +01:00
Côme Chilliet
13fe0f5612 fix: Clean up typing and remove deprecated calls in template functions
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-20 10:54:50 +01:00
Côme Chilliet
aac391d466 chore: Move template functions out of legacy folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-20 10:54:50 +01:00
Côme Chilliet
a83cae1a0e fix: Remove multiple require_once calls for template functions
Only require them when include the template file instead

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-20 10:54:50 +01:00
Côme Chilliet
b086f10028 fix: Use a dedicated Exception class for when a template is not found
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
f033ef7c18 fix: Migrate all uses of OCP\Template to OCP\Template\ITemplateManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
558f4c854d fix: Cleanup of internal class TemplateLayout
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
1725d63820 fix: Fix signatures and types in template related classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
253628ad5a fix: Fix psalm issues and add missing methods to ITemplate interface
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
f19ddd5525 fix: Add missing ITemplate interface and clean code in Template class
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
71dc34c03c fix: Deprecate OC_Template, add proper template manager instead
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Côme Chilliet
f758f565d4 fix: Replace getInstalledApps calls with getEnabledApps
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-02-13 10:19:20 +01:00
provokateurin
f52aa9ad32 refactor(provisioning_api): Rename AUserData to AUserDataOCSController to allow openapi-extractor to detect it as OCS
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-01-06 14:30:40 +01:00
dependabot[bot]
bb598c8451 chore(deps): Bump nextcloud/coding-standard in /vendor-bin/cs-fixer
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/coding-standard/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: nextcloud/coding-standard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-19 07:57:35 +02:00
Julius Knorr
606241caeb chore(legacy): Introduce public version ct plass and drop version methods from OC_Util
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-09-20 14:53:34 +02:00
provokateurin
9836e9b164 chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Anna Larch
8af7ecb257 chore: adjust code to adhere to coding standard
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-09-05 21:23:38 +02:00
Daniel Kesselberg
af6de04e9e style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Ferdinand Thiessen
2916e5df7e feat: Provide CSP nonce as <meta> element
This way we use the CSP nonce for dynamically loaded scripts.
Important to notice: The CSP nonce must NOT be injected in `content` as
this can lead to value exfiltration using e.g. side-channel attacts (CSS selectors).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-13 10:32:44 +02:00
Richard Steinmetz
b37fb43a32 feat: let users configure their first day of week
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-07-22 22:35:46 +02:00
Ferdinand Thiessen
a229723b8c feat: Add new forbidden filename options to Capabilities
Allow clients to access the new filename validation options
and make frontend name validation possible.

Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-11 13:31:54 +02:00
Arthur Schiwon
f6d6efef3a refactor(Token): introduce scope constants
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-06-05 19:01:14 +02:00
Arthur Schiwon
340939e688 fix(Session): avoid password confirmation on SSO
SSO backends like SAML and OIDC tried a trick to suppress password
confirmations as they are not possible by design. At least for SAML it was
not reliable when existing user backends where used as user repositories.

Now we are setting a special scope with the token, and also make sure that
the scope is taken over when tokens are regenerated.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-06-05 19:01:13 +02:00
Andy Scherzinger
dae7c159f7 chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
Ferdinand Thiessen
dd4901d689 feat: Add forbidden_filename_characters to JSConfig for use in frontend libraries
Add the filename restrictions to our JS config so we can create a common frontend library
function to check filename validity (de-duplicate code).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-05-16 16:38:37 +02:00
Côme Chilliet
ec5133b739 fix: Apply new coding standard to all files
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Ferdinand Thiessen
03dbbc90be fix(JSRecourceLocator): Add missing slash after server root
The `OC::$SERVERROOT` is always returned without a trailing slash, so we need to add a slash between server root and apps directory.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-03-22 14:51:27 +01:00
John Molakvoæ
9338ef36de Merge branch 'master' into refactor/OC-Server-getShareManager
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-03-15 13:03:34 +01:00
Ferdinand Thiessen
51ea3de8a7 fix(JSResourceLocator): Consider configured app roots for files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-29 17:27:20 +01:00
Louis Chemineau
a39b3a3d84 Add global accessibility switch
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-12-19 10:21:13 +01:00
Joas Schilling
aa5f037af7 chore: apply changes from Nextcloud coding standards 1.1.1
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00