mira-dev team mailing list archive
-
mira-dev team
-
Mailing list archive
-
Message #00072
[Branch ~mira-dev/mira/trunk] Rev 213: Patched trunk with Shilpa's fix for Bug ref: 579033
------------------------------------------------------------
revno: 213
committer: Max Bossino <max@xxxxxxxxxxxxxxxxx>
branch nick: trunk
timestamp: Tue 2010-05-18 01:27:21 +0200
message:
Patched trunk with Shilpa's fix for Bug ref: 579033
modified:
mira-server/include/network/messages/MsgJoinGroup.h
--
lp:mira/trunk
https://code.launchpad.net/~mira-dev/mira/trunk
Your team Mira Core Development Team is subscribed to branch lp:mira/trunk.
To unsubscribe from this branch go to https://code.launchpad.net/~mira-dev/mira/trunk/+edit-subscription
=== modified file 'mira-server/include/network/messages/MsgJoinGroup.h'
--- mira-server/include/network/messages/MsgJoinGroup.h 2010-03-17 02:59:54 +0000
+++ mira-server/include/network/messages/MsgJoinGroup.h 2010-05-17 23:27:21 +0000
@@ -48,9 +48,12 @@
{
//Checking if the Group exist
WorkPlace workgroup = Application::get_directory().find_workplace(message_field.at(0));
+
if(workgroup.is_valid())
{
User user = Application::get_directory().find_user(m_source_connection->get_user_id());
+ std::string wg_id_str = IntToString(workgroup.get_id());
+
//Adding group(id) to user's workplace_list
Field field = user.get_field(ATTRIBUTE_WORKPLACE_LIST);
if(field.type == Field::type_invalid)
@@ -58,11 +61,20 @@
field.type = Field::list(Field::type_uint16);
field.attribute = ATTRIBUTE_WORKPLACE_LIST;
field.value = " ";
- field.value_list = std::list<std::string>(1, IntToString(workgroup.get_id()));
+ field.value_list = std::list<std::string>(1, wg_id_str);
}
else
{
- field.value_list.push_back(IntToString(workgroup.get_id()));
+ //Checking if the User is already the member of the workgroup.
+ std::list<std::string>::iterator pos = find(field.value_list.begin(), field.value_list.end(), wg_id_str);
+ if(pos != field.value_list.end())
+ {
+ string error_message = "E JG Already Member of the Group ";
+ error_message += message_field.at(0) + ".Can't rejoin the group ";
+ m_source_connection->send(error_message);
+ return;
+ }
+ field.value_list.push_back(wg_id_str);
}
user.set_field(field);
Application::get_directory().update_user(user);