TFCweb  1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
Tipus Públics | Mètodes públics | Atributs Privats | Classes Amigues | Llista de tots els membres
Referència de la Classe Cerber

#include <Permisos.h>

Tipus Públics

typedef boost::filesystem::path ruta_t

Mètodes públics

 Cerber (FlagsPermis permis_per_defecte=LECTURA)
 Cerber (const Cerber &c)
CodiEstatHTTP acces (const ruta_t &ruta, TipusPeticioHTTP t) const
 Comprova quins permisos té la ruta ruta.
void defineix_regla (const ruta_t &ruta, FlagsPermis perms)
 Defineix una regla d'accés.
bool executable (const ruta_t &ruta) const
 Comprova específicament si un fitxer té permís d'execució I de lectura.
Cerberoperator= (const Cerber &c)
FlagsPermis permis (const ruta_t &ruta) const
 Com acces() però obtenint un permís simbòlic en comptes d'un codi d'estat.

Atributs Privats

FlagsPermis per_defecte_
boost::unordered_map< ruta_t,
FlagsPermis
regles_

Classes Amigues

std::ostream & operator<< (std::ostream &, const Cerber &)

Descripció Detallada

Definició a la línia 55 del fitxer Permisos.h.

Documentació de les Definicions de Tipus Membre

typedef boost::filesystem::path ruta_t

Definició a la línia 57 del fitxer Permisos.h.

Documentació del Constructor i el Destructor

Cerber ( FlagsPermis  permis_per_defecte = LECTURA)
inlineexplicit
Atenció
Si es fa servir un permís lax per defecte, és important definir una regla "limit" que prohibeixi l'accés per sobre de l'arrel del servidor, exemple:
Configuracio cfg;
Cerber cerber;
cerber.defineix_regla(cfg.arrel().parent_path(), PRIVAT);

Definició a la línia 69 del fitxer Permisos.h.

Cerber ( const Cerber c)
inline

Definició a la línia 75 del fitxer Permisos.h.

Documentació de les Funcions Membre

CodiEstatHTTP acces ( const ruta_t ruta,
TipusPeticioHTTP  t 
) const

Comprova quins permisos té la ruta ruta.

Retorna
CODI_200 si es permet l'accés, CODI_401 si l'accés és permés però requereix contrasenya, CODI_403 si l'accés és prohbit, CODI_405 si el mètode metode no es permet per aquesta ruta
Remarca
La comprovació de permís es pot simplificar comparant amb CODI_400:
permis(r,m) < CODI_400 // -> OK
permis(r,m) >= CODI_400 // -> No permés
Mireu també
permis()

Definició a la línia 67 del fitxer Permisos.cc.

Referències tfc::CODI_200, tfc::CODI_401, tfc::CODI_403, tfc::CODI_405, tfc::CONNECT, tfc::ESCRIPTURA, tfc::GET, tfc::HEAD, tfc::LECTURA, tfc::METODE_DELETE, tfc::OPTIONS, anonymous_namespace{Permisos.cc}::PERMIS_LIMIT, tfc::POST, tfc::PRIVAT, tfc::PROTEGIT, tfc::PUT i tfc::TRACE.

void defineix_regla ( const ruta_t ruta,
FlagsPermis  perms 
)

Defineix una regla d'accés.

Remarca
Successives crides es combinen, excepte si perms conté PRIVAT p.e.
c.defineix_regla(r, LECTURA);
c.defineix_regla(r, ESCRIPTURA);
c.permis() == LECTURA|ESCRIPTURA
c.defineix_regla(r, PRIVAT);
c.permis() == PRIVAT

Definició a la línia 44 del fitxer Permisos.cc.

Referències anonymous_namespace{Permisos.cc}::MASCARA_PERMIS, anonymous_namespace{Permisos.cc}::PERMIS_LIMIT i tfc::PRIVAT.

bool executable ( const ruta_t ruta) const

Comprova específicament si un fitxer té permís d'execució I de lectura.

Definició a la línia 122 del fitxer Permisos.cc.

Referències tfc::EXECUCIO, tfc::LECTURA i anonymous_namespace{Permisos.cc}::PERMIS_LIMIT.

Cerber& operator= ( const Cerber c)
inline

Definició a la línia 82 del fitxer Permisos.h.

Referències Cerber::per_defecte_ i Cerber::regles_.

FlagsPermis permis ( const ruta_t ruta) const

Com acces() però obtenint un permís simbòlic en comptes d'un codi d'estat.

Mireu també
acces()

Definició a la línia 103 del fitxer Permisos.cc.

Referències tfc::utils::es_llegible(), RFC2068_Sintaxi_URIs::path i tfc::PRIVAT.

Documentació de funcions amigues i relacionades

std::ostream& operator<< ( std::ostream &  ,
const Cerber  
)
friend

Documentació de les Dades Membre

FlagsPermis per_defecte_
private

Definició a la línia 128 del fitxer Permisos.h.

Referenciat a tfc::operator<<() i Cerber::operator=().

boost::unordered_map<ruta_t, FlagsPermis> regles_
private

Definició a la línia 127 del fitxer Permisos.h.

Referenciat a tfc::operator<<() i Cerber::operator=().


La documentació d'aquesta classe es va generar a partir dels següents fitxers: