/********************************************************* * * Multi Theft Auto :: Deathmatch Modification (version 1.0) * Copyright © 2003-2006 MTA. All Rights Reserved. * * Grand Theft Auto is © 1997-2005 Rockstar North * * THE FOLLOWING SOURCES ARE CONSIDERED HIGHLY CONFIDENTIAL * AND ARE TO BE VIEWED ONLY BY MEMBERS OF THE MULTI THEFT * AUTO STAFF. ANY VIOLATION OF THESE TERMS CAN LEAD TO * CRIMINAL PROSECUTION AND/OR LARGE FINES UNDER UNITED * STATES LAW. * **********************************************************/ class CAccessControlListGroup; #ifndef __CACCESSCONTROLLISTGROUP_H #define __CACCESSCONTROLLISTGROUP_H #include "CCommon.h" #include "../Config.h" class CAccessControlListGroupObject { public: enum EObjectType { OBJECT_TYPE_USER, OBJECT_TYPE_RESOURCE, }; public: inline CAccessControlListGroupObject ( const char* szName, EAccountType eObjectType ) { memset ( m_szName, '\0', 256 ); snprintf ( m_szName, 256, "%s", szName ); m_eObjectType = eObjectType; }; virtual ~CAccessControlListGroupObject ( void ) { }; inline const char* GetObjectName ( void ) { return m_szName; }; inline EObjectType GetObjectType ( void ) { return m_eObjectType; }; private: char m_szName [ 256 ]; EObjectType m_eObjectType; }; class CAccessControlListGroup { public: CAccessControlListGroup ( const char* szGroupName ); ~CAccessControlListGroup ( void ); inline const char* GetGroupName ( void ) { return m_szGroupName; }; CAccessControlListGroupObject* AddObject ( const char* szObjectName, CAccessControlListGroupObject::EObjectType eObjectType ); bool FindObjectMatch ( const char* szObjectName, CAccessControlListGroupObject::EObjectType eObjectType ); bool AddACL ( class CAccessControlList* pACL ); bool IsACLPresent ( class CAccessControlList* pACL ); class CAccessControlList* GetACL ( const char* szACLName ); private: char m_szGroupName [ 256 ]; list < CAccessControlListGroupObject* > m_Objects; list < class CAccessControlList* > m_ACLs; }; #endif