// MBUserAce.cpp : implementation file // #include "stdafx.h" #include "MBUserAce.h" // CMBUserAce // AceȨÏÞ #define STK_ACETYPE_ADDOUTORGUSER ( _T("100") ) // Ìí¼ÓÍⵥλÁªÏµÈË #define STK_ACETYPE_USEWORKNOTE ( _T("101") ) // ʹÓù¤×÷Ç©Ãû #define STK_ACETYPE_HIDE ( _T("102") ) // ÒþÉí #define STK_ACETYPE_SENDATTACH ( _T("103") ) // ·¢ËÍÎļþ #define STK_ACETYPE_ATTACHSIZE ( _T("103-00") ) // ÿ´Î·¢ËÍÎļþ´óС #define STK_ACETYPE_ATTACHFILETYPE ( _T("103-01") ) // Îļþºó׺ÏÞÖÆ #define STK_ACETYPE_ATTACHORG ( _T("103-02") ) // ¿ç²¿ÃÅÎļþ´«ËÍ #define STK_ACETYPE_ATTACHORG_EXAMINE ( _T("103-02-00") ) // ÊÇ·ñÐèÒªÉóºË #define STK_ACETYPE_ATTACHORG_TACTIC ( _T("103-02-01") ) // ¿ç²¿ÃÅ´«Ë͹æÔò #define STK_ACETYPE_CAPTURE ( _T("104") ) // ½ØÆÁ´«Í¼ #define STK_ACETYPE_AUDIO ( _T("105") ) // ʹÓÃÒôƵ #define STK_ACETYPE_VIDIO ( _T("106") ) // ʹÓÃÊÓÆµ #define STK_ACETYPE_CROWDADMIN ( _T("107") ) // ´´½¨Èº #define STK_ACETYPE_CROWDLIMIT ( _T("107-00") ) // Ⱥ¸öÊýÏÞÖÆ #define STK_ACETYPE_CROWDUSERLOMIT ( _T("107-01") ) // ȺÓû§¸öÊýÏÞÖÆ #define STK_ACETYPE_CANMULTIPALERSESSION ( _T("108") ) // ·¢Æð¶àÈ˶Ի° #define STK_ACETYPE_MULTIPALERSESSIONUSERLIMIT ( _T("108-00") ) // »á»°ÈËÊý #define STK_ACETYPE_CANDEPARTMENTMASS ( _T("109") ) // Ⱥ·¢ÏûÏ¢{²¿ÃÅ} #define STK_ACETYPE_CANUNITMASS ( _T("110") ) // Ⱥ·¢ÏûÏ¢{µ¥Î»} #define STK_ACETYPE_MULRECEIVE ( _T("111") ) // Ⱥ·¢ÏûÏ¢¡¾È«Ìå¡¿ #define STK_ACETYPE_RECEIVECOUNT ( _T("111-00") ) // Ⱥ·¢ÏûÏ¢ÈËÊý #define STK_ACETYPE_SENDSMS ( _T("112") ) // ·¢ËͶÌÐÅ #define STK_ACETYPE_SENDSMSCOUNT ( _T("112-00") ) // ·¢ËͶÌÐÅÌõÊý #define STK_ACETYPE_MODIFYPASSWORD ( _T("113") ) // ÐÞ¸ÄÃÜÂë #define STK_ACETYPE_SHOWTEl ( _T("114") ) // ÏÔʾÊÖ»úºÅ #define STK_ACETYPE_P2PSENDFILE ( _T("115") ) // p2p´«ÊäÎļþ #define STK_ACETYPE_GETUSERIP ( _T("116") ) // »ñÈ¡Óû§µÄµÇ¼ipÐÅÏ¢ #define STK_ACETYPE_MOBILEREMIND ( _T("117") ) // ÊÖ»úÌáÐÑ #define STK_ACETYPE_PUBLISHNOTICE ( _T("118") ) // ¹«¸æ·¢²¼ CMBUserAce::CMBUserAce() { m_strLoginName = _T(""); m_strUserName = _T(""); m_bCanAddOutUser = false; m_bUserWorkSign = true; m_bCanHide = true; m_bCanSendFile = true; m_asFileLimitExt.RemoveAll(); m_nFileSizeLimit = -1; m_bCrossSectoralSend = true; m_bIsAuditSend = false; m_bIsCrossSectoralRule = false; m_bCanCutScreen = true; m_bCanAudio = false; m_bCanVideo = false; m_bCanCreateCrowd = true; m_nCrowdLimit = -1; m_nCrowdUsersLimit = -1; m_bCanMultiplayerSession = true; m_nMultiplayerSessionUsersLimit = -1; m_bCanDepartmentMass = true; m_bCanUnitMass = true; m_bCanPlenaryMass = true; m_nPlenaryMassUsersLimit= -1; m_bCanSendSMS = false; m_nSendSMSCount = -1; m_bCanModifyPassword = false; m_bCanShowTel = true; m_bCanP2PSendFile = true; m_bCanGetUserIP = false; m_bMoblilePhoneRemind = false; m_bPublishNotice = false; } CMBUserAce::~CMBUserAce() { } // CMBUserAce member functions void CMBUserAce::operator = ( const CMBUserAce &Item ) { m_strLoginName = Item.m_strLoginName; m_strUserName = Item.m_strUserName; m_bUserWorkSign = Item.m_bUserWorkSign; m_bCanAddOutUser = Item.m_bCanAddOutUser; m_bCanHide = Item.m_bCanHide; m_bCanSendFile = Item.m_bCanSendFile; m_nFileSizeLimit = Item.m_nFileSizeLimit; m_bCrossSectoralSend = Item.m_bCrossSectoralSend; m_bIsAuditSend = Item.m_bIsAuditSend; m_bIsCrossSectoralRule = Item.m_bIsCrossSectoralRule; m_bCanCutScreen = Item.m_bCanCutScreen; m_bCanAudio = Item.m_bCanAudio; m_bCanVideo = Item.m_bCanVideo; m_bCanCreateCrowd = Item.m_bCanCreateCrowd; m_nCrowdLimit = Item.m_nCrowdLimit; m_nCrowdUsersLimit = Item.m_nCrowdUsersLimit; m_bCanMultiplayerSession = Item.m_bCanMultiplayerSession; m_nMultiplayerSessionUsersLimit = Item.m_nMultiplayerSessionUsersLimit; m_bCanDepartmentMass = Item.m_bCanDepartmentMass; m_bCanUnitMass = Item.m_bCanUnitMass; m_bCanPlenaryMass = Item.m_bCanPlenaryMass; m_nPlenaryMassUsersLimit = Item.m_nPlenaryMassUsersLimit; m_bCanSendSMS = Item.m_bCanSendSMS; m_nSendSMSCount = Item.m_nSendSMSCount; m_bCanModifyPassword = Item.m_bCanModifyPassword; m_bCanShowTel = Item.m_bCanShowTel; m_bCanP2PSendFile = Item.m_bCanP2PSendFile; m_asFileLimitExt.RemoveAll(); m_asFileLimitExt.Copy(Item.m_asFileLimitExt); } void CMBUserAce::LoadAceXml(CString strAceXml) { COIXMLParser xmlParser; IXMLDOMElementPtr ptrBody; IXMLDOMNodePtr ptrNode,ptrNext; CString strNodeName,strNodeValue,strAttrValue; if(strAceXml.IsEmpty()) return ; if( !xmlParser.ParseXMLStr(strAceXml, ptrBody) ) { return; } COIXMLParser::GetNodeContent(ptrBody, strNodeName, strNodeValue); if(0 != strNodeName.CompareNoCase(_T("Body"))) { return; } ptrBody->get_firstChild( &ptrNode); while(ptrNode) { COIXMLParser::GetNodeContent(ptrNode, strNodeName, strNodeValue); if(0 == strNodeName.CompareNoCase(_T("Ace"))) { ParseAceItem(ptrNode); } ptrNode->get_nextSibling( &ptrNext); ptrNode = ptrNext; } return; } void CMBUserAce::ParseAceItem(IXMLDOMElementPtr ptrItem ) { CString strAttrValue; CString strCode,strValue; if ( !ptrItem ) return; strCode = _T(""); strValue = _T("");; if( COIXMLParser::GetNodeAttrValue(ptrItem, _T("Code"),strAttrValue )) { strCode = strAttrValue; } if( COIXMLParser::GetNodeAttrValue(ptrItem, _T("Value"),strAttrValue )) { strValue = strAttrValue; } SetAceCodeVaule(strCode, strValue); return; } void CMBUserAce::SetAceCodeVaule(CString strName, CString strValue) { if(strValue.IsEmpty()) return; if(strName == STK_ACETYPE_ADDOUTORGUSER) { m_bCanAddOutUser = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_USEWORKNOTE) { m_bUserWorkSign = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_HIDE) { m_bCanHide = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_SENDATTACH) { m_bCanSendFile = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_ATTACHSIZE) { m_nFileSizeLimit = _tstol(strValue); return; } if(strName == STK_ACETYPE_ATTACHFILETYPE) { GetFileLimit(m_asFileLimitExt, strValue); return; } if(strName == STK_ACETYPE_ATTACHORG) { m_bCrossSectoralSend = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_ATTACHORG_EXAMINE) { m_bIsAuditSend = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_ATTACHORG_TACTIC) { m_bIsCrossSectoralRule = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_CAPTURE) { m_bCanCutScreen = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_AUDIO) { m_bCanAudio = _tstol(strValue) != 0 ? true: false; return; } if(strName ==STK_ACETYPE_VIDIO) { m_bCanVideo = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_CROWDADMIN) { m_bCanCreateCrowd = _tstol(strValue) != 0 ? true: false; return; } if(strName ==STK_ACETYPE_CROWDLIMIT) { m_nCrowdLimit = _tstol(strValue); return; } if(strName ==STK_ACETYPE_CROWDUSERLOMIT) { m_nCrowdUsersLimit = _tstol(strValue); return; } if(strName == STK_ACETYPE_CANMULTIPALERSESSION) { m_bCanMultiplayerSession = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_MULTIPALERSESSIONUSERLIMIT) { m_nMultiplayerSessionUsersLimit = _tstol(strValue) ; return; } if(strName == STK_ACETYPE_CANDEPARTMENTMASS) { m_bCanDepartmentMass = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_CANUNITMASS) { m_bCanUnitMass = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_MULRECEIVE) { m_bCanPlenaryMass = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_RECEIVECOUNT) { m_nPlenaryMassUsersLimit = _tstol(strValue) ; return; } if(strName == STK_ACETYPE_SENDSMS) { if( m_bCanSendSMS) m_bCanSendSMS = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_SENDSMSCOUNT) { m_nSendSMSCount = _tstol(strValue) ; return; } if(strName == STK_ACETYPE_MODIFYPASSWORD) { m_bCanModifyPassword = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_SHOWTEl) { m_bCanShowTel = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_P2PSENDFILE) { m_bCanP2PSendFile = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_GETUSERIP) { m_bCanGetUserIP = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_MOBILEREMIND) { m_bMoblilePhoneRemind = _tstol(strValue) != 0 ? true: false; return; } if(strName == STK_ACETYPE_PUBLISHNOTICE) { m_bPublishNotice = _tstol(strValue) != 0 ? true: false; return; } } void CMBUserAce::SetDefaultData() { m_strLoginName = _T(""); m_strUserName = _T(""); m_bCanAddOutUser = false; m_bUserWorkSign = true; m_bCanHide = true; m_bCanSendFile = true; m_asFileLimitExt.RemoveAll(); m_nFileSizeLimit = -1; m_bCrossSectoralSend = true; m_bIsAuditSend = false; m_bIsCrossSectoralRule = false; m_bCanCutScreen = true; m_bCanAudio = false; m_bCanVideo = false; m_bCanCreateCrowd = true; m_nCrowdLimit = -1; m_nCrowdUsersLimit = -1; m_bCanMultiplayerSession = true; m_nMultiplayerSessionUsersLimit = -1; m_bCanDepartmentMass = true; m_bCanUnitMass = true; m_bCanPlenaryMass = true; m_nPlenaryMassUsersLimit = -1; m_bCanSendSMS = false; m_nSendSMSCount = -1; m_bCanModifyPassword = true; m_bCanShowTel = true; m_bCanP2PSendFile = true; m_bCanGetUserIP = false; m_bMoblilePhoneRemind = false; m_bPublishNotice= false; } BOOL CMBUserAce::GetFileLimit( CStringArray &asFileLimit, CString strFileLimit ) { bool bRetValue = true; int nIndex(0), nCount(0); CString strFileExt; CString strApart, strStuff; asFileLimit.RemoveAll( ); strApart = _T(";"); strStuff = strFileLimit; nCount = CBaseStringMgr::GetElementCount( strStuff, strApart ); for ( nIndex = 0; nIndex < nCount; nIndex++ ) { CBaseStringMgr::GetElementItemByIndex( strStuff, nIndex, strFileExt, strApart ); strFileExt.TrimLeft(_T(".")); if ( !strFileExt.IsEmpty() ) asFileLimit.Add( strFileExt ); } return true; } CString CMBUserAce::GetFileLimitExtString() { CString strLimitExts = _T(""); int nNum,nCount; nCount = m_asFileLimitExt.GetSize(); for( nNum = 0 ; nNum < nCount ; nNum++ ) { strLimitExts +=m_asFileLimitExt.GetAt(nNum) + _T(";"); } strLimitExts.TrimRight(_T(";")); return strLimitExts; }