from .schema import AttributeSchema, ClassSchema
from .site import Site
from .subnet import Subnet
-from .types import AccountType, SystemFlags
+from .types import AccountType, GroupType, SystemFlags
from .user import User
from .value_type import ValueType
from .fields import (BooleanField, DnField, EnumField, IntegerField, SIDField,
StringField)
from .model import Model
-from .types import SystemFlags
+from .types import AccountType, GroupType, SystemFlags
class Group(Model):
+ account_type = EnumField("sAMAccountType", AccountType)
+ group_type = EnumField("groupType", GroupType)
admin_count = IntegerField("adminCount")
description = StringField("description")
is_critical_system_object = BooleanField("isCriticalSystemObject",
ATYPE_DISTRIBUTION_LOCAL_GROUP,
ATYPE_WORKSTATION_TRUST,
ATYPE_INTERDOMAIN_TRUST,
+ GTYPE_DISTRIBUTION_GLOBAL_GROUP,
+ GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP,
+ GTYPE_DISTRIBUTION_UNIVERSAL_GROUP,
+ GTYPE_SECURITY_BUILTIN_LOCAL_GROUP,
+ GTYPE_SECURITY_DOMAIN_LOCAL_GROUP,
+ GTYPE_SECURITY_GLOBAL_GROUP,
+ GTYPE_SECURITY_UNIVERSAL_GROUP,
SYSTEM_FLAG_CR_NTDS_NC,
SYSTEM_FLAG_CR_NTDS_DOMAIN,
SYSTEM_FLAG_CR_NTDS_NOT_GC_REPLICATED,
INTERDOMAIN_TRUST = ATYPE_INTERDOMAIN_TRUST
+class GroupType(IntFlag):
+ DISTRIBUTION_GLOBAL_GROUP = GTYPE_DISTRIBUTION_GLOBAL_GROUP
+ DISTRIBUTION_DOMAIN_LOCAL_GROUP = GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP
+ DISTRIBUTION_UNIVERSAL_GROUP = GTYPE_DISTRIBUTION_UNIVERSAL_GROUP
+ SECURITY_BUILTIN_LOCAL_GROUP = GTYPE_SECURITY_BUILTIN_LOCAL_GROUP
+ SECURITY_DOMAIN_LOCAL_GROUP = GTYPE_SECURITY_DOMAIN_LOCAL_GROUP
+ SECURITY_GLOBAL_GROUP = GTYPE_SECURITY_GLOBAL_GROUP
+ SECURITY_UNIVERSAL_GROUP = GTYPE_SECURITY_UNIVERSAL_GROUP
+
+
class SystemFlags(IntFlag):
CR_NTDS_NC = SYSTEM_FLAG_CR_NTDS_NC
CR_NTDS_DOMAIN = SYSTEM_FLAG_CR_NTDS_DOMAIN