Add user authorization

This commit is contained in:
gabdevele
2026-06-02 20:01:56 +02:00 Unverified
parent 795383a98c
commit 54aa4cb73e
13 changed files with 361 additions and 36 deletions
+22 -9
View File
@@ -36,6 +36,19 @@ std::optional<visione::auth::UserContext> requireUser(
return user;
}
bool blockPasswordChangeRequired(
const visione::auth::UserContext &user,
std::function<void(const HttpResponsePtr &)> &callback)
{
if (!visione::auth::mustChangePassword(user))
{
return false;
}
callback(visione::http::error("password_change_required",
drogon::k403Forbidden));
return true;
}
void sendService(Json::Value body,
std::function<void(const HttpResponsePtr &)> &&callback)
{
@@ -56,7 +69,7 @@ void ReportController::create(
std::function<void(const HttpResponsePtr &)> &&callback)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -76,7 +89,7 @@ void ReportController::list(
std::function<void(const HttpResponsePtr &)> &&callback)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -95,7 +108,7 @@ void ReportController::detail(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -109,7 +122,7 @@ void ReportController::updateStatus(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -124,7 +137,7 @@ void ReportController::addMessage(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -139,7 +152,7 @@ void ReportController::listMessages(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -153,7 +166,7 @@ void ReportController::assignTeam(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -168,7 +181,7 @@ void ReportController::addFeedback(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
@@ -183,7 +196,7 @@ void ReportController::uploadPhotos(
long long reportId)
{
auto user = requireUser(req, callback);
if (!user)
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}