diff --git a/.nextcloudignore b/.nextcloudignore new file mode 100644 index 000000000..3cc54d8aa --- /dev/null +++ b/.nextcloudignore @@ -0,0 +1,44 @@ +# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: AGPL-3.0-or-later +/AUTHORS.md +/build +/.editorconfig +/.eslintrc.js +/.git +/.github +/.gitignore +/.php* +/.travis.yml +/.tx +/.scrutinizer.yml +/.nextcloudignore +/babel.config.js +/CONTRIBUTING.md +/composer.json +/composer.lock +/composer.phar +/karma.conf.js +/krankerl.toml +/l10n/no-php +/Makefile +/nbproject +/node_modules +/package.json +/package-lock.json +/psalm.xml +/screenshots +/src +/stylelint.config.js +/tests +/vendor/bin +/vendor/**/tests +/webpack.common.js +/webpack.dev.js +/webpack.js +/webpack.prod.js +/vendor/bin +/vendor-bin +/vite.config.ts +/tsconfig.json +/rector.php +/CHANGELOG.md diff --git a/Makefile b/Makefile deleted file mode 100644 index ba3e76146..000000000 --- a/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -# SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors -# SPDX-License-Identifier: AGPL-3.0-or-later -app_name=user_saml - -project_dir=$(CURDIR)/../$(app_name) -build_dir=$(CURDIR)/build/artifacts -appstore_dir=$(build_dir)/appstore -source_dir=$(build_dir)/source -sign_dir=$(build_dir)/sign -package_name=$(app_name) -cert_dir=$(HOME)/.nextcloud/certificates -version+=4.0.0 - -all: appstore - -release: appstore create-tag - -create-tag: - git tag -s -a v$(version) -m "Tagging the $(version) release." - git push origin v$(version) - -clean: - rm -rf $(build_dir) - rm -rf node_modules - -appstore: clean - composer install --no-dev - mkdir -p $(sign_dir) - rsync -a \ - --exclude=.drone.yml \ - --exclude=.git \ - --exclude=.gitattributes \ - --exclude=.github \ - --exclude=.gitignore \ - --exclude=.git-blame-ignore-revs \ - --exclude=.patches \ - --exclude=.php-cs-fixer.dist.php \ - --exclude=.scrutinizer.yml \ - --exclude=.travis.yml \ - --exclude=.tx \ - --exclude=/build \ - --exclude=/CONTRIBUTING.md \ - --exclude=/docs \ - --exclude=/issue_template.md \ - --exclude=/l10n/l10n.pl \ - --exclude=/Makefile \ - --exclude=/psalm.xml \ - --exclude=/README.md \ - --exclude=/rector.php \ - --exclude=/screenshots \ - --exclude=/tests \ - --exclude=/translationfiles \ - --exclude=/vendor/cweagans \ - --exclude=/vendor-bin \ - $(project_dir)/ $(sign_dir)/$(app_name) - tar -czf $(build_dir)/$(app_name).tar.gz \ - -C $(sign_dir) $(app_name) - @if [ -f $(cert_dir)/$(app_name).key ]; then \ - echo "Signing package…"; \ - openssl dgst -sha512 -sign $(cert_dir)/$(app_name).key $(build_dir)/$(app_name).tar.gz | openssl base64; \ - fi diff --git a/krankerl.toml b/krankerl.toml index cf65e7ae2..7244d9913 100644 --- a/krankerl.toml +++ b/krankerl.toml @@ -2,6 +2,7 @@ # SPDX-License-Identifier: AGPL-3.0-or-later [package] before_cmds = [ + "composer install --no-dev -o", 'npm ci', 'npm run build' ] diff --git a/lib/Listener/LoadAdditionalScriptsListener.php b/lib/Listener/LoadAdditionalScriptsListener.php index 956e5a91f..744faa0ea 100644 --- a/lib/Listener/LoadAdditionalScriptsListener.php +++ b/lib/Listener/LoadAdditionalScriptsListener.php @@ -43,8 +43,7 @@ public function handle(Event $event): void { $timezoneDB = $this->userConfig->getValueString($user->getUID(), 'core', 'timezone'); if ($timezoneDB === '' || !$this->session->exists('timezone')) { - Util::addScript('user_saml', 'vendor/jstz.min'); - Util::addScript('user_saml', 'timezone'); + Util::addScript('user_saml', 'user_saml-timezone'); } } } diff --git a/screenshots/1.png b/screenshots/1.png index 0835983fd..ee19e8a99 100644 Binary files a/screenshots/1.png and b/screenshots/1.png differ diff --git a/screenshots/2.png b/screenshots/2.png index e2e8aaba5..5ee5392ab 100644 Binary files a/screenshots/2.png and b/screenshots/2.png differ diff --git a/src/timezone.ts b/src/timezone.ts new file mode 100644 index 000000000..aa3d4fb55 --- /dev/null +++ b/src/timezone.ts @@ -0,0 +1,20 @@ +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import axios from '@nextcloud/axios' +import { generateUrl } from '@nextcloud/router' +import logger from './logger.ts' + +logger.debug('updating timezone and offset for SAML user') + +try { + await axios.post(generateUrl('/apps/user_saml/config/timezone'), { + timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + timezoneOffset: String(-new Date().getTimezoneOffset() / 60), + }) + logger.info('timezone and offset updated for SAML user') +} catch (error) { + logger.error('could not set timezone and offset for SAML user', { error }) +} diff --git a/templates/selectUserBackEnd.php b/templates/selectUserBackEnd.php index d7936d421..b57feb14f 100644 --- a/templates/selectUserBackEnd.php +++ b/templates/selectUserBackEnd.php @@ -5,8 +5,8 @@ */ use OCP\Util; -Util::addStyle('user_saml', 'selectUserBackEnd'); -Util::addScript('user_saml', 'selectUserBackEnd'); +Util::addStyle('user_saml', 'user_saml-selectUserBackEnd'); +Util::addScript('user_saml', 'user_saml-selectUserBackEnd'); /** @var array $_ */ /** @var \OCP\IL10N $l */ diff --git a/vite.config.ts b/vite.config.ts index cd4fd5727..2166ec8ea 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -11,6 +11,7 @@ const isProduction = process.env.NODE_ENV === 'production' export default createAppConfig({ admin: join(import.meta.dirname, 'src', 'admin.ts'), selectUserBackEnd: join(import.meta.dirname, 'src', 'selectUserBackEnd.ts'), + timezone: join(import.meta.dirname, 'src', 'timezone.ts'), }, { minify: isProduction, thirdPartyLicense: false,