Пример #1
0
void CAclApp::Edit()
{
	if((m_bButtonFlags & ACL_BUTTON_EDIT_MASK) != ACL_BUTTON_EDIT_MASK) return;

	if(m_iListIndex < 0) 
		return;

	CAclDialog dlg;
	dlg.SetDialog(ACL_CAPTION_EDIT, ACL_CAPTION_APP_EDIT, ACL_DIALOG_APP);
	CAclSet* pAclSet = dlg.GetAclSet();
	pAclSet->SetAutoPort(FALSE);
	PXACL pAcl = pAclSet->GetAcl();

	pAcl->ulAclID = atol(m_List.GetItemText(m_iListIndex, 0));
	PXACL pAclOld = (PXACL)m_History.FindAcl(pAcl->ulAclID);
	if(pAclOld == NULL) pAclOld = (PXACL)theApp.m_AclFile.FindAcl(pAcl->ulAclID, ACL_TYPE_APP);
	if(pAclOld == NULL) return;

	*pAcl = *pAclOld;

	int iRet = dlg.DoModal();

	if(iRet == IDCANCEL || !pAclSet->IsChange()) return;

	AddAcl(pAcl, TRUE, TRUE, m_iListIndex);
	m_bButtonFlags |= ACL_BUTTON_SHOW_APPLY_GROUP;
	SendMessageEx(m_bButtonFlags);
	m_History.AddHistory(OPT_TYPE_EDIT, m_bButtonFlags, (char*)pAcl, (char*)pAclOld);
}
Пример #2
0
void CAclApp::Add()
{
	if((m_bButtonFlags & ACL_BUTTON_ADD_MASK) != ACL_BUTTON_ADD_MASK) return;

	CAclDialog dlg;
	dlg.SetDialog(ACL_CAPTION_ADD, ACL_CAPTION_APP_ADD, ACL_DIALOG_APP);
	CAclSet* pAclSet = dlg.GetAclSet();
	PXACL pAcl = pAclSet->GetAcl();

	int nIndex = m_List.GetItemCount();
	if(nIndex == 0)
		pAcl->ulAclID = 1;
	else
		pAcl->ulAclID = atol(m_List.GetItemText(nIndex - 1, 0)) + 1;

	pAcl->bDirection = ACL_DIRECTION_IN_OUT;
	pAcl->sApplication[0] = '*';

	int iRet = dlg.DoModal();

	if(iRet == IDCANCEL) return;

	AddAcl(pAcl);
	m_bButtonFlags |= ACL_BUTTON_SHOW_APPLY_GROUP;
	m_History.AddHistory(OPT_TYPE_ADD, m_bButtonFlags, (char*)pAcl);
	SendMessageEx(m_bButtonFlags);
}