MantisBase v0.3.7
Loading...
Searching...
No Matches
middlewares.h
Go to the documentation of this file.
1
9#ifndef MANTISBASE_MIDDLEWARES_H
10#define MANTISBASE_MIDDLEWARES_H
11
12#include <functional>
13#include <string>
14#include "types.h"
15#include "models/entity.h"
16
17namespace mb {
24 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> getAuthToken();
25
32 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> hydrateContextData();
33
40 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> resolveSchema();
41
49 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> resolveAuthEntity();
50
57 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> resolveEntity();
58
63 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> rejectViewMutations();
64
69 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> hasEntityAccess();
70
79 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> hasAccess(const std::string& entity_name);
80
86 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireExprEval(const std::string& expr);
87
94 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireGuestOnly();
95
102 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireAdminAuth();
103
109 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireAdminOrEntityAuth(const std::string& entity_name);
110
116 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireEntityAuth(const std::string& entity_name);
117
146 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> rateLimit(
147 int max_requests,
148 int window_seconds,
149 bool use_user_id = false
150 );
151}
152
153#endif //MANTISBASE_MIDDLEWARES_H
Entity class for database table operations and CRUD functionality.
router.h
Definition auth.h:16
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> resolveEntity()
Resolve entity from :entity_name path param and validate it is API-accessible.
Definition middlewares.cpp:320
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> resolveAuthEntity()
Resolve auth entity from :entity_name path param.
Definition middlewares.cpp:295
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> rateLimit(int max_requests, int window_seconds, bool use_user_id=false)
Rate limiting middleware to prevent abuse.
Definition middlewares.cpp:509
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> hydrateContextData()
Hydrate request context with additional data.
Definition middlewares.cpp:206
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireAdminOrEntityAuth(const std::string &entity_name)
Require admin OR entity authentication.
Definition middlewares.cpp:476
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> getAuthToken()
Extract and validate JWT token from Authorization header.
Definition middlewares.cpp:175
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> resolveSchema()
Resolve schema from :schema_name_or_id path param and validate it exists.
Definition middlewares.cpp:255
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireGuestOnly()
Require guest-only access (no authentication).
Definition middlewares.cpp:387
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> hasEntityAccess()
Check access rules for the entity named in the :entity_name path param.
Definition middlewares.cpp:364
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireExprEval(const std::string &expr)
Require expression evaluation to pass.
Definition middlewares.cpp:379
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireAdminAuth()
Require admin authentication.
Definition middlewares.cpp:404
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> rejectViewMutations()
Reject POST, PATCH, and DELETE requests against view-type entities.
Definition middlewares.cpp:345
httplib::Server::HandlerResponse HandlerResponse
Definition types.h:33
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireEntityAuth(const std::string &entity_name)
Require entity-specific authentication.
Definition middlewares.cpp:486
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> hasAccess(const std::string &entity_name)
Check if request has access to entity based on access rules.
Definition middlewares.cpp:372
Type definitions and aliases for MantisBase.