Return stored manage flag for groups in collections/details (#7795)

CollectionGroup::to_json_details_for_group derived manage from
!read_only && !hide_passwords, so the group permission "Can edit items"
was reported as "Can manage collection" by collections/details, while
groups/<id>/details reported the stored value. Saving the collection
access dialog in the web vault then persisted manage=true.

Fixes #7794

Co-authored-by: Alexander Widak <deltatree.widak@gmail.com>
This commit is contained in:
Alexander WidakandAlexander Widak authored and GitHub committed 2026-10-25 16:49:12 +01:00
1 parent c925c04de0
commit 7ce705be56
1 file changed
+5 -5
+5 -5
View File
@@ -137,15 +137,15 @@ impl CollectionGroup {
} }
pub fn to_json_details_for_group(&self) -> Value { pub fn to_json_details_for_group(&self) -> Value {
// If both read_only and hide_passwords are false, then manage should be true // Return the stored manage flag. Deriving it from !read_only && !hide_passwords turned the group
// You can't have an entry with read_only and manage, or hide_passwords and manage // permission "Can edit items" (readOnly=false, hidePasswords=false, manage=false) into "Can manage"
// Or an entry with everything to false // in GET /organizations/<org>/collections/details, while GET /groups/<id>/details reported the stored
// For backwards compatibility and migration proposes we keep checking read_only and hide_password // value. Saving the collection access dialog then persisted manage=true.
json!({ json!({
"id": self.groups_uuid, "id": self.groups_uuid,
"readOnly": self.read_only, "readOnly": self.read_only,
"hidePasswords": self.hide_passwords, "hidePasswords": self.hide_passwords,
"manage": self.manage || (!self.read_only && !self.hide_passwords), "manage": self.manage,
}) })
} }
} }