bool checkAdministrator() { if (session_.user() && (session_.user()->role == User::Admin)) return true; panel_->show(); if (!mustBeAdministratorWarning_) panel_->addWidget(mustBeAdministratorWarning_ = new WTemplate(tr("blog-mustbeadministrator"))); panel_->setCurrentWidget(mustBeAdministratorWarning_); return false; }
bool checkLoggedIn() { if (session_.user()) return true; panel_->show(); if (!mustLoginWarning_) panel_->addWidget(mustLoginWarning_ = new WTemplate(tr("blog-mustlogin"))); panel_->setCurrentWidget(mustLoginWarning_); return false; }
void authorPanel() { panel_->show(); if (!authorPanel_) { authorPanel_ = new WTemplate(tr("blog-author-panel")); panel_->addWidget(authorPanel_); bindPanelTemplates(); } panel_->setCurrentWidget(authorPanel_); }
void editUsers() { panel_->show(); if (!users_) { users_ = new EditUsers(session_, basePath_); panel_->addWidget(users_); bindPanelTemplates(); } panel_->setCurrentWidget(users_); }
void editUser(const std::string& ids) { if (!checkLoggedIn()) return; if (!checkAdministrator()) return; dbo::dbo_traits<User>::IdType id; try { id = boost::lexical_cast<dbo::dbo_traits<User>::IdType>(ids); } catch (boost::bad_lexical_cast&) { id = dbo::dbo_traits<User>::invalidId(); } panel_->show(); try { dbo::Transaction t(session_); dbo::ptr<User> target(session_.load<User>(id)); if (!userEditor_) panel_->addWidget(userEditor_ = new EditUser(session_)); userEditor_->switchUser(target); panel_->setCurrentWidget(userEditor_); } catch (Dbo::ObjectNotFoundException) { if (!invalidUser_) panel_->addWidget(invalidUser_ = new WTemplate(tr("blog-invaliduser"))); panel_->setCurrentWidget(invalidUser_); } }