xrootd
|
#include <XrdAccAccess.hh>
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 | |
struct XrdAccAccess_Tables | Atab |
XrdSysXSLock | Access_Context |
XrdAccAudit * | Auditor |
Friends | |
class | XrdAccConfig |
XrdAccAccess::XrdAccAccess | ( | XrdSysError * | erp | ) |
References Auditor, and XrdAccAuditObject().
XrdAccAccess::~XrdAccAccess | ( | ) | [inline] |
XrdAccPrivs XrdAccAccess::Access | ( | const XrdSecEntity * | Entity, |
const char * | path, | ||
const Access_Operation | oper, | ||
XrdOucEnv * | Env = 0 |
||
) | [virtual] |
Implements XrdAccAuthorize.
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(), XrdAccPrivCaps::nprivs, XrdAccPrivCaps::pprivs, XrdAccCapability::Privs(), strlcpy(), Test(), XrdAccAccess_Tables::U_Hash, XrdSysXSLock::UnLock(), XrdAccAccess_Tables::X_List, XrdOucHashVal2(), xs_Shared, and XrdAccAccess_Tables::Z_List.
XrdAccPrivs XrdAccAccess::Access | ( | const char * | id, |
const Access_ID_Type | idtype, | ||
const char * | path, | ||
const Access_Operation | oper | ||
) | [private] |
References Access_Context, AID_Group, AID_Host, AID_Netgroup, AID_Set, AID_Template, AID_User, Atab, XrdAccAccess_Tables::D_List, XrdOucHash< T >::Find(), XrdAccCapName::Find(), XrdAccAccess_Tables::G_Hash, XrdAccAccess_Tables::H_Hash, XrdSysXSLock::Lock(), XrdAccAccess_Tables::N_Hash, XrdAccPrivCaps::nprivs, XrdAccPrivCaps::pprivs, 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.
int XrdAccAccess::Audit | ( | const int | accok, |
const XrdSecEntity * | Entity, | ||
const char * | path, | ||
const Access_Operation | oper, | ||
XrdOucEnv * | Env = 0 |
||
) | [virtual] |
Implements XrdAccAuthorize.
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 | ) |
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, 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.
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().
friend class XrdAccConfig [friend] |
XrdSysXSLock XrdAccAccess::Access_Context [private] |
Referenced by Access(), and SwapTabs().
struct XrdAccAccess_Tables XrdAccAccess::Atab [private] |
Referenced by Access().
XrdAccAudit* XrdAccAccess::Auditor [private] |
Referenced by Access(), Audit(), XrdAccConfig::xaud(), and XrdAccAccess().