handlers: permisison check for all pages + retrieve user-specific permissions for pages (if any)
Este commit está contenido en:
@ -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;
|
||||
}
|
||||
|
Referencia en una nueva incidencia
Block a user