1*39a19a47SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*39a19a47SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*39a19a47SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*39a19a47SAndrew Rist * distributed with this work for additional information 6*39a19a47SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*39a19a47SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*39a19a47SAndrew Rist * "License"); you may not use this file except in compliance 9*39a19a47SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*39a19a47SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*39a19a47SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*39a19a47SAndrew Rist * software distributed under the License is distributed on an 15*39a19a47SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*39a19a47SAndrew Rist * KIND, either express or implied. See the License for the 17*39a19a47SAndrew Rist * specific language governing permissions and limitations 18*39a19a47SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*39a19a47SAndrew Rist *************************************************************/ 21*39a19a47SAndrew Rist 22*39a19a47SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef SVTOOLS_RESTRICTEDPATHS_HXX 25cdf0e10cSrcweir #define SVTOOLS_RESTRICTEDPATHS_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <svl/urlfilter.hxx> 28cdf0e10cSrcweir #include <svl/svldllapi.h> 29cdf0e10cSrcweir #include <tools/string.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include <vector> 32cdf0e10cSrcweir 33cdf0e10cSrcweir namespace svt 34cdf0e10cSrcweir { 35cdf0e10cSrcweir class SVL_DLLPUBLIC RestrictedPaths : public IUrlFilter 36cdf0e10cSrcweir { 37cdf0e10cSrcweir private: 38cdf0e10cSrcweir ::std::vector< String > m_aUnrestrictedURLs; 39cdf0e10cSrcweir bool m_bFilterIsEnabled; 40cdf0e10cSrcweir 41cdf0e10cSrcweir public: 42cdf0e10cSrcweir RestrictedPaths(); 43cdf0e10cSrcweir virtual ~RestrictedPaths(); 44cdf0e10cSrcweir hasFilter() const45cdf0e10cSrcweir inline bool hasFilter() const { return !m_aUnrestrictedURLs.empty(); } getFilter() const46cdf0e10cSrcweir inline const ::std::vector< String >& getFilter() const { return m_aUnrestrictedURLs; } 47cdf0e10cSrcweir enableFilter(bool _bEnable)48cdf0e10cSrcweir inline void enableFilter( bool _bEnable ) { m_bFilterIsEnabled = _bEnable; } isFilterEnabled() const49cdf0e10cSrcweir inline bool isFilterEnabled() const { return m_bFilterIsEnabled; } 50cdf0e10cSrcweir 51cdf0e10cSrcweir public: 52cdf0e10cSrcweir /** checks URL access permissions 53cdf0e10cSrcweir 54cdf0e10cSrcweir <p>with the "restriction" feature we have in the file dialog, it's possible that 55cdf0e10cSrcweir only certain URLs can be browsed. This method checks whether a given URL belongs 56cdf0e10cSrcweir to this set of permitted URLs.</p> 57cdf0e10cSrcweir 58cdf0e10cSrcweir <p>If no "access restriction" is effective, this method always returns <TRUE/>.</p> 59cdf0e10cSrcweir */ 60cdf0e10cSrcweir virtual bool isUrlAllowed( const String& _rURL ) const; 61cdf0e10cSrcweir 62cdf0e10cSrcweir /** checks URL access permissions 63cdf0e10cSrcweir 64cdf0e10cSrcweir <p>with the "restriction" feature we have in the file dialog, it's possible that 65cdf0e10cSrcweir only certain URLs can be browsed. This method checks whether a given URL belongs 66cdf0e10cSrcweir to this set of permitted URLs.</p> 67cdf0e10cSrcweir 68cdf0e10cSrcweir <p>Default behavior allows access to parent folder of a restricted folder (but not to its siblings). 69cdf0e10cSrcweir If allowParents is set to <FALSE/> parent folders will be treated as forbidden. 70cdf0e10cSrcweir 71cdf0e10cSrcweir <p>If no "access restriction" is effective, this method always returns <TRUE/>.</p> 72cdf0e10cSrcweir */ 73cdf0e10cSrcweir bool isUrlAllowed( const String& _rURL, bool allowParents ) const; 74cdf0e10cSrcweir }; 75cdf0e10cSrcweir 76cdf0e10cSrcweir } // namespace svt 77cdf0e10cSrcweir 78cdf0e10cSrcweir #endif // SVTOOLS_RESTRICTEDPATHS_HXX 79