Skip to content

Commit

Permalink
#638 #1041: Adding View User functionality instead of Edit User
Browse files Browse the repository at this point in the history
  • Loading branch information
simsekgokhan committed Feb 6, 2019
1 parent 82f090f commit 68bfc67
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 33 deletions.
40 changes: 12 additions & 28 deletions src/robomongo/gui/widgets/explorer/ExplorerUserTreeItem.cpp
Expand Up @@ -4,9 +4,11 @@
#include <QMenu>

#include "robomongo/gui/dialogs/CreateUserDialog.h"
#include "robomongo/gui/utils/DialogUtils.h"
#include "robomongo/gui/GuiRegistry.h"
#include "robomongo/gui/utils/DialogUtils.h"

#include "robomongo/core/AppRegistry.h"
#include "robomongo/core/domain/App.h"
#include "robomongo/core/domain/MongoDatabase.h"
#include "robomongo/core/domain/MongoServer.h"
#include "robomongo/core/settings/ConnectionSettings.h"
Expand All @@ -23,7 +25,7 @@ namespace
std::string buildToolTip(const Robomongo::MongoUser &user)
{
char buff[2048] = {0};
sprintf(buff, tooltipTemplate, user.name().c_str(), user.id().toString().c_str());
sprintf(buff, tooltipTemplate, user.name().c_str(), user.id().c_str());
return buff;
}
}
Expand All @@ -36,10 +38,10 @@ namespace Robomongo
QAction *dropUser = new QAction("Drop User", this);
VERIFY(connect(dropUser, SIGNAL(triggered()), SLOT(ui_dropUser())));

QAction *editUser = new QAction("Edit User", this);
VERIFY(connect(editUser, SIGNAL(triggered()), SLOT(ui_editUser())));
QAction *viewUser = new QAction("View User", this);
VERIFY(connect(viewUser, SIGNAL(triggered()), SLOT(ui_viewUser())));

BaseClass::_contextMenu->addAction(editUser);
BaseClass::_contextMenu->addAction(viewUser);
BaseClass::_contextMenu->addAction(dropUser);

setText(0, QtUtils::toQString(_user.name()));
Expand All @@ -56,31 +58,13 @@ namespace Robomongo
QtUtils::toQString(_user.name()));

if (answer == QMessageBox::Yes)
_database->dropUser(_user.id(), _user.name());
_database->dropUser(_user.name());
}

void ExplorerUserTreeItem::ui_editUser()
void ExplorerUserTreeItem::ui_viewUser()
{
std::unique_ptr<CreateUserDialog> dlg = nullptr;

float const version = _user.version();
if (version < MongoUser::minimumSupportedVersion) {
dlg.reset(new CreateUserDialog(
QtUtils::toQString(_database->server()->connectionRecord()->getFullAddress()),
QtUtils::toQString(_database->name()), _user, treeWidget()));
}
else {
dlg.reset(new CreateUserDialog(_database->server()->getDatabasesNames(),
QtUtils::toQString(_database->server()->connectionRecord()->getFullAddress()),
QtUtils::toQString(_database->name()), _user, treeWidget()));
}

dlg->setWindowTitle("Edit User");
dlg->setUserPasswordLabelText("New Password:");

if (dlg->exec() == QDialog::Accepted) {
MongoUser user = dlg->user();
_database->createUser(user, true);
}
auto const& app = Robomongo::AppRegistry::instance().app();
app->openShell(_database, QString::fromStdString("db.getUser(\"" + _user.name() + "\")"), true,
Robomongo::QtUtils::toQString(_database->name()), Robomongo::CursorPosition());
}
}
4 changes: 2 additions & 2 deletions src/robomongo/gui/widgets/explorer/ExplorerUserTreeItem.h
Expand Up @@ -14,9 +14,9 @@ namespace Robomongo
typedef ExplorerTreeItem BaseClass;
ExplorerUserTreeItem(QTreeWidgetItem *parent, MongoDatabase *const database, const MongoUser &user);

private Q_SLOTS:
public Q_SLOTS:
void ui_dropUser();
void ui_editUser();
void ui_viewUser();

private:
const MongoUser _user;
Expand Down
11 changes: 8 additions & 3 deletions src/robomongo/gui/widgets/explorer/ExplorerWidget.cpp
Expand Up @@ -16,6 +16,7 @@
#include "robomongo/gui/widgets/explorer/ExplorerDatabaseCategoryTreeItem.h"
#include "robomongo/gui/widgets/explorer/ExplorerReplicaSetTreeItem.h"
#include "robomongo/gui/widgets/explorer/ExplorerReplicaSetFolderItem.h"
#include "robomongo/gui/widgets/explorer/ExplorerUserTreeItem.h"

namespace Robomongo
{
Expand Down Expand Up @@ -146,13 +147,17 @@ namespace Robomongo
}

void ExplorerWidget::ui_itemDoubleClicked(QTreeWidgetItem *item, int column)
{
auto collectionItem = dynamic_cast<ExplorerCollectionTreeItem *>(item);
if (collectionItem) {
{
if (auto collectionItem = dynamic_cast<ExplorerCollectionTreeItem *>(item)) {
AppRegistry::instance().app()->openShell(collectionItem->collection());
return;
}

if (auto userItem = dynamic_cast<ExplorerUserTreeItem *>(item)) {
userItem->ui_viewUser();
return;
}

auto replicaMemberItem = dynamic_cast<ExplorerReplicaSetTreeItem*>(item);
if (replicaMemberItem && replicaMemberItem->isUp()) {
AppRegistry::instance().app()->openShell(replicaMemberItem->server(),
Expand Down

0 comments on commit 68bfc67

Please sign in to comment.