From: Roger U. <ru...@us...> - 2007-08-02 07:04:16
|
Update of /cvsroot/pywin32/pywin32/win32/Demos/security In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23996/win32/Demos/security Modified Files: security_enums.py Log Message: Add lookup functionality to Enum class, and some new sets of constants Index: security_enums.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/Demos/security/security_enums.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** security_enums.py 10 Mar 2003 01:18:15 -0000 1.1 --- security_enums.py 2 Aug 2007 07:04:16 -0000 1.2 *************** *** 1,23 **** ! import win32security class Enum: ! def __init__(self,*consts): ! for const in consts: ! setattr(self,const,getattr(win32security,const)) TOKEN_INFORMATION_CLASS = Enum( ! 'TokenDefaultDacl', 'TokenGroups', ! 'TokenGroupsAndPrivileges', ! 'TokenImpersonationLevel', 'TokenOwner', 'TokenPrimaryGroup', ! 'TokenPrivileges', ! 'TokenRestrictedSids', ! 'TokenSandBoxInert', ! 'TokenSessionId', 'TokenSource', 'TokenStatistics', ! 'TokenType', ! 'TokenUser') TOKEN_TYPE = Enum( --- 1,67 ---- ! import win32security, ntsecuritycon, winnt ! class Enum: ! def __init__(self, *const_names): ! """Accepts variable number of constant names that can be found in either ! win32security, ntsecuritycon, or winnt.""" ! for const_name in const_names: ! try: ! const_val=getattr(win32security,const_name) ! except AttributeError: ! try: ! const_val=getattr(ntsecuritycon, const_name) ! except AttributeError: ! try: ! const_val=getattr(winnt, const_name) ! except AttributeError: ! raise AttributeError, 'Constant "%s" not found in win32security, ntsecuritycon, or winnt.' %const_name ! setattr(self, const_name, const_val) ! ! def lookup_name(self, const_val): ! """Looks up the name of a particular value.""" ! for k,v in self.__dict__.items(): ! if v==const_val: ! return k ! raise AttributeError, 'Value %s not found in enum' %const_val ! ! def lookup_flags(self, flags): ! """Returns the names of all recognized flags in input, and any flags not found in the enum.""" ! flag_names=[] ! unknown_flags=flags ! for k,v in self.__dict__.items(): ! if flags & v == v: ! flag_names.append(k) ! unknown_flags = unknown_flags & ~v ! return flag_names, unknown_flags TOKEN_INFORMATION_CLASS = Enum( ! 'TokenUser', 'TokenGroups', ! 'TokenPrivileges', 'TokenOwner', 'TokenPrimaryGroup', ! 'TokenDefaultDacl', 'TokenSource', + 'TokenType', + 'TokenImpersonationLevel', 'TokenStatistics', ! 'TokenRestrictedSids', ! 'TokenSessionId', ! 'TokenGroupsAndPrivileges', ! 'TokenSessionReference', ! 'TokenSandBoxInert', ! 'TokenAuditPolicy', ! 'TokenOrigin', ! 'TokenElevationType', ! 'TokenLinkedToken', ! 'TokenElevation', ! 'TokenHasRestrictions', ! 'TokenAccessInformation', ! 'TokenVirtualizationAllowed', ! 'TokenVirtualizationEnabled', ! 'TokenIntegrityLevel', ! 'TokenUIAccess', ! 'TokenMandatoryPolicy', ! 'TokenLogonSid') TOKEN_TYPE = Enum( *************** *** 25,28 **** --- 69,77 ---- 'TokenImpersonation') + TOKEN_ELEVATION_TYPE = Enum( + 'TokenElevationTypeDefault', + 'TokenElevationTypeFull', + 'TokenElevationTypeLimited') + POLICY_AUDIT_EVENT_TYPE = Enum( 'AuditCategorySystem', *************** *** 83,92 **** # AceType in ACE_HEADER - not a real enum ACE_TYPE = Enum( 'ACCESS_ALLOWED_ACE_TYPE', - 'ACCESS_ALLOWED_OBJECT_ACE_TYPE', 'ACCESS_DENIED_ACE_TYPE', - 'ACCESS_DENIED_OBJECT_ACE_TYPE', 'SYSTEM_AUDIT_ACE_TYPE', ! 'SYSTEM_AUDIT_OBJECT_ACE_TYPE') #bit flags for AceFlags - not a real enum --- 132,161 ---- # AceType in ACE_HEADER - not a real enum ACE_TYPE = Enum( + 'ACCESS_MIN_MS_ACE_TYPE', 'ACCESS_ALLOWED_ACE_TYPE', 'ACCESS_DENIED_ACE_TYPE', 'SYSTEM_AUDIT_ACE_TYPE', ! 'SYSTEM_ALARM_ACE_TYPE', ! 'ACCESS_MAX_MS_V2_ACE_TYPE', ! 'ACCESS_ALLOWED_COMPOUND_ACE_TYPE', ! 'ACCESS_MAX_MS_V3_ACE_TYPE', ! 'ACCESS_MIN_MS_OBJECT_ACE_TYPE', ! 'ACCESS_ALLOWED_OBJECT_ACE_TYPE', ! 'ACCESS_DENIED_OBJECT_ACE_TYPE', ! 'SYSTEM_AUDIT_OBJECT_ACE_TYPE', ! 'SYSTEM_ALARM_OBJECT_ACE_TYPE', ! 'ACCESS_MAX_MS_OBJECT_ACE_TYPE', ! 'ACCESS_MAX_MS_V4_ACE_TYPE', ! 'ACCESS_MAX_MS_ACE_TYPE', ! 'ACCESS_ALLOWED_CALLBACK_ACE_TYPE', ! 'ACCESS_DENIED_CALLBACK_ACE_TYPE', ! 'ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE', ! 'ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE', ! 'SYSTEM_AUDIT_CALLBACK_ACE_TYPE', ! 'SYSTEM_ALARM_CALLBACK_ACE_TYPE', ! 'SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE', ! 'SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE', ! 'SYSTEM_MANDATORY_LABEL_ACE_TYPE', ! 'ACCESS_MAX_MS_V5_ACE_TYPE') #bit flags for AceFlags - not a real enum *************** *** 138,142 **** 'SidTypeInvalid', 'SidTypeUnknown', ! 'SidTypeComputer') ## bit flags, not a real enum --- 207,212 ---- 'SidTypeInvalid', 'SidTypeUnknown', ! 'SidTypeComputer', ! 'SidTypeLabel') ## bit flags, not a real enum *************** *** 227,228 **** --- 297,316 ---- 'SE_PRIVILEGE_USED_FOR_ACCESS') + # Group flags used with TokenGroups + TOKEN_GROUP_ATTRIBUTES = Enum( + 'SE_GROUP_MANDATORY', + 'SE_GROUP_ENABLED_BY_DEFAULT', + 'SE_GROUP_ENABLED', + 'SE_GROUP_OWNER', + 'SE_GROUP_USE_FOR_DENY_ONLY', + 'SE_GROUP_INTEGRITY', + 'SE_GROUP_INTEGRITY_ENABLED', + 'SE_GROUP_LOGON_ID', + 'SE_GROUP_RESOURCE') + + # Privilege flags returned by TokenPrivileges + TOKEN_PRIVILEGE_ATTRIBUTES = Enum( + 'SE_PRIVILEGE_ENABLED_BY_DEFAULT', + 'SE_PRIVILEGE_ENABLED', + 'SE_PRIVILEGE_REMOVED', + 'SE_PRIVILEGE_USED_FOR_ACCESS') |