diff --git a/approot/messages.xml b/approot/messages.xml
index 608a5fe3..e258382c 100644
--- a/approot/messages.xml
+++ b/approot/messages.xml
@@ -38,6 +38,8 @@
New user
Admin
Delete
+Delete user
+Delete user?
Demo
Edit
Users
diff --git a/src/ui/admin/UsersView.cpp b/src/ui/admin/UsersView.cpp
index 226a3acc..fbddd2e2 100644
--- a/src/ui/admin/UsersView.cpp
+++ b/src/ui/admin/UsersView.cpp
@@ -19,8 +19,9 @@
#include "UsersView.hpp"
-#include
#include
+#include
+#include
#include "database/User.hpp"
#include "utils/Logger.hpp"
@@ -72,7 +73,8 @@ UsersView::refreshView()
continue;
}
- entry->bindString("name", authUser.identity(Wt::Auth::Identity::LoginName), Wt::TextFormat::Plain);
+ auto login = authUser.identity(Wt::Auth::Identity::LoginName);
+ entry->bindString("name", login, Wt::TextFormat::Plain);
// Create tag
if (user->isAdmin() || user->isDemo())
@@ -93,16 +95,30 @@ UsersView::refreshView()
}));
Wt::WPushButton* delBtn = entry->bindNew("del-btn", Wt::WString::tr("Lms.Admin.Users.del"));
- delBtn->clicked().connect(std::bind([=]
+ delBtn->clicked().connect([=]
{
- Wt::Dbo::Transaction transaction(LmsApp->getDboSession());
+ auto msgBox = delBtn->addChild(std::make_unique(Wt::WString::tr("Lms.Admin.Users.del-user"),
+ Wt::WString::tr("Lms.Admin.Users.del-user-name"),
+ Wt::Icon::Warning, Wt::StandardButton::Yes | Wt::StandardButton::No));
- auto authUser = LmsApp->getDb().getUserDatabase().findWithId(userId);
- auto user = LmsApp->getDb().getUser(authUser);
- LmsApp->getDb().getUserDatabase().deleteUser( authUser );
- user.remove();
- _container->removeWidget(entry);
- }));
+ msgBox->setModal(true);
+ msgBox->buttonClicked().connect([=] (Wt::StandardButton btn)
+ {
+ if (btn == Wt::StandardButton::Yes)
+ {
+ Wt::Dbo::Transaction transaction(LmsApp->getDboSession());
+
+ auto authUser = LmsApp->getDb().getUserDatabase().findWithId(userId);
+ auto user = LmsApp->getDb().getUser(authUser);
+ LmsApp->getDb().getUserDatabase().deleteUser( authUser );
+ user.remove();
+ _container->removeWidget(entry);
+ }
+ delBtn->removeChild(msgBox);
+ });
+
+ msgBox->show();
+ });
}
}