mirror of
https://github.com/sol1/rustguac.git
synced 2026-10-24 12:42:23 +00:00
254b4595d6
Re-filing more than a handful of entries meant opening each one. Admins now get a checkbox column on the entries table (select all, shift-click for ranges) and an action bar with Move to, Copy to and Delete. One dialog handles all three: a filterable list of every folder, a preview naming any entries that already exist in the target, a choice to leave those or give them a new name, warnings when the move crosses between shared and instance or the folders have different access groups, and a result per entry afterwards. POST /api/addressbook/bulk does the work, up to 1000 entries a request, 8 at a time. Each entry goes through the same stored-entry copy as the single move: credentials included, Vault check-and-set so nothing is overwritten, and a move removes the original only after the copy is written. Clashes are skipped or renamed (name-2 .. name-99, within the 64-character limit); there is no overwrite option. Repeated items are acted on once. Each entry is audited on its own, headline only. The route alone accepts a 256KB body, since 1000 entries is about 100KB; it is admin-only and authentication happens before the body is read. GET /api/addressbook/folder-paths lists every folder for the picker; the existing "Move to folder" list only knew about folders already expanded in the tree. Delete now checks the entry exists first, in both the bulk and single endpoints. Vault reports success for deleting a path that is not there, so a missing entry was answered, and audited, as deleted.