XRootD
XrdAccAccess_ID Struct Reference

#include <XrdAccAccess.hh>

+ Collaboration diagram for XrdAccAccess_ID:

Public Member Functions

 XrdAccAccess_ID (const char *Name=0)
 
 ~XrdAccAccess_ID ()
 
bool Applies (const XrdAccEntityInfo &Entity)
 
XrdAccAccess_IDExport ()
 

Public Attributes

XrdAccCapabilitycaps
 
short glen
 
char * grp
 
short hlen
 
char * host
 
char * name
 
XrdAccAccess_IDnext
 
char * org
 
char * role
 
int rule
 
char * user
 

Detailed Description

Definition at line 47 of file XrdAccAccess.hh.

Constructor & Destructor Documentation

◆ XrdAccAccess_ID()

XrdAccAccess_ID::XrdAccAccess_ID ( const char *  Name = 0)
inline

Definition at line 71 of file XrdAccAccess.hh.

72  : name(Name ? strdup(Name) : 0),
73  grp(0), host(0), org(0), role(0), user(0),
74  caps(0), next(0), rule(0), hlen(0), glen(0) {}
XrdAccCapability * caps
Definition: XrdAccAccess.hh:54
XrdAccAccess_ID * next
Definition: XrdAccAccess.hh:55

Referenced by Export().

+ Here is the caller graph for this function:

◆ ~XrdAccAccess_ID()

XrdAccAccess_ID::~XrdAccAccess_ID ( )
inline

Definition at line 75 of file XrdAccAccess.hh.

75  {if (name) free(name);
76  if (grp) free(grp);
77  if (host) free(host);
78  if (org) free(org);
79  if (role) free(role);
80  if (user) free(user);
81  if (caps) delete caps;
82  }

References caps, grp, host, name, org, role, and user.

Member Function Documentation

◆ Applies()

bool XrdAccAccess_ID::Applies ( const XrdAccEntityInfo Entity)

Definition at line 446 of file XrdAccAccess.cc.

447 {
448 
449 // Check single value items in the most probable use order
450 //
451  if (org && (!Entity.vorg || strcmp(org, Entity.vorg))) return false;
452  if (role && (!Entity.role || strcmp(role, Entity.role))) return false;
453  if (grp && (!Entity.grup || strcmp(grp, Entity.grup))) return false;
454  if (user && (!Entity.name || strcmp(user, Entity.name))) return false;
455 
456 // The check is more complicated as the host field may be a domain.
457 //
458  if (host)
459  {const char *hName;
460  if (*host == '.')
461  {int eLen = strlen(Entity.host);
462  if (eLen <= hlen) return false;
463  hName = Entity.host + eLen - hlen;
464  } else hName = Entity.host;
465  if (strcmp(host, hName)) return false;
466  }
467 
468 // All done, this rules applies!
469 //
470  return true;
471 }
const char * vorg
Definition: XrdAccEntity.hh:44
const char * role
Definition: XrdAccEntity.hh:45
const char * name
Definition: XrdAccEntity.hh:42
const char * host
Definition: XrdAccEntity.hh:43
const char * grup
Definition: XrdAccEntity.hh:46

References grp, XrdAccEntityInfo::grup, hlen, host, XrdAccEntityInfo::host, XrdAccEntityInfo::name, org, role, XrdAccEntityInfo::role, user, and XrdAccEntityInfo::vorg.

Referenced by XrdAccAccess::Access().

+ Here is the caller graph for this function:

◆ Export()

XrdAccAccess_ID* XrdAccAccess_ID::Export ( )
inline

Definition at line 62 of file XrdAccAccess.hh.

63  {XrdAccAccess_ID *xID;
64  xID = new XrdAccAccess_ID;
65  *xID = *this;
66  name = grp = host = org = role = user = 0;
67  caps = 0;
68  return xID;
69  }
XrdAccAccess_ID(const char *Name=0)
Definition: XrdAccAccess.hh:71

References XrdAccAccess_ID(), caps, grp, host, name, org, role, and user.

+ Here is the call graph for this function:

Member Data Documentation

◆ caps

XrdAccCapability* XrdAccAccess_ID::caps

Definition at line 54 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), XrdAccAccess::Access(), and Export().

◆ glen

short XrdAccAccess_ID::glen

Definition at line 58 of file XrdAccAccess.hh.

◆ grp

char* XrdAccAccess_ID::grp

Definition at line 49 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), Applies(), and Export().

◆ hlen

short XrdAccAccess_ID::hlen

Definition at line 57 of file XrdAccAccess.hh.

Referenced by Applies().

◆ host

char* XrdAccAccess_ID::host

Definition at line 50 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), Applies(), Export(), and XrdAccAccess::SwapTabs().

◆ name

char* XrdAccAccess_ID::name

Definition at line 48 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), and Export().

◆ next

XrdAccAccess_ID* XrdAccAccess_ID::next

Definition at line 55 of file XrdAccAccess.hh.

Referenced by XrdAccAccess::Access(), and XrdAccAccess::SwapTabs().

◆ org

char* XrdAccAccess_ID::org

Definition at line 51 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), Applies(), and Export().

◆ role

char* XrdAccAccess_ID::role

Definition at line 52 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), Applies(), and Export().

◆ rule

int XrdAccAccess_ID::rule

Definition at line 56 of file XrdAccAccess.hh.

◆ user

char* XrdAccAccess_ID::user

Definition at line 53 of file XrdAccAccess.hh.

Referenced by ~XrdAccAccess_ID(), Applies(), and Export().


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