save anon-user permissions from config in database on startup (interim solution)

This commit is contained in:
Albert S. 2019-05-03 15:58:22 +02:00
parent 81816dd28c
commit 9c0dfd170e

View File

@ -86,15 +86,29 @@ int main(int argc, char **argv)
logstream.open(config.logfile, std::fstream::out | std::fstream::app);
Logger::setStream(&logstream);
User anon;
anon.login = config.anon_username;
anon.permissions = config.anon_permissions;
User::setAnon(anon);
auto database = createDatabase(config);
//TODO: quite ugly, anon-handling must be rethought
auto userdao = database->createUserDao();
std::optional<User> anon = userdao->find(config.anon_username);
if(!anon)
{
throw std::runtime_error("No such anon user in database");
}
if(!anon->enabled)
{
throw std::runtime_error("Anon user cannot be enabled");
}
anon->permissions = config.anon_permissions;
userdao->save(anon.value());
User::setAnon(anon.value());
Template siteTemplate { config };
UrlProvider urlprovider { config };
auto cache = createCache(config);
cache->clear();
RequestWorker requestWorker (*database, siteTemplate, urlprovider, *cache );