MantisBase v0.3.4
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
42 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> hasAccess(const std::string& entity_name);
43
49 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireExprEval(const std::string& expr);
50
57 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireGuestOnly();
58
65 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireAdminAuth();
66
72 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireAdminOrEntityAuth(const std::string& entity_name);
73
79 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> requireEntityAuth(const std::string& entity_name);
80
109 std::function<HandlerResponse(MantisRequest&, MantisResponse&)> rateLimit(
110 int max_requests,
111 int window_seconds,
112 bool use_user_id = false
113 );
114}
115
116#endif //MANTISBASE_MIDDLEWARES_H
Entity class for database table operations and CRUD functionality.
router.h
Definition auth.h:15
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:404
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> hydrateContextData()
Hydrate request context with additional data.
Definition middlewares.cpp:36
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireAdminOrEntityAuth(const std::string &entity_name)
Require admin OR entity authentication.
Definition middlewares.cpp:371
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> getAuthToken()
Extract and validate JWT token from Authorization header.
Definition middlewares.cpp:10
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireGuestOnly()
Require guest-only access (no authentication).
Definition middlewares.cpp:282
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireExprEval(const std::string &expr)
Require expression evaluation to pass.
Definition middlewares.cpp:274
std::function< HandlerResponse(MantisRequest &, MantisResponse &)> requireAdminAuth()
Require admin authentication.
Definition middlewares.cpp:299
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:381
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:85
Type definitions and aliases for MantisBase.