// MBRole.cpp : implementation file
|
//
|
|
#include "stdafx.h"
|
#include "mborg.h"
|
#include "MBOrgRole.h"
|
|
|
// CMBRole
|
IMPLEMENT_DYNAMIC(CMBOrgRole, CObject)
|
CMBOrgRole::CMBOrgRole()
|
{
|
m_strName = _T("");
|
m_strID = _T("");
|
m_bIsLoaded = FALSE;
|
}
|
|
CMBOrgRole::~CMBOrgRole()
|
{
|
DetachList();
|
}
|
|
|
// CMBRole member functions
|
void CMBOrgRole::operator = ( const CMBOrgRole &Item )
|
{
|
POSITION pos;
|
CMBOrgMember *pMember = NULL;
|
CMBOrgMember *pNewMember = NULL;
|
|
m_strID = Item.m_strID;
|
m_strName = Item.m_strName;
|
m_bIsLoaded = Item.m_bIsLoaded;
|
// Copy User List
|
DetachList();
|
for ( pos = Item.m_listMember.GetHeadPosition(); pos; )
|
{
|
pMember = (CMBOrgMember *)Item.m_listMember.GetNext( pos );
|
pNewMember = new CMBOrgMember;
|
*pNewMember = *pMember;
|
m_listMember.AddTail( pNewMember );
|
}
|
}
|
|
/////////////////////////////////////////////////////////////////////////////
|
// CMBOrgRole message handlers
|
|
void CMBOrgRole::DetachList()
|
{
|
POSITION pos;
|
CMBOrgMember *pMember = NULL;
|
|
for ( pos = m_listMember.GetHeadPosition(); pos; )
|
{
|
pMember = (CMBOrgMember *)m_listMember.GetNext( pos );
|
if ( pMember )
|
delete pMember;
|
}
|
m_listMember.RemoveAll();
|
}
|
|
POSITION CMBOrgRole::FindUser( CString strLoginName )
|
{
|
POSITION pos = NULL;
|
POSITION posOld = NULL;
|
CMBOrgMember *pMember = NULL;
|
|
if ( strLoginName.IsEmpty() )
|
return NULL;
|
|
for ( pos = m_listMember.GetHeadPosition(); pos; pos )
|
{
|
posOld = pos;
|
pMember = (CMBOrgMember *)m_listMember.GetNext( pos );
|
if ( pMember->m_strID.CompareNoCase( strLoginName ) == 0 )
|
return posOld;
|
}
|
|
return NULL;
|
}
|
|
POSITION CMBOrgRole::AddMember( CString strUser, CString strName,int nLevel /*= 0*/ )
|
{
|
POSITION pos;
|
CMBOrgMember *pMember = NULL;
|
|
if ( strUser.IsEmpty() || strName.IsEmpty() )
|
return NULL;
|
|
pos = FindUser( strUser );
|
if ( pos )
|
pMember = (CMBOrgMember *)m_listMember.GetAt( pos );
|
else
|
{
|
pMember = new CMBOrgMember;
|
pMember->m_nType = AM_VIEWITEMTYPE_USER;
|
pMember->m_strID = strUser;
|
pos = m_listMember.AddTail( pMember );
|
}
|
pMember->m_bIsDelete = FALSE;
|
pMember->m_strName = strName;
|
pMember->m_nSortLevel = nLevel;
|
|
return pos;
|
}
|