No description
Find a file
Nextcloud bot 4bc817a4ab
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-06 01:10:01 +00:00
.github/workflows fix release action 2025-06-13 11:44:50 +02:00
.tx Create .tx/config 2024-10-31 07:53:27 +01:00
appinfo prepare 4.2.0 2025-08-27 12:32:36 +02:00
css fix assistant header menu button height 2025-09-10 14:33:48 +02:00
img fix: use correct icon 2024-11-29 17:55:40 +01:00
l10n fix(l10n): Update translations from Transifex 2025-10-06 01:10:01 +00:00
lib do not check oidc token if we know user_oidc was not used to log in 2025-08-27 12:05:59 +02:00
LICENSES ci(reuse): Add reuse check 2024-11-29 17:37:53 +01:00
src fix custom unified search click handling, find the correct hidden element to click on 2025-08-21 13:20:25 +02:00
tests fix psalm issues 2025-06-04 16:48:08 +02:00
vendor-bin/mozart bring mozart back to stay close to user_oidc implementation, fix the mozart+nextcloud/ocp version conflict 2024-01-22 11:13:03 +01:00
.eslintrc.cjs start migrating to vue 3 and nc.vue 9 2025-06-24 11:40:08 +02:00
.gitignore docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00
.l10nignore docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00
.nextcloudignore docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00
.php-cs-fixer.dist.php docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00
AUTHORS.md docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00
CHANGELOG.md prepare 4.2.0 2025-08-27 12:32:36 +02:00
composer.json chore: use psalm 6.7 2025-06-04 16:49:42 +02:00
composer.lock upgrade nextcloud/ocp composer pkg 2025-08-27 12:05:59 +02:00
COPYING add license and author 2022-09-02 12:41:02 +02:00
krankerl.toml docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00
makefile ignore more stuff to build the release archive 2025-08-07 12:08:57 +02:00
package-lock.json start migrating to vue 3 and nc.vue 9 2025-06-24 11:40:08 +02:00
package.json start migrating to vue 3 and nc.vue 9 2025-06-24 11:40:08 +02:00
psalm.xml upgrade nextcloud/ocp composer pkg 2025-08-27 12:05:59 +02:00
README.md feat: navbar search bar, option to change waffle menu location 2025-03-04 10:39:19 +01:00
REUSE.toml docs(reuse): Add CSS map files 2024-11-29 17:51:42 +01:00
stylelint.config.cjs start migrating to vue 3 and nc.vue 9 2025-06-24 11:40:08 +02:00
webpack.js docs(reuse): Add SPDX header 2024-11-29 17:27:42 +01:00

Nextcloud Sovereign Workplace (Phoenix) integration

REUSE status

Implemented features

  • Address book search
  • Central navigation
  • Unified style

Requirements

  • Required OIDC connection with user_oidc to be setup

OIDC token handling

During login the access_token and refresh token are passed by the user_oidc app to the integration_swp app through a dispatched event. integration_swp will request a fresh token and regularly refresh it with the refresh token that was initially provided by the OpenID Connect login.

Configuration:

OpenXChange

Configure OpenXChange base URL (to contact its API):

occ config:app:set integration_swp ox-baseurl --value="https://my.ox.instance"

Set a webmail url (will override the mailto: links click and open them in a new tab):

occ config:app:set integration_swp webmail-url --value="https://my.ox.instance/webmail"

Set the webmail tab name (target):

occ config:app:set integration_swp webmail-tabname --value="swp-webmail"

Set the cache duration for OX contact search requests (default: 600, 10 minutes):

occ config:app:set integration_swp cache-ttl-contacts --value="12"

Central menu

Set the portal URL (will add an entry in the central menu):

occ config:app:set integration_swp portal-url --value="https://portal.org"

Set the central menu Json content URL:

occ config:app:set integration_swp navigation-json-url --value="https://my.central/menu.json"

Set the authentication type when requesting the menu json content (basic or bearer, default: basic)

occ config:app:set integration_swp navigation-json-auth-type --value="basic"

Set the shared secret to access the central menu json endpoint. Will be used as a password if basic auth type is "basic". Will be used as bearer token if auth type is "bearer".

occ config:app:set integration_swp navigation-json-api-secret --value="abc123456"

Set the OIDC token attribute which value should be used as username when requesting the central menu json endpoint. (default: "preferred_username") Will be used as username if auth type is basic. Will be used in the X-Ucs-Username HTTP header is auth type is bearer.

occ config:app:set integration_swp navigation-json-username-attribute --value="preferred_username"

Choose which central menu item attribute should be used as target when opening entries. (default: undefined, target will be "_blank")

occ config:app:set integration_swp menu-tabname-attribute --value="myAttr"

Set the menu json content cache duration in seconds (default: 3600, one hour):

occ config:app:set integration_swp cache-navigation-json --value="10"

Set the menu location in header: left (default) or right:

occ config:app:set integration_swp menu-header-location --value="right"

Unified style

Override the header menu background color to white and the page background color to gray (independently from the accent color set in theming admin settings). This is enabled by default:

occ config:app:set integration_swp override-header-color --value="1"

Set the main content style to square corners and remove the margins. This is enabled by default:

occ config:app:set integration_swp square-corners --value="1"

Set the default user theme (but still allow the users to change it), default value is "light":

occ config:app:set integration_swp default-user-theme --value="THEME"

THEME can be light, dark, light-highcontrast or dark-highcontrast.

Set the top-left logo:

# Do we want to use a custom logo? (1 or 0) Use the theming one if 0.
occ config:app:set integration_swp use-custom-logo --value="1"
# The custom logo image URL (default is the local /img/phoenix_suite_logo-Assets/SVG/phoenix_suite_logo.svg file)
occ config:app:set integration_swp logo-image-url --value="https://logos.org/my/logo.svg"
# CSS properties for the logo image
occ config:app:set integration_swp logo-width --value="63%"
occ config:app:set integration_swp logo-height --value="auto"
# href of the logo link
occ config:app:set integration_swp logo-link-url --value="https://swp.org"
# target of the logo link
occ config:app:set integration_swp logo-link-target --value="_blank"
# title of the logo link
occ config:app:set integration_swp logo-link-title --value="SWP portal"

Configure which activity types should be hidden (comma separated, default is "contacts,calendar,calendar_todo"):

occ config:app:set integration_swp hidden-activities --value="contacts,calendar,calendar_todo"

Hide the contacts top-right menu entry (default=0):

occ config:app:set integration_swp hide-contacts-menu --value="1"

Local testing

Enable the apps features (theming, central menu, logo override...) even if the user is not connected via user_oidc:

occ config:app:set integration_swp debug_mode --value="1"

You can get the current OIDC token information on this page:

https://my.nextcloud.org/index.php/apps/integration_swp

Even without using SWP Login, the integration with OpenXChange can be tested by manually providing a valid OIDC ID token through app config:

occ config:app:set integration_swp ox-usertoken --value="$OIDC_ID_TOKEN"