Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-08 10:33:35

0001 #ifndef __ACC_PRIVS__
0002 #define __ACC_PRIVS__
0003 /******************************************************************************/
0004 /*                                                                            */
0005 /*                        X r d A c c P r i v s . h h                         */
0006 /*                                                                            */
0007 /* (c) 2003 by the Board of Trustees of the Leland Stanford, Jr., University  */
0008 /*                            All Rights Reserved                             */
0009 /*   Produced by Andrew Hanushevsky for Stanford University under contract    */
0010 /*              DE-AC02-76-SFO0515 with the Department of Energy              */
0011 /*                                                                            */
0012 /* This file is part of the XRootD software suite.                            */
0013 /*                                                                            */
0014 /* XRootD is free software: you can redistribute it and/or modify it under    */
0015 /* the terms of the GNU Lesser General Public License as published by the     */
0016 /* Free Software Foundation, either version 3 of the License, or (at your     */
0017 /* option) any later version.                                                 */
0018 /*                                                                            */
0019 /* XRootD is distributed in the hope that it will be useful, but WITHOUT      */
0020 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      */
0021 /* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public       */
0022 /* License for more details.                                                  */
0023 /*                                                                            */
0024 /* You should have received a copy of the GNU Lesser General Public License   */
0025 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file  */
0026 /* COPYING (GPL license).  If not, see <http://www.gnu.org/licenses/>.        */
0027 /*                                                                            */
0028 /* The copyright holder's institutional names and contributor's names may not */
0029 /* be used to endorse or promote products derived from this software without  */
0030 /* specific prior written permission of the institution or contributor.       */
0031 /******************************************************************************/
0032 
0033 /******************************************************************************/
0034 /*                           X r d A c c P r i v s                            */
0035 /******************************************************************************/
0036   
0037 // Recognized privileges
0038 //
0039 enum XrdAccPrivs {XrdAccPriv_All    = 0x07f,
0040                   XrdAccPriv_Chmod  = 0x063,  // Insert + Open r/w + Delete
0041                   XrdAccPriv_Chown  = 0x063,  // Insert + Open r/w + Delete
0042                   XrdAccPriv_Create = 0x062,  // Insert + Open r/w
0043                   XrdAccPriv_Delete = 0x001,
0044                   XrdAccPriv_Insert = 0x002,
0045                   XrdAccPriv_Lock   = 0x004,
0046                   XrdAccPriv_Mkdir  = 0x002,  // Insert
0047                   XrdAccPriv_Lookup = 0x008,
0048                   XrdAccPriv_Rename = 0x010,
0049                   XrdAccPriv_Read   = 0x020,
0050                   XrdAccPriv_Readdir= 0x020,
0051                   XrdAccPriv_Write  = 0x040,
0052                   XrdAccPriv_Update = 0x060,
0053                   XrdAccPriv_None   = 0x000
0054                  };
0055   
0056 /******************************************************************************/
0057 /*                        X r d A c c P r i v S p e c                         */
0058 /******************************************************************************/
0059   
0060 // The following are the 1-letter privileges that we support.
0061 //
0062 enum XrdAccPrivSpec {   All_Priv = 'a',
0063                      Delete_Priv = 'd',
0064                      Insert_Priv = 'i',
0065                        Lock_Priv = 'k',
0066                      Lookup_Priv = 'l',
0067                      Rename_Priv = 'n',
0068                        Read_Priv = 'r',
0069                       Write_Priv = 'w',
0070                         Neg_Priv = '-'
0071                     };
0072 
0073 /******************************************************************************/
0074 /*                        X r d A c c P r i v C a p s                         */
0075 /******************************************************************************/
0076 
0077 struct XrdAccPrivCaps {XrdAccPrivs pprivs;     // Positive privileges
0078                        XrdAccPrivs nprivs;     // Negative privileges
0079 
0080                        XrdAccPrivCaps() {pprivs = XrdAccPriv_None;
0081                                          nprivs = XrdAccPriv_None;
0082                                         }
0083                       ~XrdAccPrivCaps() {}
0084 
0085                       };
0086 #endif