TFCweb
1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
Pàgina principal
Pàgines Relacionades
Espais de Noms
Classes
Fitxers
Llista dels Fitxers
Membres de Fitxers
src
Permisos.h
Veure la documentació d'aquest fitxer.
1
#if !defined(_PERMISOS_H_)
2
#define _PERMISOS_H_
3
10
/*
11
* Copyright (c) 2012 Toni Corvera
12
*
13
* This file is part of TFCWeb.
14
*
15
* TFCWeb is free software: you can redistribute it and/or modify
16
* it under the terms of the GNU General Public License as published by
17
* the Free Software Foundation, either version 3 of the License, or
18
* (at your option) any later version.
19
*
20
* TFCWeb is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
* GNU General Public License for more details.
24
*
25
* You should have received a copy of the GNU General Public License
26
* along with TFCWeb. If not, see <http://www.gnu.org/licenses/>.
27
*/
28
29
#include "
PeticioHTTP.h
"
30
31
#include <iostream>
32
#include <boost/filesystem.hpp>
33
#include <boost/unordered_map.hpp>
34
35
namespace
tfc {
36
38
enum
Permis
{
39
PRIVAT
= 0x01,
40
PROTEGIT
= 0x02,
41
LECTURA
= 0x04,
42
ESCRIPTURA
= 0x08,
43
EXECUCIO
= 0x10
44
};
46
typedef
unsigned
short
FlagsPermis
;
47
51
std::string
nom_permis
(
FlagsPermis
f);
52
53
class
Permisos;
54
55
class
Cerber
{
56
public
:
57
typedef
boost::filesystem::path
ruta_t
;
58
69
explicit
Cerber
(
FlagsPermis
permis_per_defecte =
LECTURA
)
70
:
per_defecte_
(permis_per_defecte)
71
{
72
// buit
73
}
74
75
Cerber
(
const
Cerber
& c)
76
:
regles_
(c.
regles_
),
77
per_defecte_
(c.
per_defecte_
)
78
{
79
// buit
80
}
81
82
Cerber
&
operator=
(
const
Cerber
& c) {
83
regles_
= c.
regles_
;
84
per_defecte_
= c.
per_defecte_
;
85
return
*
this
;
86
}
87
100
void
defineix_regla
(
const
ruta_t
& ruta,
FlagsPermis
perms);
101
114
CodiEstatHTTP
acces
(
const
ruta_t
& ruta,
TipusPeticioHTTP
t)
const
;
115
120
FlagsPermis
permis
(
const
ruta_t
& ruta)
const
;
121
125
bool
executable
(
const
ruta_t
& ruta)
const
;
126
private
:
127
boost::unordered_map<ruta_t, FlagsPermis>
regles_
;
128
FlagsPermis
per_defecte_
;
129
130
// Impressió de les regles
131
friend
std::ostream&
operator<<
(std::ostream&,
const
Cerber
&);
132
};
133
134
}
135
136
#endif // _PERMISOS_H_
137
138
// vim:set ts=4 et ai: //
Generat a Dl Jun 17 2013 20:07:39 per a TFCweb per
1.8.1.2