mira-dev team mailing list archive
-
mira-dev team
-
Mailing list archive
-
Message #00042
[Branch ~mira-dev/mira/trunk] Rev 202: New User creation form
------------------------------------------------------------
revno: 202
committer: Alan Alvarez <aalvarez@xxxxxxxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-05-06 14:25:38 -0400
message:
New User creation form
modified:
mira-client/CMakeLists.txt
mira-client/include/gui/qt/GuiApp.h
mira-client/include/gui/qt/MainWindow.h
mira-client/include/network/messages/MsgError.h
mira-client/include/network/messages/MsgUserAccepted.h
mira-client/src/Application.cpp
mira-client/src/gui/qt/GuiApp.cpp
mira-client/src/gui/qt/MainWindow.cpp
mira-server/include/network/messages/MsgNewUser.h
--
lp:mira
https://code.launchpad.net/~mira-dev/mira/trunk
Your team Mira Core Development Team is subscribed to branch lp:mira.
To unsubscribe from this branch go to https://code.launchpad.net/~mira-dev/mira/trunk/+edit-subscription
=== modified file 'mira-client/CMakeLists.txt'
--- mira-client/CMakeLists.txt 2010-03-10 15:53:17 +0000
+++ mira-client/CMakeLists.txt 2010-05-06 18:25:38 +0000
@@ -20,6 +20,7 @@
"src/gui/qt/GuiApp.cpp"
"src/gui/qt/NavigationTreeWidgetItem.cpp"
"src/gui/qt/NavigationDockWidget.cpp"
+ "src/gui/qt/NewUserDialog.cpp"
"src/gui/qt/Workplace.cpp"
"src/gui/qt/WorkplaceDialog.cpp"
"src/gui/qt/WorkplaceWidget.cpp"
@@ -40,6 +41,7 @@
"include/gui/qt/LoginDialog.h"
"include/gui/qt/MainWindow.h"
"include/gui/qt/NavigationDockWidget.h"
+ "include/gui/qt/NewUserDialog.h"
)
# add boost include directories
INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIRS})
=== modified file 'mira-client/include/gui/qt/GuiApp.h'
--- mira-client/include/gui/qt/GuiApp.h 2010-04-28 21:37:28 +0000
+++ mira-client/include/gui/qt/GuiApp.h 2010-05-06 18:25:38 +0000
@@ -39,6 +39,8 @@
void trayMessage(const QString& title, const QString& message);
void receiveChatMessage(const std::string& source, const std::string& message);
void setWorkplaceDescription(const std::string& workplace, const std::string& description);
+ void userAccepted(const std::string& username);
+ void newUserError(const std::string& message);
private slots:
void MiscTrigger();
signals:
=== modified file 'mira-client/include/gui/qt/MainWindow.h'
--- mira-client/include/gui/qt/MainWindow.h 2010-04-28 21:37:28 +0000
+++ mira-client/include/gui/qt/MainWindow.h 2010-05-06 18:25:38 +0000
@@ -45,6 +45,7 @@
void about();
void createWorkplace();
void joinWorkplace();
+ void newUser();
private:
friend class GuiApp;
@@ -70,6 +71,7 @@
QAction * m_chatFocusAction;
QAction * m_createWorkplaceAction;
QAction * m_joinWorkplaceAction;
+ QAction * m_newUserAction;
//Menus
QMenu * m_fileMenu;
=== modified file 'mira-client/include/network/messages/MsgError.h'
--- mira-client/include/network/messages/MsgError.h 2010-02-23 04:26:48 +0000
+++ mira-client/include/network/messages/MsgError.h 2010-05-06 18:25:38 +0000
@@ -55,6 +55,11 @@
QMetaObject::invokeMethod(Application::get_gui_application()->m_mainWindow, "loginFailed", Qt::QueuedConnection, MIRA_QT_GENERIC_ARG(const QString, QString(m_message.substr(2).c_str())));
else
QMetaObject::invokeMethod(Application::get_gui_application()->m_mainWindow, "loginFailed", Qt::QueuedConnection, MIRA_QT_GENERIC_ARG(const QString, QString("")));
+ break;
+
+ case Msg::NEW_USER:
+ QMetaObject::invokeMethod(Application::get_gui_application(), "newUserError", Qt::QueuedConnection, MIRA_QT_GENERIC_ARG(std::string, m_message.substr(3)));
+ break;
}
}
};
=== modified file 'mira-client/include/network/messages/MsgUserAccepted.h'
--- mira-client/include/network/messages/MsgUserAccepted.h 2009-11-07 19:45:43 +0000
+++ mira-client/include/network/messages/MsgUserAccepted.h 2010-05-06 18:25:38 +0000
@@ -21,7 +21,10 @@
#define __MIRASERVER__NETWORK_MSGUSERACCEPTED_H
#include <string>
+#include <QMetaObject>
#include "Msg.h"
+#include "tools.h"
+#include "Application.h"
namespace miraclient
{
@@ -37,7 +40,12 @@
virtual void run()
{
- //
+ size_t pos = m_message.find(" ");
+ if (pos == std::string::npos)
+ return;
+
+ std::string username = m_message.substr(pos+1);
+ QMetaObject::invokeMethod(Application::get_gui_application(), "userAccepted", Qt::QueuedConnection, MIRA_QT_GENERIC_ARG(std::string, username));
}
};
} // namespace network
=== modified file 'mira-client/src/Application.cpp'
--- mira-client/src/Application.cpp 2010-04-16 19:30:32 +0000
+++ mira-client/src/Application.cpp 2010-05-06 18:25:38 +0000
@@ -55,6 +55,7 @@
network::Msg::add_token(network::Msg::GROUP_ACCEPTED, "GA");
network::Msg::add_token(network::Msg::GROUP_JOINED, "GJ");
network::Msg::add_token(network::Msg::NEW_MEMBER, "NM");
+ network::Msg::add_token(network::Msg::NEW_USER, "NU");
network::Msg::add_token(network::Msg::USER_STATUS, "US");
boost::filesystem::path xml_file_path(GET_HOME_PATH());
=== modified file 'mira-client/src/gui/qt/GuiApp.cpp'
--- mira-client/src/gui/qt/GuiApp.cpp 2010-04-28 21:37:28 +0000
+++ mira-client/src/gui/qt/GuiApp.cpp 2010-05-06 18:25:38 +0000
@@ -257,3 +257,13 @@
workplace_object->setDescription(description);
}
+
+void GuiApp::userAccepted(const std::string &username)
+{
+ QMessageBox::information(m_mainWindow, "New User Accepted", QString("User %1 has been accepted.").arg(username.c_str()));
+}
+
+void GuiApp::newUserError(const std::string& message)
+{
+ QMessageBox::critical(m_mainWindow, "Error!", QString("There was an error while attempting to create a new user: \n %1").arg(message.c_str()));
+}
=== modified file 'mira-client/src/gui/qt/MainWindow.cpp'
--- mira-client/src/gui/qt/MainWindow.cpp 2010-04-20 18:41:11 +0000
+++ mira-client/src/gui/qt/MainWindow.cpp 2010-05-06 18:25:38 +0000
@@ -6,6 +6,7 @@
#include "WorkplaceMember.h"
#include "GuiApp.h"
#include "WorkplaceDialog.h"
+#include "NewUserDialog.h"
#include <QAction>
#include <QMenuBar>
@@ -80,6 +81,7 @@
connect(m_miscTriggerAction,SIGNAL(triggered()),app,SLOT(MiscTrigger()));
connect(m_createWorkplaceAction, SIGNAL(triggered()), SLOT(createWorkplace()));
connect(m_joinWorkplaceAction, SIGNAL(triggered()), SLOT(joinWorkplace()));
+ connect(m_newUserAction, SIGNAL(triggered()), SLOT(newUser()));
connect(m_chatFocusAction,SIGNAL(triggered()),m_chatWidget,SLOT(FocusOnChat()));
connect(app,SIGNAL(AddedUtility(const std::string&,Utility*)),m_navigationWidget,SLOT(AddUtility(const std::string&,Utility*)));
connect(app,SIGNAL(AddedWorkplace(Workplace *)),m_navigationWidget,SLOT(AddWorkplace(Workplace *)));
@@ -126,6 +128,12 @@
m_joinWorkplaceAction->setShortcut(tr("Ctrl+J"));
m_joinWorkplaceAction->setToolTip(tr("Join a Workplace"));
m_joinWorkplaceAction->setDisabled(true);
+
+ //New User Action
+ m_newUserAction = new QAction(tr("&New User"), this);
+ m_newUserAction->setShortcut(tr("Ctrl+N"));
+ m_newUserAction->setToolTip(tr("Create a new User"));
+ m_newUserAction->setDisabled(true);
}
void MainWindow::closeEvent(QCloseEvent * event)
@@ -169,11 +177,12 @@
m_fileMenu = menuBar()->addMenu(tr("&File"));
m_fileMenu->addAction(m_exitAction);
- //Login Menu
+ //Actions Menu
m_actionsMenu = menuBar()->addMenu(tr("&Actions"));
m_actionsMenu->addAction(m_loginAction);
m_actionsMenu->addAction(m_createWorkplaceAction);
m_actionsMenu->addAction(m_joinWorkplaceAction);
+ m_actionsMenu->addAction(m_newUserAction);
//View Menu
//m_viewMenu = createPopupMenu();
@@ -239,6 +248,7 @@
m_loginAction->setDisabled(true);
m_createWorkplaceAction->setEnabled(true);
m_joinWorkplaceAction->setEnabled(true);
+ m_newUserAction->setEnabled(true);
}
void MainWindow::loginFailed(const QString& error_message)
@@ -252,6 +262,7 @@
m_loginAction->setDisabled(false);
m_createWorkplaceAction->setDisabled(true);
m_joinWorkplaceAction->setDisabled(true);
+ m_newUserAction->setDisabled(true);
emit serverConnectionTerminated();
}
@@ -278,3 +289,9 @@
miraclient::Application::get_client()->send("JG " + workplace.toStdString());
}
}
+
+void MainWindow::newUser()
+{
+ NewUserDialog dialog(this);
+ dialog.exec();
+}
=== modified file 'mira-server/include/network/messages/MsgNewUser.h'
--- mira-server/include/network/messages/MsgNewUser.h 2009-11-22 04:31:08 +0000
+++ mira-server/include/network/messages/MsgNewUser.h 2010-05-06 18:25:38 +0000
@@ -44,9 +44,8 @@
{}
virtual void run()
- {
-
- // Splitting message into fields.
+ {
+ // Splitting message into fields.
vector<std::string> message_field = Split(m_message, " ");
if(message_field.size() >= 4) //excluding token, stripped at Msg::parse
@@ -54,20 +53,20 @@
// Checking if the username already exist
if(Application::get_directory().find_user(message_field.at(0)).is_valid())
{
- string error_message = "E User ";
+ string error_message = "E NU User ";
error_message += message_field.at(0) + " exist";
m_source_connection->send(error_message);
}
else
{
User user(message_field.at(0));
-
+
Field field = {Field::type_string, ATTRIBUTE_EMAIL, message_field.at(1), std::list<std::string>()};
user.set_field(field);
-
+
// TODO: If client sends encrypted password then
- // we don't need to encrypt password here.
-
+ // we don't need to encrypt password here.
+
field.attribute = ATTRIBUTE_PASSWORD;
field.value = Crypto::EncryptPassword(message_field.at(2));
user.set_field(field);
@@ -75,15 +74,15 @@
field.attribute = ATTRIBUTE_NAME;
field.value = message_field.at(3);
user.set_field(field);
-
- //Optional attributes in NU message
+
+ //Optional attributes in NU message
if(message_field.size() > 4)
{
field.attribute = ATTRIBUTE_LAST_NAME;
field.value = message_field.at(4);
user.set_field(field);
- }
-
+ }
+
Application::get_directory().add_user(user);
//After role model is developed this will change.