xrootd
Public Member Functions | Private Member Functions | Private Attributes | Friends
XrdAccAccess Class Reference

#include <XrdAccAccess.hh>

Inheritance diagram for XrdAccAccess:
Inheritance graph
[legend]
Collaboration diagram for XrdAccAccess:
Collaboration graph
[legend]

List of all members.

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 ()
- Public Member Functions inherited from XrdAccAuthorize
 XrdAccAuthorize ()
 Constructor.
virtual ~XrdAccAuthorize ()
 Destructor.

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

Constructor & Destructor Documentation

XrdAccAccess::XrdAccAccess ( XrdSysError *  erp)

References Auditor, and XrdAccAuditObject().

XrdAccAccess::~XrdAccAccess ( )
inline

Member Function Documentation

XrdAccPrivs XrdAccAccess::Access ( const XrdSecEntity *  Entity,
const char *  path,
const Access_Operation  oper,
XrdOucEnv *  Env = 0 
)
virtual

Check whether or not the client is permitted specified access to a path.

Parameters:
Entity-> Authentication information
path-> The logical path which is the target of oper
oper-> The operation being attempted (see the enum above). If the oper is AOP_Any, then the actual privileges are returned and the caller may make subsequent tests using Test().
Env-> Environmental information at the time of the operation as supplied by the path CGI string. This is optional and the pointer may be zero.
Returns:
Permit: a non-zero value (access is permitted) Deny: zero (access is denied)

Implements XrdAccAuthorize.

References Access_Context, Atab, Audit(), audit_grant, XrdAccAudit::Auditing(), Auditor, XrdAccAccess_Tables::D_List, XrdAccCapName::Find(), XrdOucHash< T >::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
int XrdAccAccess::Audit ( const int  accok,
const XrdSecEntity *  Entity,
const char *  path,
const Access_Operation  oper,
XrdOucEnv *  Env = 0 
)
virtual

Route an audit message to the appropriate audit exit routine. See XrdAccAudit.h for more information on how the default implementation works. Currently, this method is not called by the ofs but should be used by the implementation to record denials or grants, as warranted.

Parameters:
accok-> True is access was grated; false otherwise.
Entity-> Authentication information
path-> The logical path which is the target of oper
oper-> The operation being attempted (see above)
Env-> Environmental information at the time of the operation as supplied by the path CGI string. This is optional and the pointer may be zero.
Returns:
Success: !0 information recorded. Failure: 0 information could not be recorded.

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)
int XrdAccAccess::Test ( const XrdAccPrivs  priv,
const Access_Operation  oper 
)
virtual

Check whether the specified operation is permitted.

Parameters:
priv-> the privileges as returned by Access().
oper-> The operation being attempted (see above)
Returns:
Permit: a non-zero value (access is permitted) Deny: zero (access is denied)

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().


Friends And Related Function Documentation

friend class XrdAccConfig
friend

Member Data Documentation

XrdSysXSLock XrdAccAccess::Access_Context
private

Referenced by Access(), and SwapTabs().

struct XrdAccAccess_Tables XrdAccAccess::Atab
private

Referenced by Access().

XrdAccAudit* XrdAccAccess::Auditor
private

The documentation for this class was generated from the following files: