add OAuth defaults and admin reservation deletion support
Seed rms.auth.oauth plugin settings with a Google OIDC example while keeping the plugin disabled by default, add admin API/UI support to delete individual reservation entries, and extend auth flow handling for OAuth callback redirects and errors.
This commit is contained in:
@@ -1443,6 +1443,21 @@ async function cancelOwnReservation() {
|
||||
}
|
||||
}
|
||||
|
||||
async function cancelReservationByUserId(userId) {
|
||||
const normalized = String(userId || "").trim();
|
||||
if (!normalized) {
|
||||
return;
|
||||
}
|
||||
clearMessages("status");
|
||||
try {
|
||||
await api(`/v1/station/reservations/${encodeURIComponent(normalized)}`, { method: "DELETE" });
|
||||
renderMessage(els.reservationMessage, "Reservierung geloescht", false, true);
|
||||
await refreshStatus();
|
||||
} catch (error) {
|
||||
renderMessage(els.reservationMessage, error.message, true);
|
||||
}
|
||||
}
|
||||
|
||||
async function openOpenWebRxSession() {
|
||||
clearMessages("status");
|
||||
setOpenWebRxBusy(true);
|
||||
@@ -2944,8 +2959,23 @@ function renderReservationQueue(status) {
|
||||
|
||||
left.appendChild(title);
|
||||
left.appendChild(details);
|
||||
const right = document.createElement("div");
|
||||
right.className = "actions";
|
||||
right.appendChild(pill);
|
||||
if (isAdmin() && entry && entry.userId) {
|
||||
const adminDeleteBtn = document.createElement("button");
|
||||
adminDeleteBtn.type = "button";
|
||||
adminDeleteBtn.className = "ghost-btn danger";
|
||||
adminDeleteBtn.textContent = translateLiteral("Reservierung loeschen");
|
||||
adminDeleteBtn.title = translateLiteral("Reservierung dieses Benutzers loeschen");
|
||||
adminDeleteBtn.addEventListener("click", async () => {
|
||||
await cancelReservationByUserId(entry.userId);
|
||||
});
|
||||
right.appendChild(adminDeleteBtn);
|
||||
}
|
||||
|
||||
row.appendChild(left);
|
||||
row.appendChild(pill);
|
||||
row.appendChild(right);
|
||||
list.appendChild(row);
|
||||
|
||||
const isMine = loggedIn
|
||||
|
||||
@@ -96,9 +96,12 @@
|
||||
"Station freigegeben": "Station freigegeben",
|
||||
"Reservierung gespeichert": "Reservierung gespeichert",
|
||||
"Reservierung entfernt": "Reservierung entfernt",
|
||||
"Reservierung geloescht": "Reservierung geloescht",
|
||||
"Um die Station fuer andere freizugeben muss die Reservierung geloescht werden.": "Um die Station fuer andere freizugeben muss die Reservierung geloescht werden.",
|
||||
"Noch keine Reservierungen vorhanden.": "Noch keine Reservierungen vorhanden.",
|
||||
"Meine Reservierung loeschen": "Meine Reservierung loeschen",
|
||||
"Reservierung loeschen": "Reservierung loeschen",
|
||||
"Reservierung dieses Benutzers loeschen": "Reservierung dieses Benutzers loeschen",
|
||||
"Aktiver Slot": "Aktiver Slot",
|
||||
"per Mail": "per Mail",
|
||||
"Keine Methode verfuegbar": "Keine Methode verfuegbar",
|
||||
|
||||
@@ -96,9 +96,12 @@
|
||||
"Station freigegeben": "Station released",
|
||||
"Reservierung gespeichert": "Reservation saved",
|
||||
"Reservierung entfernt": "Reservation removed",
|
||||
"Reservierung geloescht": "Reservation deleted",
|
||||
"Um die Station fuer andere freizugeben muss die Reservierung geloescht werden.": "To release the station for others, your reservation must be deleted.",
|
||||
"Noch keine Reservierungen vorhanden.": "No reservations yet.",
|
||||
"Meine Reservierung loeschen": "Remove my reservation",
|
||||
"Reservierung loeschen": "Delete reservation",
|
||||
"Reservierung dieses Benutzers loeschen": "Delete this user's reservation",
|
||||
"Aktiver Slot": "Active slot",
|
||||
"per Mail": "by email",
|
||||
"Keine Methode verfuegbar": "No method available",
|
||||
|
||||
Reference in New Issue
Block a user