export hook for reading/writing to mod-settings
Description
Environment
None
Potential Workaround
None
Checklist
hideActivity
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 theuserId
attribute matches the currently-authenticated usermod-settings.users...
permissions provide access to entries for any givenuserId
mod-settings.global...
permissions provide access to entries without auserId
attribute
Done
Details
Details
Assignee
Unassigned
UnassignedReporter
Zak Burke
Zak BurkePriority
Story Points
2
Sprint
None
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
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 ); }