Exemple #1
0
void MemberProfile::updateParticularsMenu(string& tempUser)
{
    int options;
    int location = index(tempUser);
    do
    {
        cout << "--------------------------------------------------" << endl;
        cout << "Which particulars do you want to update/amend?" << endl;
        cout << "--------------------------------------------------" << endl;
        cout << endl;
        cout << "     1) Update username" << endl;
        cout << "     2) Update password" << endl;
        cout << "     3) Update name" << endl;
        cout << "     4) Update nric" << endl;
        cout << "     5) Update date of birth" << endl;
        cout << "     6) Update gender " << endl;
        cout << "     7) Update address" << endl;
        cout << "     8) Update booking preference" << endl;
        cout << "     9) Want notification?" << endl;
        cout << "     10) Back to main menu" << endl;
        cout << endl;
        cout << "Options: ";
        cin >> options;
        cin.clear();
        cin.ignore(300,'\n');
        cout << endl;
        switch (options)
        {
            case 1: updateUsername(location, tempUser);
                    break;
            case 2: updatePassword(location);
                    break;    
            case 3: updateName(location);
                    break;    
            case 4: updateNric(location);
                    break;    
            case 5: updateDOB(location);
                    break;  
            case 6: updateGender(location);
                    break;    
            case 7: updateAddress(location);
                    break;    
            case 8: cout << "To be updated" << endl;;
                    break;    
            case 9: wantNotification(location);
                    break;
                    
            default: cout << "Please enter a valid option" << endl;                                                                  
        }
    } while (options != 10);
}
void Utility::HandleCommand::command(const HandleMessage &pCommand, Room *pRoom, Entity::Client *pClient)
{    
    switch ( static_cast<Command::Code> (pCommand.getKey("command").toInt()) )
    {
        case Command::EDIT_PASSWORD:
            updatePassword(pCommand.getKey("newPassword").toString(), pClient);
            break;

        case Command::JOIN_ROOM:
            joinRoom(pCommand.getKey("newRoom").toString(), pRoom, pClient);
            break;

        default:
            Utility::HandleMessage message{};
                message.setType(TypeMessage::ERROR_MESSAGE);
                message.setKey("code", Error::UNKNOW_COMMAND);

            pClient->sendTextMessage(message.toString());
            break;
    }
}
int phoneOperatorUserInfo(struct bufferevent *bev, client_t *client, char *packet, int length) {
	char u8PhoneId[LEN_PHONE_ID*2+1] = {0};
	char u8UserName[LEN_PHONE_USERNAME+1] = {0};
	//phone id hex to string				
	hextostring(u8PhoneId ,packet+IDX_PHONE_ID, LEN_PHONE_ID);
	memcpy(u8UserName, packet+IDX_PHONE_USERNAME, LEN_PHONE_USERNAME);
			
	switch (packet[IDX_PHONE_COMMAND]) {
		case CMD_PHONE_REGISTER_USER: {
			int u32UserId = 0;
			char u8Password[LEN_PHONE_PASSWORD+1] = {0};
			char retBuf[LEN_DEVICE_RETURN_BUFFER*2] = {0};
			retBuf[0] = 'R';
			retBuf[1] = 'E';
			retBuf[2] = 'T';
			retBuf[3] = 'O';
			retBuf[4] = 'K';
			retBuf[5] = ':';
			
			memcpy(u8Password, packet+IDX_PHONE_PASSWORD, LEN_PHONE_PASSWORD);
			
			if (OK == insertUser(u8UserName, u8Password)) {
				//return userid			
				if (OK == selectUserId(u8UserName, u8Password, &u32UserId)) {					
					memcpy(retBuf+IDX_PHONE_RETURN_USERID, &u32UserId, LEN_PHONE_ID);
					apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
				} else {					
					retBuf[3] = 'N';
					retBuf[4] = 'O';
					retBuf[IDX_PHONE_RETURN_USERID] = RET_PHONE_GETUSERID_FAILED;
					apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
				}
			} else {
				//return sign in failed
				retBuf[3] = 'N';
				retBuf[4] = 'O';
				retBuf[IDX_PHONE_RETURN_USERID] = RET_PHONE_SIGNIN_FAILED;
				apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
			}
			break;
		}
		case CMD_PHONE_SIGNIN_USER: {
			int u32UserId = 0;
			char u8Password[LEN_PHONE_PASSWORD+1] = {0};
			char retBuf[LEN_DEVICE_RETURN_BUFFER*2] = {0};
			retBuf[0] = 'R';
			retBuf[1] = 'E';
			retBuf[2] = 'T';
			retBuf[3] = 'O';
			retBuf[4] = 'K';
			retBuf[5] = ':';

			memcpy(u8Password, packet+IDX_PHONE_PASSWORD, LEN_PHONE_PASSWORD);
			if (OK == selectUserId(u8UserName, u8Password, &u32UserId)) {					
				memcpy(retBuf+IDX_PHONE_RETURN_USERID, &u32UserId, LEN_PHONE_ID);
				apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
			} else {					
				retBuf[3] = 'N';
				retBuf[4] = 'O';
				retBuf[IDX_PHONE_RETURN_USERID] = RET_PHONE_USERID_NOEXIST;
				apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
			}
			
			break;
		}
		case CMD_PHONE_UPDATE_PWD: {
			char u8Password[LEN_PHONE_PASSWORD+1] = {0};
			char retBuf[LEN_DEVICE_RETURN_BUFFER*2] = {0};
			retBuf[0] = 'R';
			retBuf[1] = 'E';
			retBuf[2] = 'T';
			retBuf[3] = 'O';
			retBuf[4] = 'K';
			retBuf[5] = ':';

			memcpy(u8Password, packet+IDX_PHONE_PASSWORD, LEN_PHONE_PASSWORD);

			if (OK == updatePassword(u8Password, u8UserName)) {	
				retBuf[IDX_PHONE_RETURN_USERID] = RET_PHONE_SUCCESS;
				apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
			} else {					
				retBuf[3] = 'N';
				retBuf[4] = 'O';
				retBuf[IDX_PHONE_RETURN_USERID] = RET_PHONE_UPDATE_PWD_FAILED;
				apolloReturnPacket(bev, client, retBuf, LEN_DEVICE_RETURN_BUFFER*2);
			}
			
			break;
		}
		case CMD_PHONE_BIND_DEVICE: {
			break;
		}
		case CMD_PHONE_UNBIND_DEVICE: {
			//delete mysql

			//delete redis key
			break;
		}
	}
	return 0;
}
void MoodBoxServer::updatePassword(Callback callback, QString newPassword, QString oldPassword)
{
    updatePassword(callback, QVariant(), newPassword, oldPassword);
}