#include "StdAfx.h" #include "MBAuthInfo.h" #define AUTH_AM_FLAG _T("OISTK") #define AUTH_DOC_FLAG _T("OINetDisk") #define AUTH_MOBOX_FLAG _T("OIMobox") #define AUTH_GUNGHO_FLAG _T("OIGungho") IMPLEMENT_DYNAMIC(CMBAuthInfo, CMBAbstBaseObj) CMBAuthInfo::CMBAuthInfo(void) { RemoveAll(); } CMBAuthInfo::~CMBAuthInfo(void) { RemoveAll(); } bool CMBAuthInfo::Add( CMBAuthApp *pApp ) { if( NULL == pApp || pApp->m_strFlag.IsEmpty() ) return false; CMBAuthAppMap::iterator it; CString strFlag; strFlag = pApp->m_strFlag; it = m_map.find(strFlag); // Èç¹ûÕҵõ½ ·µ»Ø if( it != m_map.end() ) return false; m_map[strFlag] = pApp; m_vector.push_back(pApp); return true; } bool CMBAuthInfo::Has(CString strFlag) { if( strFlag.IsEmpty() ) return false; CMBAuthAppMap::iterator it; it = m_map.find(strFlag); // Èç¹ûÕҵõ½ ·µ»Ø if( it != m_map.end() ) return true; return false; } bool CMBAuthInfo::RemoveAll() { CMBAuthAppMap::iterator it; CMBAuthApp *pApp = NULL; for( it = m_map.begin();it != m_map.end();it++ ) { pApp = it->second; delete pApp; pApp = NULL; } m_map.clear(); m_vector.clear(); return true; } void CMBAuthInfo::SetDisableApp( CString strDisableApp ) { if( strDisableApp.IsEmpty() ) return ; m_arDisableApp.RemoveAll(); CMBStrOper::SplitString(strDisableApp, _T(';'),m_arDisableApp); } bool CMBAuthInfo::IsDisableApp(CString strApp) { if( strApp.IsEmpty() ) return false; CString strTmpApp; strApp = strApp.Trim(); strApp = strApp.MakeLower(); int nLen = m_arDisableApp.GetSize(); for( int i = 0;i < nLen;i++ ) { strTmpApp = m_arDisableApp[i]; strTmpApp = strTmpApp.Trim(); strTmpApp = strTmpApp.MakeLower(); if( strTmpApp == strApp ) return true; }// end for return false; } // »ñÈ¡ÊÚȨ void CMBAuthInfo::GetUIAuth(CString &strHeadGroupUI,CString &strTailGroupUI,CStringArray &arTabUI) { strHeadGroupUI = _T(""); strTailGroupUI = _T(""); arTabUI.RemoveAll(); // Ñ¡Ôñ±êʶ bool bSel = true; CString strFlag; CMBAuthAppVector::iterator it; CMBAuthApp *pApp = NULL; CString strTHXml,strTHXml2,strTHXml3,strTHXml4,strPageXml,strPageXml2; for( it = m_vector.begin();it != m_vector.end();it++ ) { pApp = *it; strFlag = pApp->m_strFlag; strFlag = strFlag.Trim(); // ½ûÓ㬲»ÏÔʾ if(IsDisableApp(strFlag)) continue; if( strFlag == AUTH_AM_FLAG ) // ÆóÐÅ { strTHXml.Format(_T("AM"),bSel); strPageXml = _T(""); strTHXml3 = _T(""); strHeadGroupUI += strTHXml; strTailGroupUI += strTHXml3; arTabUI.Add(strPageXml); bSel = false; } else if( strFlag == AUTH_DOC_FLAG )// Îĵµ ´«Êä { strTHXml.Format(_T("Îĵµ"),bSel); strTHXml2 = _T("´«Êä"); strTHXml3 = _T(""); strPageXml = _T(""); strPageXml2 = _T(""); strHeadGroupUI += strTHXml; strHeadGroupUI += strTHXml2; strTailGroupUI += strTHXml3; arTabUI.Add(strPageXml); arTabUI.Add(strPageXml2); bSel = false; } else if( strFlag == AUTH_MOBOX_FLAG ) //Ó¦Óà { strTHXml.Format(_T("Ó¦ÓÃ"),bSel); strPageXml = _T(""); strHeadGroupUI += strTHXml; arTabUI.Add(strPageXml); bSel = false; } else if( strFlag == AUTH_GUNGHO_FLAG ) // ¹¤×÷ { strTHXml.Format(_T("¹¤×÷"),bSel); strPageXml = _T(""); strHeadGroupUI += strTHXml; arTabUI.Add(strPageXml); bSel = false; } } // ÓÐÎĵµÈ¨ÏÞ£¬Óвéѯ if( HasDocAuth() && !IsDisableApp(AUTH_DOC_FLAG) ) { strPageXml = _T(""); arTabUI.Add(strPageXml); } else { if(HasAmAuth() && !IsDisableApp(AUTH_AM_FLAG)) { strTHXml2 = _T("´«Êä"); strPageXml2 = _T(""); strHeadGroupUI += strTHXml2; arTabUI.Add(strPageXml2); bSel = false; } } } // »ñÈ¡ÀëÏß½çÃæ void CMBAuthInfo::GetUIOffline(CString &strHeadGroupUI,CString &strTailGroupUI,CStringArray &arTabUI) { strHeadGroupUI = _T(""); strTailGroupUI = _T(""); arTabUI.RemoveAll(); // Ñ¡Ôñ±êʶ bool bSel = true; CString strFlag; CMBAuthAppVector::iterator it; CMBAuthApp *pApp = NULL; CString strTHXml,strTHXml2,strTHXml3,strTHXml4,strPageXml,strPageXml2; strTHXml.Format(_T("Îĵµ"),bSel); //strTHXml2 = _T("´«Êä"); strTHXml3 = _T(""); strPageXml = _T(""); //strPageXml2 = _T(""); strHeadGroupUI += strTHXml; //strHeadGroupUI += strTHXml2; strTailGroupUI += strTHXml3; arTabUI.Add(strPageXml); //arTabUI.Add(strPageXml2); // ÓÐÎĵµÈ¨ÏÞ£¬Óвéѯ //strPageXml = _T(""); //arTabUI.Add(strPageXml); } // ÓÐÎĵµÊÚȨ bool CMBAuthInfo::HasDocAuth() { return Has(AUTH_DOC_FLAG); } // ÓÐAmÊÚȨ bool CMBAuthInfo::HasAmAuth() { return Has(AUTH_AM_FLAG); } // ÓÐmoboxÊÚȨ bool CMBAuthInfo::HasMobox() { return Has(AUTH_MOBOX_FLAG); } // ÓÐgunghoÊÚȨ bool CMBAuthInfo::HasGungho() { return Has(AUTH_GUNGHO_FLAG); }