// PathPage2.cpp : 実装ファイル
//

#include "stdafx.h"
#include "ServerController.h"
#include "PathPage2.h"


// CPathPage2 ダイアログ

IMPLEMENT_DYNAMIC(CPathPage2, CPropertyPage)
CPathPage2::CPathPage2(CWorkspaceAccess path)
	: CPropertyPage(CPathPage2::IDD)
	, m_index(FALSE)
	, m_webdav(FALSE)
	, m_ssicgi(FALSE)
	, m_bandwidth(FALSE)
	, m_write(FALSE)
	, m_hidden(FALSE)
	, m_http(FALSE)
	, m_https(FALSE)
{
	m_pathOptions = path.GetAccess("Options");;
}

CPathPage2::~CPathPage2()
{
}

void CPathPage2::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	DDX_Check(pDX, IDC_INDEX, m_index);
	DDX_Check(pDX, IDC_WEBDAV, m_webdav);
	DDX_Check(pDX, IDC_SSICGI, m_ssicgi);
	DDX_Check(pDX, IDC_BAND, m_bandwidth);
	DDX_Check(pDX, IDC_WRITE, m_write);
	DDX_Check(pDX, IDC_HIDDEN, m_hidden);
	DDX_Check(pDX, IDC_HTTP, m_http);
	DDX_Check(pDX, IDC_HTTPS, m_https);
}


BEGIN_MESSAGE_MAP(CPathPage2, CPropertyPage)
END_MESSAGE_MAP()


// CPathPage2 メッセージ ハンドラ

BOOL CPathPage2::OnInitDialog()
{
	CPropertyPage::OnInitDialog();

	m_index = m_pathOptions.GetConfig("EnableIndex",1);
	m_webdav = m_pathOptions.GetConfig("EnableWebDAV",0);
	m_ssicgi = m_pathOptions.GetConfig("EnableSSICGI",0);
	m_bandwidth = m_pathOptions.GetConfig("EnableBandWidthLimit",0);
	m_write = m_pathOptions.GetConfig("EnableWrite",0);
	m_hidden = m_pathOptions.GetConfig("EnableHiddenFile",0);

	m_http = m_pathOptions.GetConfig("AcceptHTTP",1);
	m_https = m_pathOptions.GetConfig("AcceptHTTPS",1);

	UpdateData(FALSE);

	return TRUE;  // return TRUE unless you set the focus to a control
	// 例外 : OCX プロパティ ページは必ず FALSE を返します。
}

BOOL CPathPage2::OnKillActive()
{
	UpdateData();

	//	セキュリティ　チェック
	if(m_write && m_ssicgi)
	{
		if(MessageBox("「SSI/CGIを許可」と「書き込みを許可」の組み合わせは、セキュリティ上、非常に好ましくありません。\r\n続行しますか？","セキュリティ チェック",MB_ICONINFORMATION | MB_YESNO) == IDNO)
			return(FALSE);
	}

	m_pathOptions.SetConfig("EnableIndex",m_index);
	m_pathOptions.SetConfig("EnableWebDAV",m_webdav);
	m_pathOptions.SetConfig("EnableSSICGI",m_ssicgi);
	m_pathOptions.SetConfig("EnableBandWidthLimit",m_bandwidth);
	m_pathOptions.SetConfig("EnableWrite",m_write);
	m_pathOptions.SetConfig("EnableHiddenFile",m_hidden);

	m_pathOptions.SetConfig("AcceptHTTP",m_http);
	m_pathOptions.SetConfig("AcceptHTTPS",m_https);


	return CPropertyPage::OnKillActive();
}
