diff --git a/CHANGELOG.md b/CHANGELOG.md index 500cfda..7322631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,22 @@ for what changed inside the apps it composes. ## [Unreleased] +## [1.1.9] - 2026-07-17 + +### Bumped +- sso-manager-node -> [v1.1.8](https://github.com/theta42/sso-manager-node/releases/tag/v1.1.8) + +sso-manager-node: + +### Added +- Group membership is now editable directly from a user's profile page ("My groups" -- add via a group-name picker, remove with a button per row), instead of only from each group's own card on the Groups page. Admin-only, using the existing per-group member add/remove endpoints. + +### Fixed +- The Edit Profile form's Mobile Phone field had a stray `validate=":9"` making it effectively required (submission was blocked with "Please fix the form errors" if left blank) -- it was always meant to be optional, matching the "Add user" form. Removed. +- A service account's profile always showed `Name: Service Account` -- every service account has the same literal filler given/last name (a schema-satisfying placeholder, not meant to be shown), making them indistinguishable by name. The Name line is now hidden for service accounts. +- The Users page's Service Accounts tab, and a freshly-created service account's own profile, could appear empty/not-a-service-account for up to 5 minutes right after creation. Creating a user caches it via `User.get()` *before* the route handler marks it as a service account (group membership), so the cached copy had `isServiceAccount` stuck wrong until the cache TTL expired. Now cleared and re-fetched immediately after marking. +- A user belonging to exactly one LDAP group had their `memberOf` attribute returned as a bare string instead of a one-element array (ldapts's normal behavior for single-valued attributes) -- client-side permission checks (`for(let group of user.memberOf)`) would then iterate the DN character-by-character instead of once, causing pages gated on that group (e.g. Groups) to incorrectly show "You do not have permission to be here." Normalized `memberOf` to always be an array, same fix already applied to `manager`. + ## [1.1.8] - 2026-07-17 ### Bumped @@ -99,7 +115,8 @@ First tagged release. Establishes the `vX.Y.Z` tag convention going forward. - proxy -> [v1.1.0](https://github.com/theta42/proxy/releases/tag/v1.1.0) - sso-manager-node -> [v1.1.0](https://github.com/theta42/sso-manager-node/releases/tag/v1.1.0) -[Unreleased]: https://github.com/theta42/theta-env/compare/v1.1.8...HEAD +[Unreleased]: https://github.com/theta42/theta-env/compare/v1.1.9...HEAD +[1.1.9]: https://github.com/theta42/theta-env/compare/v1.1.8...v1.1.9 [1.1.8]: https://github.com/theta42/theta-env/compare/v1.1.7...v1.1.8 [1.1.7]: https://github.com/theta42/theta-env/compare/v1.1.6...v1.1.7 [1.1.6]: https://github.com/theta42/theta-env/compare/v1.1.5...v1.1.6 diff --git a/sso-manager-node b/sso-manager-node index 3ad8177..65b107d 160000 --- a/sso-manager-node +++ b/sso-manager-node @@ -1 +1 @@ -Subproject commit 3ad817767a959c575274cdee6cb59d0b99042ca8 +Subproject commit 65b107d8ffde9bc7dde624ba472909988203e276