handlers: permisison check for all pages + retrieve user-specific permissions for pages (if any)

This commit is contained in:
2019-05-03 15:59:29 +02:00
orang tua e87c3a0f4d
melakukan 7630301168
23 mengubah file dengan 167 tambahan dan 34 penghapusan

Melihat File

@@ -64,7 +64,7 @@ std::vector<char> HandlerLogin::pbkdf5(std::string password, const std::vector<c
return result;
}
Response HandlerLogin::handle(const Request &r)
Response HandlerLogin::handleRequest(const Request &r)
{
auto createErrorReesponse = [&]() {
return errorResponse("Login error", "The supplied credenetials are incorrect");
@@ -85,6 +85,10 @@ Response HandlerLogin::handle(const Request &r)
{
return createErrorReesponse();
}
if(!user->enabled)
{
return errorResponse("Login failed", "The user account has been disabled");
}
auto hashresult = pbkdf5(password, user.value().salt);
// TODO: timing attack
@@ -116,3 +120,8 @@ Response HandlerLogin::handle(const Request &r)
result.setBody(loginTemplatePage.render());
return result;
}
bool HandlerLogin::canAccess(const Permissions &perms)
{
return true;
}