Import upstream 0.7.1
[manu/suphp.git] / src / PathMatcher.hpp
1 /*
2     suPHP - (c)2002-2008 Sebastian Marsching <sebastian@marsching.com>
3
4     This file is part of suPHP.
5
6     suPHP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     suPHP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with suPHP; if not, write to the Free Software
18     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21 #ifndef SUPHP_PATHMATCHER_H
22
23 namespace suPHP {
24     class PathMatcher;
25 };
26
27 #define SUPHP_PATHMATCHER_H
28
29 #include <string>
30
31 #include "UserInfo.hpp"
32 #include "GroupInfo.hpp"
33 #include "KeyNotFoundException.hpp"
34 #include "ParsingException.hpp"
35
36 namespace suPHP {
37     class PathMatcher {
38     private:
39         UserInfo user;
40         GroupInfo group;
41         std::string lookupVariable(std::string str)
42             throw (KeyNotFoundException);
43         
44     public:
45         /**
46          * Contructor
47          */
48         PathMatcher(const UserInfo& user, const GroupInfo& group);
49         
50         /**
51          * Checks wheter a path matches a pattern
52          */
53         bool matches(std::string pattern, std::string path) 
54             throw (KeyNotFoundException, ParsingException);
55         
56         /**
57          * Resolves variables in a string
58          */
59         std::string resolveVariables(std::string str)
60             throw (KeyNotFoundException, ParsingException);
61     };
62 };
63
64 #endif // SUPHP_PATHMATCHER_H