save anon-user permissions from config in database on startup (interim solution)
This commit is contained in:
부모
81816dd28c
커밋
9c0dfd170e
24
qswiki.cpp
24
qswiki.cpp
@ -86,15 +86,29 @@ int main(int argc, char **argv)
|
|||||||
logstream.open(config.logfile, std::fstream::out | std::fstream::app);
|
logstream.open(config.logfile, std::fstream::out | std::fstream::app);
|
||||||
Logger::setStream(&logstream);
|
Logger::setStream(&logstream);
|
||||||
|
|
||||||
User anon;
|
|
||||||
anon.login = config.anon_username;
|
|
||||||
anon.permissions = config.anon_permissions;
|
|
||||||
User::setAnon(anon);
|
|
||||||
|
|
||||||
auto database = createDatabase(config);
|
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 };
|
Template siteTemplate { config };
|
||||||
UrlProvider urlprovider { config };
|
UrlProvider urlprovider { config };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
auto cache = createCache(config);
|
auto cache = createCache(config);
|
||||||
cache->clear();
|
cache->clear();
|
||||||
RequestWorker requestWorker (*database, siteTemplate, urlprovider, *cache );
|
RequestWorker requestWorker (*database, siteTemplate, urlprovider, *cache );
|
||||||
|
불러오는 중...
Reference in New Issue
Block a user