export hook for reading/writing to mod-settings

Description

Summary: export hooks for mod-settings read/write operations, per-user and per-tenant.

Details: This will provide an API for handling user- and tenant-specific preferences such as locale or timezone. It should be a generic wrapper around legacy code like this that retrieves a user’s locale settings from mod-configuration:

export function getUserLocale(okapiUrl, store, tenant, userId) { const query = Object.entries(userLocaleConfig) .map(([k, v]) => `"${k}"=="${v}"`) .join(' AND '); return dispatchLocale( `${okapiUrl}/configurations/entries?query=(${query} and userId=="${userId}")`, store, tenant ); }

Environment

None

Potential Workaround

None

Checklist

hide

Activity

Show:

Zak Burke January 23, 2025 at 12:47 PM

mod-settings requires that corresponding permissions exist before settings entries can be saved. e.g. in order to read/write an entry shaped like

{ "id": "some-uuid", "scope": "stripes-core.some-scope.manage", "key": "app-list", "value": "[1, 2, 3]", "userId": "some-user-uuid" }

the following permission-sets must exist:

{ "permissionName": "mod-settings.owner.read.stripes-core.some-scope.manage", "displayName": "Write description", "visible": false }, { "permissionName": "mod-settings.owner.write.stripes-core.some-scope.manage", "displayName": "Read description", "visible": false }, { "permissionName": "stripes-core.settings.some-scope.manage", "displayName": "Some name", "subPermissions": [ "mod-settings.entries.collection.get", "mod-settings.entries.item.get", "mod-settings.entries.item.post", "mod-settings.entries.item.put", "mod-settings.entries.item.delete", "mod-settings.owner.read.stripes-core.some-scope.manage", "mod-settings.owner.write.stripes-core.some-scope.manage" ], "visible": true }
  • mod-settings.owner... permissions provide access to entries where the userId attribute matches the currently-authenticated user

  • mod-settings.users... permissions provide access to entries for any given userId

  • mod-settings.global... permissions provide access to entries without a userId attribute

Done

Details

Assignee

Reporter

Priority

Story Points

Sprint

Development Team

Stripes Force

Fix versions

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created December 16, 2024 at 9:53 PM
Updated February 25, 2025 at 2:24 AM
Resolved February 24, 2025 at 7:42 PM
TestRail: Cases
TestRail: Runs

Flag notifications