()
| 6179 | }; |
| 6180 | |
| 6181 | const saveFlags = async () => { |
| 6182 | const permissions = [getFlagsFromRow()]; |
| 6183 | try { |
| 6184 | const res = await sendRequest( |
| 6185 | "/api/admin/updateUserPermissions.php", |
| 6186 | "PUT", |
| 6187 | { permissions }, |
| 6188 | { "X-CSRF-Token": window.csrfToken } |
| 6189 | ); |
| 6190 | |
| 6191 | if (!res || res.success === false) { |
| 6192 | const msg = (res && (res.error || res.message)) || tf("error_updating_permissions", "Error updating permissions"); |
| 6193 | showToast(msg, "error"); |
| 6194 | return; |
| 6195 | } |
| 6196 | |
| 6197 | // keep local cache in sync |
| 6198 | const flagsCache = await getUserFlagsCacheForHub(); |
| 6199 | flagsCache[username] = permissions[0]; |
| 6200 | showToast(tf("user_permissions_updated_successfully", "User permissions updated successfully")); |
| 6201 | } catch (err) { |
| 6202 | console.error("save inline flags error", err); |
| 6203 | showToast(tf("error_updating_permissions", "Error updating permissions"), "error"); |
| 6204 | } |
| 6205 | }; |
| 6206 | |
| 6207 | checkboxes.forEach(cb => { |
| 6208 | cb.addEventListener("change", () => { |
no test coverage detected