#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);
}