diff --git a/README.md b/README.md index 8fc353fa3..3d30be255 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,8 @@ Hierarchical access control where each level inherits all permissions from lower | 5 | God | Workflows, advanced scripting, packages | `/builder` | | 6 | Supergod | Full system control, tenant management | `/supergod` | +The new Level 3 moderator desk (`/moderator`) is protected by `AuthGate` with `requiredRole="moderator"` and surfaces flagged discussions, incident reports, and quick actions before escalation to admin. + ### Permission Matrix | Feature | L1 | L2 | L3 | L4 | L5 | L6 | diff --git a/dbal/cpp/src/daemon/server.cpp b/dbal/cpp/src/daemon/server.cpp index a88b2e9b8..421f7fc85 100644 --- a/dbal/cpp/src/daemon/server.cpp +++ b/dbal/cpp/src/daemon/server.cpp @@ -110,11 +110,8 @@ bool Server::start() { registerRoutes(); drogon::app().addListener(bind_address_, static_cast(port_)); - server_thread_ = std::thread([]() { - drogon::app().run(); - }); - running_.store(true); + server_thread_ = std::thread(&Server::runServer, this); return true; } @@ -161,5 +158,10 @@ void Server::registerRoutes() { routes_registered_ = true; } +void Server::runServer() { + drogon::app().run(); + running_.store(false); +} + } // namespace daemon } // namespace dbal diff --git a/frontends/nextjs/src/lib/api/packages/delete-package-data.ts b/frontends/nextjs/src/lib/api/packages/data/delete-package-data.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/delete-package-data.ts rename to frontends/nextjs/src/lib/api/packages/data/delete-package-data.ts diff --git a/frontends/nextjs/src/lib/api/packages/get-package-data.ts b/frontends/nextjs/src/lib/api/packages/data/get-package-data.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/get-package-data.ts rename to frontends/nextjs/src/lib/api/packages/data/get-package-data.ts diff --git a/frontends/nextjs/src/lib/api/packages/list-installed-packages.ts b/frontends/nextjs/src/lib/api/packages/data/list-installed-packages.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/list-installed-packages.ts rename to frontends/nextjs/src/lib/api/packages/data/list-installed-packages.ts diff --git a/frontends/nextjs/src/lib/api/packages/set-package-data.ts b/frontends/nextjs/src/lib/api/packages/data/set-package-data.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/set-package-data.ts rename to frontends/nextjs/src/lib/api/packages/data/set-package-data.ts diff --git a/frontends/nextjs/src/lib/api/packages/install-package.ts b/frontends/nextjs/src/lib/api/packages/lifecycle/install-package.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/install-package.ts rename to frontends/nextjs/src/lib/api/packages/lifecycle/install-package.ts diff --git a/frontends/nextjs/src/lib/api/packages/toggle-package-enabled.ts b/frontends/nextjs/src/lib/api/packages/lifecycle/toggle-package-enabled.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/toggle-package-enabled.ts rename to frontends/nextjs/src/lib/api/packages/lifecycle/toggle-package-enabled.ts diff --git a/frontends/nextjs/src/lib/api/packages/uninstall-package.ts b/frontends/nextjs/src/lib/api/packages/lifecycle/uninstall-package.ts similarity index 100% rename from frontends/nextjs/src/lib/api/packages/uninstall-package.ts rename to frontends/nextjs/src/lib/api/packages/lifecycle/uninstall-package.ts diff --git a/frontends/nextjs/src/lib/types/level-types.ts b/frontends/nextjs/src/lib/types/level-types.ts index 8c5384acc..111d72a8b 100644 --- a/frontends/nextjs/src/lib/types/level-types.ts +++ b/frontends/nextjs/src/lib/types/level-types.ts @@ -18,7 +18,7 @@ export type AppLevel = 1 | 2 | 3 | 4 | 5 | 6 * @property id - Unique user identifier * @property username - Display username * @property email - Email address for notifications - * @property role - Permission level (public|user|admin|god|supergod) + * @property role - Permission level (public|user|moderator|admin|god|supergod) * @property tenantId - Tenant isolation identifier * @property isInstanceOwner - Owner of this MetaBuilder instance */