diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2013-05-14 19:07:34 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-05-14 19:14:34 +0200 |
commit | 03535b91605ae0cfdf3be5eb2dfdf5de5374bdb2 (patch) | |
tree | 20d1abc873bd805b28d94004f6d20874b5fc4721 /svl | |
parent | 09c20b2f623e2271a3ab9eb82c2419a8951320c1 (diff) |
Remove obsolete RestrictedPath env var support
Change-Id: Ia4ea7d60d7b69c863c1e891887060265e73e1cb6
Diffstat (limited to 'svl')
-rw-r--r-- | svl/Library_svl.mk | 2 | ||||
-rw-r--r-- | svl/source/misc/folderrestriction.cxx | 98 | ||||
-rw-r--r-- | svl/source/misc/restrictedpaths.cxx | 204 |
3 files changed, 0 insertions, 304 deletions
diff --git a/svl/Library_svl.mk b/svl/Library_svl.mk index b97387d73d84..922893eba8b2 100644 --- a/svl/Library_svl.mk +++ b/svl/Library_svl.mk @@ -112,7 +112,6 @@ $(eval $(call gb_Library_add_exception_objects,svl,\ $(if $(filter DESKTOP,$(BUILD_TYPE)),\ svl/source/misc/documentlockfile) \ svl/source/misc/filenotation \ - svl/source/misc/folderrestriction \ svl/source/misc/fstathelper \ svl/source/misc/getstringresource \ svl/source/misc/inethist \ @@ -120,7 +119,6 @@ $(eval $(call gb_Library_add_exception_objects,svl,\ svl/source/misc/lngmisc \ svl/source/misc/lockfilecommon \ svl/source/misc/ownlist \ - svl/source/misc/restrictedpaths \ svl/source/misc/sharecontrolfile \ svl/source/misc/strmadpt \ svl/source/misc/urihelper \ diff --git a/svl/source/misc/folderrestriction.cxx b/svl/source/misc/folderrestriction.cxx deleted file mode 100644 index 17562510cc44..000000000000 --- a/svl/source/misc/folderrestriction.cxx +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#include <svl/folderrestriction.hxx> -#include "osl/process.h" -#include "tools/urlobj.hxx" -#include "unotools/localfilehelper.hxx" - -//----------------------------------------------------------------------------- - -static void convertStringListToUrls ( - const OUString& _rColonSeparatedList, ::std::vector< String >& _rTokens, bool _bFinalSlash ) -{ - const sal_Unicode cSeparator = -#if defined(WNT) - ';' -#else - ':' -#endif - ; - - sal_Int32 nIndex = 0; - do - { - // the current token in the list - OUString sCurrentToken = _rColonSeparatedList.getToken( 0, cSeparator, nIndex ); - if (!sCurrentToken.isEmpty()) - { - INetURLObject aCurrentURL; - - OUString sURL; - if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) ) - aCurrentURL = INetURLObject( sURL ); - else - { - // smart URL parsing, assuming FILE protocol - aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE ); - } - - if ( _bFinalSlash ) - aCurrentURL.setFinalSlash( ); - else - aCurrentURL.removeFinalSlash( ); - _rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) ); - } - } - while ( nIndex >= 0 ); -} - -/** retrieves the value of an environment variable - @return <TRUE/> if and only if the retrieved string value is not empty -*/ -static bool getEnvironmentValue( const sal_Char* _pAsciiEnvName, OUString& _rValue ) -{ - _rValue = OUString(); - OUString sEnvName = OUString::createFromAscii( _pAsciiEnvName ); - osl_getEnvironment( sEnvName.pData, &_rValue.pData ); - return !_rValue.isEmpty(); -} - -//----------------------------------------------------------------------------- - -namespace svt -{ - - void getUnrestrictedFolders( ::std::vector< String >& _rFolders ) - { - _rFolders.resize( 0 ); - OUString sRestrictedPathList; - if ( getEnvironmentValue( "RestrictedPath", sRestrictedPathList ) ) - { - // append a final slash. This ensures that when we later on check - // for unrestricted paths, we don't allow paths like "/home/user35" just because - // "/home/user3" is allowed - with the final slash, we make it "/home/user3/". - convertStringListToUrls( sRestrictedPathList, _rFolders, true ); - } - } - -} // namespace svt - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svl/source/misc/restrictedpaths.cxx b/svl/source/misc/restrictedpaths.cxx deleted file mode 100644 index c1b7f863913f..000000000000 --- a/svl/source/misc/restrictedpaths.cxx +++ /dev/null @@ -1,204 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <svl/restrictedpaths.hxx> - -#include <algorithm> -#include <osl/process.h> -#include <tools/urlobj.hxx> -#include <unotools/localfilehelper.hxx> -#include <unotools/syslocale.hxx> - -namespace svt -{ - namespace - { - // ---------------------------------------------------------------- - /** retrieves the value of an environment variable - @return <TRUE/> if and only if the retrieved string value is not empty - */ - bool lcl_getEnvironmentValue( const sal_Char* _pAsciiEnvName, OUString& _rValue ) - { - _rValue = OUString(); - OUString sEnvName = OUString::createFromAscii( _pAsciiEnvName ); - osl_getEnvironment( sEnvName.pData, &_rValue.pData ); - return !_rValue.isEmpty(); - } - - //----------------------------------------------------------------- - void lcl_convertStringListToUrls( const OUString& _rColonSeparatedList, ::std::vector< OUString >& _rTokens ) - { - const sal_Unicode cSeparator = - #if defined(WNT) - ';' - #else - ':' - #endif - ; - sal_Int32 nIndex = 0; - do - { - // the current token in the list - OUString sCurrentToken = _rColonSeparatedList.getToken( 0, cSeparator, nIndex ); - if ( !sCurrentToken.isEmpty() ) - { - INetURLObject aCurrentURL; - - OUString sURL; - if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) ) - aCurrentURL = INetURLObject( sURL ); - else - { - // smart URL parsing, assuming FILE protocol - aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE ); - } - - aCurrentURL.setFinalSlash( ); - _rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) ); - } - } - while ( nIndex >= 0 ); - } - - } - - //===================================================================== - //= CheckURLAllowed - //===================================================================== - struct CheckURLAllowed - { - protected: - #ifdef WNT - SvtSysLocale m_aSysLocale; - #endif - OUString m_sCheckURL; // the URL to check - bool m_bAllowParent; - public: - inline CheckURLAllowed( const OUString& _rCheckURL, bool bAllowParent = true ) - : m_sCheckURL( _rCheckURL ) - , m_bAllowParent( bAllowParent ) - { - #ifdef WNT - // on windows, assume that the relevant file systems are case insensitive, - // thus normalize the URL - m_sCheckURL = m_aSysLocale.GetCharClass().lowercase( m_sCheckURL, 0, m_sCheckURL.getLength() ); - #endif - } - - bool operator()( const OUString& _rApprovedURL ) - { - #ifdef WNT - // on windows, assume that the relevant file systems are case insensitive, - // thus normalize the URL - OUString sApprovedURL( m_aSysLocale.GetCharClass().lowercase( _rApprovedURL, 0, _rApprovedURL.getLength() ) ); - #else - OUString sApprovedURL( _rApprovedURL ); - #endif - - sal_Int32 nLenApproved = sApprovedURL.getLength(); - sal_Int32 nLenChecked = m_sCheckURL.getLength(); - - if ( nLenApproved > nLenChecked ) - { - if ( m_bAllowParent ) - { - if ( sApprovedURL.indexOf( m_sCheckURL ) == 0 ) - { - if ( ( m_sCheckURL[ nLenChecked - 1 ] == '/' ) - || ( sApprovedURL[ nLenChecked ] == '/' ) ) - return true; - } - } - else - { - // just a difference in final slash? - if ( ( nLenApproved == ( nLenChecked + 1 ) ) && - ( sApprovedURL[ nLenApproved - 1 ] == '/' ) ) - return true; - } - return false; - } - else if ( nLenApproved < nLenChecked ) - { - if ( m_sCheckURL.indexOf( sApprovedURL ) == 0 ) - { - if ( ( sApprovedURL[ nLenApproved - 1 ] == '/' ) - || ( m_sCheckURL[ nLenApproved ] == '/' ) ) - return true; - } - return false; - } - else - { - // strings have equal length - return ( sApprovedURL == m_sCheckURL ); - } - } - }; - - //===================================================================== - //= RestrictedPaths - //===================================================================== - //--------------------------------------------------------------------- - RestrictedPaths::RestrictedPaths() - :m_bFilterIsEnabled( true ) - { - OUString sRestrictedPathList; - if ( lcl_getEnvironmentValue( "RestrictedPath", sRestrictedPathList ) ) - // append a final slash. This ensures that when we later on check - // for unrestricted paths, we don't allow paths like "/home/user35" just because - // "/home/user3" is allowed - with the final slash, we make it "/home/user3/". - lcl_convertStringListToUrls( sRestrictedPathList, m_aUnrestrictedURLs ); - } - - RestrictedPaths::~RestrictedPaths() {} - - // -------------------------------------------------------------------- - bool RestrictedPaths::isUrlAllowed( const OUString& _rURL ) const - { - if ( m_aUnrestrictedURLs.empty() || !m_bFilterIsEnabled ) - return true; - - ::std::vector< OUString >::const_iterator aApprovedURL = ::std::find_if( - m_aUnrestrictedURLs.begin(), - m_aUnrestrictedURLs.end(), - CheckURLAllowed( _rURL, true ) - ); - - return ( aApprovedURL != m_aUnrestrictedURLs.end() ); - } - - // -------------------------------------------------------------------- - bool RestrictedPaths::isUrlAllowed( const OUString& _rURL, bool allowParents ) const - { - if ( m_aUnrestrictedURLs.empty() || !m_bFilterIsEnabled ) - return true; - - ::std::vector< OUString >::const_iterator aApprovedURL = ::std::find_if( - m_aUnrestrictedURLs.begin(), - m_aUnrestrictedURLs.end(), - CheckURLAllowed( _rURL, allowParents ) - ); - - return ( aApprovedURL != m_aUnrestrictedURLs.end() ); - } - -} // namespace svt - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |