summaryrefslogtreecommitdiff
path: root/xmlsecurity/source/dialogs/macrosecurity.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xmlsecurity/source/dialogs/macrosecurity.cxx')
-rw-r--r--xmlsecurity/source/dialogs/macrosecurity.cxx456
1 files changed, 0 insertions, 456 deletions
diff --git a/xmlsecurity/source/dialogs/macrosecurity.cxx b/xmlsecurity/source/dialogs/macrosecurity.cxx
deleted file mode 100644
index fc301230d..000000000
--- a/xmlsecurity/source/dialogs/macrosecurity.cxx
+++ /dev/null
@@ -1,456 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-
-#include <xmlsecurity/macrosecurity.hxx>
-#include <xmlsecurity/certificatechooser.hxx>
-#include <xmlsecurity/certificateviewer.hxx>
-#include <xmlsecurity/biginteger.hxx>
-
-#include <osl/file.hxx>
-#include <vcl/help.hxx>
-
-
-#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
-#include <comphelper/sequence.hxx>
-#include <sfx2/filedlghelper.hxx>
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <tools/urlobj.hxx>
-
-#include <vcl/msgbox.hxx>
-
-#include "dialogs.hrc"
-#include "resourcemanager.hxx"
-
-/* HACK: disable some warnings for MS-C */
-#ifdef _MSC_VER
-#pragma warning (disable : 4355) // 4355: this used in initializer-list
-#endif
-
-using namespace ::com::sun::star;
-
-
-IMPL_LINK( MacroSecurity, OkBtnHdl, void*, EMPTYARG )
-{
- mpLevelTP->ClosePage();
- mpTrustSrcTP->ClosePage();
-
- EndDialog( RET_OK );
-
- return 0;
-}
-
-MacroSecurity::MacroSecurity( Window* _pParent, const cssu::Reference< cssu::XComponentContext> &_rxCtx, const cssu::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment )
- :TabDialog ( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROSEC ) )
- ,maTabCtrl ( this, XMLSEC_RES( 1 ) )
- ,maOkBtn ( this, XMLSEC_RES( BTN_OK ) )
- ,maCancelBtn ( this, XMLSEC_RES( BTN_CANCEL ) )
- ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) )
- ,maResetBtn ( this, XMLSEC_RES( BTN_RESET ) )
-{
- FreeResource();
-
- mxCtx = _rxCtx;
- mxSecurityEnvironment = _rxSecurityEnvironment;
-
- mpLevelTP = new MacroSecurityLevelTP( &maTabCtrl, this );
- mpTrustSrcTP = new MacroSecurityTrustedSourcesTP( &maTabCtrl, this );
-
- maTabCtrl.SetTabPage( RID_XMLSECTP_SECLEVEL, mpLevelTP );
- maTabCtrl.SetTabPage( RID_XMLSECTP_TRUSTSOURCES, mpTrustSrcTP );
- maTabCtrl.SetCurPageId( RID_XMLSECTP_SECLEVEL );
-
- maOkBtn.SetClickHdl( LINK( this, MacroSecurity, OkBtnHdl ) );
-}
-
-MacroSecurity::~MacroSecurity()
-{
- delete maTabCtrl.GetTabPage( RID_XMLSECTP_TRUSTSOURCES );
- delete maTabCtrl.GetTabPage( RID_XMLSECTP_SECLEVEL );
-}
-
-
-MacroSecurityTP::MacroSecurityTP( Window* _pParent, const ResId& _rResId, MacroSecurity* _pDlg )
- :TabPage ( _pParent, _rResId )
- ,mpDlg ( _pDlg )
-{
-}
-
-MacroSecurityLevelTP::MacroSecurityLevelTP( Window* _pParent, MacroSecurity* _pDlg )
- :MacroSecurityTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_SECLEVEL ), _pDlg )
- ,maSecLevelFL ( this, XMLSEC_RES( FL_SECLEVEL ) )
- ,maSecReadonlyFI ( this, XMLSEC_RES( FI_SEC_READONLY ))
- ,maVeryHighRB ( this, XMLSEC_RES( RB_VERYHIGH ) )
- ,maHighRB ( this, XMLSEC_RES( RB_HIGH ) )
- ,maMediumRB ( this, XMLSEC_RES( RB_MEDIUM ) )
- ,maLowRB ( this, XMLSEC_RES( RB_LOW ) )
-{
- FreeResource();
-
- maLowRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) );
- maMediumRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) );
- maHighRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) );
- maVeryHighRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) );
-
- mnCurLevel = (sal_uInt16) mpDlg->maSecOptions.GetMacroSecurityLevel();
- sal_Bool bReadonly = mpDlg->maSecOptions.IsReadOnly( SvtSecurityOptions::E_MACRO_SECLEVEL );
-
- RadioButton* pCheck = 0;
- switch( mnCurLevel )
- {
- case 3: pCheck = &maVeryHighRB; break;
- case 2: pCheck = &maHighRB; break;
- case 1: pCheck = &maMediumRB; break;
- case 0: pCheck = &maLowRB; break;
- }
- if(pCheck)
- pCheck->Check();
- else
- {
- OSL_FAIL("illegal macro security level");
- }
- maSecReadonlyFI.Show(bReadonly);
- if(bReadonly)
- {
- //move to the selected button
- if( pCheck && pCheck != &maVeryHighRB)
- {
- long nDiff = pCheck->GetPosPixel().Y() - maVeryHighRB.GetPosPixel().Y();
- Point aPos(maSecReadonlyFI.GetPosPixel());
- aPos.Y() += nDiff;
- maSecReadonlyFI.SetPosPixel(aPos);
- }
- maVeryHighRB.Enable(sal_False);
- maHighRB.Enable(sal_False);
- maMediumRB.Enable(sal_False);
- maLowRB.Enable(sal_False);
- }
-
-}
-
-IMPL_LINK( MacroSecurityLevelTP, RadioButtonHdl, RadioButton*, EMPTYARG )
-{
- sal_uInt16 nNewLevel = 0;
- if( maVeryHighRB.IsChecked() )
- nNewLevel = 3;
- else if( maHighRB.IsChecked() )
- nNewLevel = 2;
- else if( maMediumRB.IsChecked() )
- nNewLevel = 1;
-
- if ( nNewLevel != mnCurLevel )
- {
- mnCurLevel = nNewLevel;
- mpDlg->EnableReset();
- }
-
- return 0;
-}
-
-void MacroSecurityLevelTP::ClosePage( void )
-{
- mpDlg->maSecOptions.SetMacroSecurityLevel( mnCurLevel );
-}
-
-void MacroSecurityTrustedSourcesTP::ImplCheckButtons()
-{
- bool bCertSelected = maTrustCertLB.FirstSelected() != NULL;
- maViewCertPB.Enable( bCertSelected );
- maRemoveCertPB.Enable( bCertSelected && !mbAuthorsReadonly);
-
- bool bLocationSelected = maTrustFileLocLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
- maRemoveLocPB.Enable( bLocationSelected && !mbURLsReadonly);
-}
-
-
-IMPL_LINK( MacroSecurityTrustedSourcesTP, ViewCertPBHdl, void*, EMPTYARG )
-{
- if( maTrustCertLB.FirstSelected() )
- {
- sal_uInt16 nSelected = sal_uInt16( sal_uIntPtr( maTrustCertLB.FirstSelected()->GetUserData() ) );
-
- uno::Reference< dcss::security::XSerialNumberAdapter > xSerialNumberAdapter =
- ::com::sun::star::security::SerialNumberAdapter::create(mpDlg->mxCtx);
-
- uno::Reference< dcss::security::XCertificate > xCert = mpDlg->mxSecurityEnvironment->getCertificate( maTrustedAuthors[nSelected][0], xSerialNumberAdapter->toSequence( maTrustedAuthors[nSelected][1] ) );
-
- // If we don't get it, create it from signature data:
- if ( !xCert.is() )
- xCert = mpDlg->mxSecurityEnvironment->createCertificateFromAscii( maTrustedAuthors[nSelected][2] ) ;
-
- DBG_ASSERT( xCert.is(), "*MacroSecurityTrustedSourcesTP::ViewCertPBHdl(): Certificate not found and can't be created!" );
-
- if ( xCert.is() )
- {
- CertificateViewer aViewer( this, mpDlg->mxSecurityEnvironment, xCert, sal_False );
- aViewer.Execute();
- }
- }
- return 0;
-}
-
-IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveCertPBHdl, void*, EMPTYARG )
-{
- if( maTrustCertLB.FirstSelected() )
- {
- sal_uInt16 nAuthor = sal_uInt16( sal_uIntPtr( maTrustCertLB.FirstSelected()->GetUserData() ) );
- ::comphelper::removeElementAt( maTrustedAuthors, nAuthor );
-
- FillCertLB();
- ImplCheckButtons();
- }
-
- return 0;
-}
-
-IMPL_LINK( MacroSecurityTrustedSourcesTP, AddLocPBHdl, void*, EMPTYARG )
-{
- try
- {
- rtl::OUString aService( RTL_CONSTASCII_USTRINGPARAM( FOLDER_PICKER_SERVICE_NAME ) );
- uno::Reference < lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- uno::Reference < ui::dialogs::XFolderPicker > xFolderPicker( xFactory->createInstance( aService ), uno::UNO_QUERY );
-
- short nRet = xFolderPicker->execute();
-
- if( ui::dialogs::ExecutableDialogResults::OK != nRet )
- return 0;
-
- rtl::OUString aPathStr = xFolderPicker->getDirectory();
- INetURLObject aNewObj( aPathStr );
- aNewObj.removeFinalSlash();
-
- // then the new path also an URL else system path
- ::rtl::OUString aSystemFileURL = ( aNewObj.GetProtocol() != INET_PROT_NOT_VALID ) ?
- aPathStr : aNewObj.getFSysPath( INetURLObject::FSYS_DETECT );
-
- String aNewPathStr(aSystemFileURL);
-
- if ( osl::FileBase::getSystemPathFromFileURL( aSystemFileURL, aSystemFileURL ) == osl::FileBase::E_None )
- aNewPathStr = aSystemFileURL;
-
- if( maTrustFileLocLB.GetEntryPos( aNewPathStr ) == LISTBOX_ENTRY_NOTFOUND )
- {
- maTrustFileLocLB.InsertEntry( aNewPathStr );
- }
-
- ImplCheckButtons();
- }
- catch( uno::Exception& )
- {
- DBG_ERRORFILE( "MacroSecurityTrustedSourcesTP::AddLocPBHdl(): exception from folder picker" );
- }
-
- return 0;
-}
-
-IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveLocPBHdl, void*, EMPTYARG )
-{
- sal_uInt16 nSel = maTrustFileLocLB.GetSelectEntryPos();
- if( nSel != LISTBOX_ENTRY_NOTFOUND )
- {
- maTrustFileLocLB.RemoveEntry( nSel );
- // Trusted Path could not be removed (#i33584#)
- // after remove an entry, select another one if exists
- sal_uInt16 nNewCount = maTrustFileLocLB.GetEntryCount();
- if ( nNewCount > 0 )
- {
- if ( nSel >= nNewCount )
- nSel = nNewCount - 1;
- maTrustFileLocLB.SelectEntryPos( nSel );
- }
- ImplCheckButtons();
- }
-
- return 0;
-}
-
-IMPL_LINK( MacroSecurityTrustedSourcesTP, TrustCertLBSelectHdl, void*, EMPTYARG )
-{
- ImplCheckButtons();
- return 0;
-}
-
-IMPL_LINK( MacroSecurityTrustedSourcesTP, TrustFileLocLBSelectHdl, void*, EMPTYARG )
-{
- ImplCheckButtons();
- return 0;
-}
-
-void MacroSecurityTrustedSourcesTP::FillCertLB( void )
-{
- maTrustCertLB.Clear();
-
- sal_uInt32 nEntries = maTrustedAuthors.getLength();
-
- if ( nEntries && mpDlg->mxSecurityEnvironment.is() )
- {
- for( sal_uInt32 nEntry = 0 ; nEntry < nEntries ; ++nEntry )
- {
- cssu::Sequence< ::rtl::OUString >& rEntry = maTrustedAuthors[ nEntry ];
- uno::Reference< css::security::XCertificate > xCert;
-
- // create from RawData
- xCert = mpDlg->mxSecurityEnvironment->createCertificateFromAscii( rEntry[ 2 ] );
-
- SvLBoxEntry* pLBEntry = maTrustCertLB.InsertEntry( XmlSec::GetContentPart( xCert->getSubjectName() ) );
- maTrustCertLB.SetEntryText( XmlSec::GetContentPart( xCert->getIssuerName() ), pLBEntry, 1 );
- maTrustCertLB.SetEntryText( XmlSec::GetDateTimeString( xCert->getNotValidAfter() ), pLBEntry, 2 );
- pLBEntry->SetUserData( ( void* ) (sal_IntPtr)nEntry ); // missuse user data as index
- }
- }
-}
-
-MacroSecurityTrustedSourcesTP::MacroSecurityTrustedSourcesTP( Window* _pParent, MacroSecurity* _pDlg )
- :MacroSecurityTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_TRUSTSOURCES ), _pDlg )
- ,maTrustCertFL ( this, XMLSEC_RES( FL_TRUSTCERT ) )
- ,maTrustCertROFI ( this, XMLSEC_RES( FI_TRUSTCERT_RO ) )
- ,m_aTrustCertLBContainer(this, XMLSEC_RES(LB_TRUSTCERT))
- ,maTrustCertLB(m_aTrustCertLBContainer)
- ,maAddCertPB ( this, XMLSEC_RES( PB_ADD_TRUSTCERT ) )
- ,maViewCertPB ( this, XMLSEC_RES( PB_VIEW_TRUSTCERT ) )
- ,maRemoveCertPB ( this, XMLSEC_RES( PB_REMOVE_TRUSTCERT ) )
- ,maTrustFileLocFL ( this, XMLSEC_RES( FL_TRUSTFILELOC ) )
- ,maTrustFileROFI ( this, XMLSEC_RES( FI_TRUSTFILE_RO ) )
- ,maTrustFileLocFI ( this, XMLSEC_RES( FI_TRUSTFILELOC ) )
- ,maTrustFileLocLB ( this, XMLSEC_RES( LB_TRUSTFILELOC ) )
- ,maAddLocPB ( this, XMLSEC_RES( FL_ADD_TRUSTFILELOC ) )
- ,maRemoveLocPB ( this, XMLSEC_RES( FL_REMOVE_TRUSTFILELOC ) )
-{
- static long nTabs[] = { 3, 0, 35*CS_LB_WIDTH/100, 70*CS_LB_WIDTH/100 };
- maTrustCertLB.SetTabs( &nTabs[ 0 ] );
- maTrustCertLB.InsertHeaderEntry( String( XMLSEC_RES( STR_HEADERBAR ) ) );
-
- FreeResource();
-
- maTrustCertLB.SetSelectHdl( LINK( this, MacroSecurityTrustedSourcesTP, TrustCertLBSelectHdl ) );
- maAddCertPB.Hide(); // not used in the moment...
- maViewCertPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, ViewCertPBHdl ) );
- maViewCertPB.Disable();
- maRemoveCertPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, RemoveCertPBHdl ) );
- maRemoveCertPB.Disable();
-
- maTrustFileLocLB.SetSelectHdl( LINK( this, MacroSecurityTrustedSourcesTP, TrustFileLocLBSelectHdl ) );
- maAddLocPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, AddLocPBHdl ) );
- maRemoveLocPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, RemoveLocPBHdl ) );
- maRemoveLocPB.Disable();
-
- maTrustedAuthors = mpDlg->maSecOptions.GetTrustedAuthors();
- mbAuthorsReadonly = mpDlg->maSecOptions.IsReadOnly( SvtSecurityOptions::E_MACRO_TRUSTEDAUTHORS );
- maTrustCertROFI.Show( mbAuthorsReadonly );
- mbAuthorsReadonly ? maTrustCertLB.DisableTable() : maTrustCertLB.EnableTable();
-
- FillCertLB();
-
- cssu::Sequence< rtl::OUString > aSecureURLs = mpDlg->maSecOptions.GetSecureURLs();
- mbURLsReadonly = mpDlg->maSecOptions.IsReadOnly( SvtSecurityOptions::E_SECUREURLS );
- maTrustFileROFI.Show( mbURLsReadonly );
- maTrustFileLocLB.Enable( !mbURLsReadonly );
- maAddLocPB .Enable( !mbURLsReadonly );
-
- sal_Int32 nEntryCnt = aSecureURLs.getLength();
- for( sal_Int32 i = 0 ; i < nEntryCnt ; ++i )
- {
- ::rtl::OUString aSystemFileURL( aSecureURLs[ i ] );
- osl::FileBase::getSystemPathFromFileURL( aSystemFileURL, aSystemFileURL );
- maTrustFileLocLB.InsertEntry( aSystemFileURL );
- }
-}
-
-void MacroSecurityTrustedSourcesTP::ActivatePage()
-{
- mpDlg->EnableReset( false );
- FillCertLB();
-}
-
-void MacroSecurityTrustedSourcesTP::ClosePage( void )
-{
- sal_uInt16 nEntryCnt = maTrustFileLocLB.GetEntryCount();
- if( nEntryCnt )
- {
- cssu::Sequence< rtl::OUString > aSecureURLs( nEntryCnt );
- for( sal_uInt16 i = 0 ; i < nEntryCnt ; ++i )
- {
- ::rtl::OUString aURL( maTrustFileLocLB.GetEntry( i ) );
- osl::FileBase::getFileURLFromSystemPath( aURL, aURL );
- aSecureURLs[ i ] = aURL;
- }
-
- mpDlg->maSecOptions.SetSecureURLs( aSecureURLs );
- }
- // Trusted Path could not be removed (#i33584#)
- // don't forget to remove the old saved SecureURLs
- else
- mpDlg->maSecOptions.SetSecureURLs( cssu::Sequence< rtl::OUString >() );
-
- mpDlg->maSecOptions.SetTrustedAuthors( maTrustedAuthors );
-}
-
-ReadOnlyImage::ReadOnlyImage(Window* pParent, const ResId rResId) :
- FixedImage(pParent, rResId)
-{
- SetImage( Image(XMLSEC_RES( RID_XMLSECTP_LOCK )));
-}
-
-ReadOnlyImage::~ReadOnlyImage()
-{
-}
-
-void ReadOnlyImage::RequestHelp( const HelpEvent& rHEvt )
-{
- if( Help::IsBalloonHelpEnabled() || Help::IsQuickHelpEnabled() )
- {
- Rectangle aLogicPix( LogicToPixel( Rectangle( Point(), GetOutputSize() ) ) );
- Rectangle aScreenRect( OutputToScreenPixel( aLogicPix.TopLeft() ),
- OutputToScreenPixel( aLogicPix.BottomRight() ) );
-
- String aStr(ReadOnlyImage::GetHelpTip());
- if ( Help::IsBalloonHelpEnabled() )
- Help::ShowBalloon( this, rHEvt.GetMousePosPixel(), aScreenRect,
- aStr );
- else if ( Help::IsQuickHelpEnabled() )
- Help::ShowQuickHelp( this, aScreenRect, aStr );
- }
- else
- Window::RequestHelp( rHEvt );
-}
-
-const String& ReadOnlyImage::GetHelpTip()
-{
- static String aStr(XMLSEC_RES( RID_XMLSECTP_READONLY_CONFIG_TIP));
- return aStr;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */