#include <XrdAccAccess.hh>
Inheritance diagram for XrdAccAccess:
Public Member Functions | |
XrdAccPrivs | Access (const XrdSecEntity *Entity, const char *path, const Access_Operation oper, XrdOucEnv *Env=0) |
int | Audit (const int accok, const XrdSecEntity *Entity, const char *path, const Access_Operation oper, XrdOucEnv *Env=0) |
void | SwapTabs (struct XrdAccAccess_Tables &newtab) |
int | Test (const XrdAccPrivs priv, const Access_Operation oper) |
XrdAccAccess (XrdSysError *erp) | |
~XrdAccAccess () | |
Private Member Functions | |
XrdAccPrivs | Access (const char *id, const Access_ID_Type idtype, const char *path, const Access_Operation oper) |
Private Attributes | |
XrdAccAccess_Tables | Atab |
XrdSysXSLock | Access_Context |
XrdAccAudit * | Auditor |
Friends | |
class | XrdAccConfig |
Definition at line 75 of file XrdAccAccess.hh.
XrdAccAccess::XrdAccAccess | ( | XrdSysError * | erp | ) |
XrdAccAccess::~XrdAccAccess | ( | ) | [inline] |
Definition at line 101 of file XrdAccAccess.hh.
XrdAccPrivs XrdAccAccess::Access | ( | const XrdSecEntity * | Entity, | |
const char * | path, | |||
const Access_Operation | oper, | |||
XrdOucEnv * | Env = 0 | |||
) | [virtual] |
Implements XrdAccAuthorize.
Definition at line 70 of file XrdAccAccess.cc.
References Access_Context, Atab, Audit(), audit_grant, XrdAccAudit::Auditing(), Auditor, XrdAccAccess_Tables::D_List, XrdOucHash< T >::Find(), XrdAccCapName::Find(), XrdAccAccess_Tables::G_Hash, XrdOucTokenizer::GetLine(), XrdOucTokenizer::GetToken(), XrdAccConfig::GroupMaster, XrdAccGroups::Groups(), XrdSecEntity::grps, XrdAccAccess_Tables::H_Hash, XrdSecEntity::host, XrdSysXSLock::Lock(), XrdAccAccess_Tables::N_Hash, XrdSecEntity::name, XrdAccGroups::NetGroups(), XrdAccGroupList::Next(), XrdAccCapability::Privs(), strlcpy(), Test(), XrdAccAccess_Tables::U_Hash, XrdSysXSLock::UnLock(), XrdAccAccess_Tables::X_List, XrdAccConfiguration, XrdOucHashVal2(), xs_Shared, and XrdAccAccess_Tables::Z_List.
int XrdAccAccess::Audit | ( | const int | accok, | |
const XrdSecEntity * | Entity, | |||
const char * | path, | |||
const Access_Operation | oper, | |||
XrdOucEnv * | Env = 0 | |||
) | [virtual] |
Implements XrdAccAuthorize.
Definition at line 231 of file XrdAccAccess.cc.
References AOP_LastOp, Auditor, XrdAccAudit::Deny(), XrdAccAudit::Grant(), XrdSecEntity::host, XrdSecEntity::name, XrdSecEntity::prot, XrdSecEntity::tident, and XrdSecPROTOIDSIZE.
Referenced by Access().
void XrdAccAccess::SwapTabs | ( | struct XrdAccAccess_Tables & | newtab | ) |
Definition at line 280 of file XrdAccAccess.cc.
References Access_Context, XrdAccAccess_Tables::D_List, XrdAccAccess_Tables::E_List, XrdAccAccess_Tables::G_Hash, XrdAccConfig::GroupMaster, XrdAccAccess_Tables::H_Hash, XrdSysXSLock::Lock(), XrdAccAccess_Tables::N_Hash, XrdAccGroups::PurgeCache(), XrdAccAccess_Tables::S_Hash, XrdAccAccess_Tables::T_Hash, XrdAccAccess_Tables::U_Hash, XrdSysXSLock::UnLock(), XrdAccAccess_Tables::X_List, XrdAccConfiguration, XrdAccSWAP, xs_Exclusive, and XrdAccAccess_Tables::Z_List.
Referenced by XrdAccConfig::ConfigDB().
int XrdAccAccess::Test | ( | const XrdAccPrivs | priv, | |
const Access_Operation | oper | |||
) | [virtual] |
Implements XrdAccAuthorize.
Definition at line 314 of file XrdAccAccess.cc.
References AOP_LastOp, XrdAccPriv_Chmod, XrdAccPriv_Chown, XrdAccPriv_Create, XrdAccPriv_Delete, XrdAccPriv_Insert, XrdAccPriv_Lock, XrdAccPriv_Lookup, XrdAccPriv_Mkdir, XrdAccPriv_None, XrdAccPriv_Read, XrdAccPriv_Readdir, XrdAccPriv_Rename, and XrdAccPriv_Update.
Referenced by Access().
XrdAccPrivs XrdAccAccess::Access | ( | const char * | id, | |
const Access_ID_Type | idtype, | |||
const char * | path, | |||
const Access_Operation | oper | |||
) | [private] |
Definition at line 171 of file XrdAccAccess.cc.
References Access_Context, AID_Group, AID_Host, AID_Netgroup, AID_Set, AID_Template, AID_User, Atab, XrdAccAccess_Tables::D_List, XrdAccCapName::Find(), XrdAccAccess_Tables::G_Hash, XrdAccAccess_Tables::H_Hash, hp, XrdSysXSLock::Lock(), XrdAccAccess_Tables::N_Hash, XrdAccCapability::Privs(), XrdAccAccess_Tables::S_Hash, XrdAccAccess_Tables::T_Hash, Test(), XrdAccAccess_Tables::U_Hash, XrdSysXSLock::UnLock(), XrdAccAccess_Tables::X_List, XrdOucHashVal2(), xs_Shared, and XrdAccAccess_Tables::Z_List.
friend class XrdAccConfig [friend] |
Definition at line 79 of file XrdAccAccess.hh.
struct XrdAccAccess_Tables XrdAccAccess::Atab [private] |
XrdSysXSLock XrdAccAccess::Access_Context [private] |
XrdAccAudit* XrdAccAccess::Auditor [private] |
Definition at line 112 of file XrdAccAccess.hh.
Referenced by Access(), Audit(), XrdAccConfig::xaud(), and XrdAccAccess().