diff --git a/frontend/dashboard.java b/frontend/dashboard.java index f4d8e4c..e50b24d 100644 --- a/frontend/dashboard.java +++ b/frontend/dashboard.java @@ -2,22 +2,24 @@ package ins.frontend; import ins.frontend.utils.RegistrarDao; import ins.frontend.utils.WebApp; -import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebResponsePacket; -import org.openautonomousconnection.protocol.side.web.ProtocolWebServer; +import org.openautonomousconnection.protocol.packets.v1_0_1.beta.web.impl.resource.WebResourceResponsePacket; +import org.openautonomousconnection.protocol.versions.v1_0_1.beta.WebPacketFlags; +import org.openautonomousconnection.protocol.versions.v1_0_1.beta.WebPacketHeader; import org.openautonomousconnection.webserver.api.Route; -import org.openautonomousconnection.webserver.api.SessionContext; import org.openautonomousconnection.webserver.api.WebPage; import org.openautonomousconnection.webserver.api.WebPageContext; +import org.openautonomousconnection.webserver.utils.HeaderMaps; import org.openautonomousconnection.webserver.utils.Html; import org.openautonomousconnection.webserver.utils.MergedRequestParams; -import org.openautonomousconnection.webserver.utils.QuerySupport; +import org.openautonomousconnection.webserver.utils.WebUrlUtil; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Locale; import java.util.Map; /** - * INS registrar ins.frontend (TLN / InfoName / Records) with proper POST parameter parsing. + * INS registrar dashboard (TLN / InfoName / Records) for protocol v1.0.1 resource packets. * *
Supported actions (POST recommended for mutations):
*Important: Listing/editing/deleting records requires DAO methods that are not part of the provided snippet. - * This page currently supports adding records only.
*/ -@Route(path = "dashboard.html") +@Route(path = "/dashboard.html") public final class dashboard implements WebPage { private static Integer normalizeNullableInt(String s) { @@ -47,30 +46,26 @@ public final class dashboard implements WebPage { } @Override - public WebResponsePacket handle(WebPageContext ctx) throws Exception { + public WebResourceResponsePacket handle(WebPageContext ctx) throws Exception { WebApp.init(); - SessionContext session = SessionContext.from( - ctx.client, - (ProtocolWebServer) ctx.client.getServer(), - ctx.request.getHeaders() - ); - - if (!session.isValid() || session.getUser() == null) { - return plain(401, "Authentication required (session)."); + if (ctx.session == null || !ctx.session.isValid() || ctx.session.getUser() == null) { + return plain(ctx, 401, "Authentication required (session)."); } int userId; try { - userId = Integer.parseInt(session.getUser()); + userId = Integer.parseInt(ctx.session.getUser()); } catch (Exception e) { - return plain(401, "Invalid session user."); + return plain(ctx, 401, "Invalid session user."); } RegistrarDao dao = WebApp.get().dao(); - // Raw target and merged params (GET + POST). - String rawTarget = org.openautonomousconnection.webserver.utils.QuerySupport.extractRawTarget(ctx.request); + // Build target for param merging: "/path?query" + String rawTarget = WebUrlUtil.extractPathAndQuery(ctx.request.getUrl()); + if (rawTarget == null) rawTarget = "/dashboard.html"; + MapAllowed if TLN is public or owned by you.
- +Subname requires allow_subdomains=1 unless you own the TLN. Root (no sub) always allowed.
- +