# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-from .fields import BooleanField, DnField, IntegerField, SIDField, StringField
+from .fields import (BooleanField, DnField, EnumField, IntegerField, SIDField,
+ StringField)
from .model import Model
+from .types import SystemFlags
class Group(Model):
default=False, readonly=True)
member = DnField("member", many=True)
object_sid = SIDField("objectSid")
- system_flags = IntegerField("systemFlags")
+ system_flags = EnumField("systemFlags", SystemFlags)
@staticmethod
def get_object_class():
from enum import IntFlag
-from samba.dsdb import (ATYPE_SECURITY_GLOBAL_GROUP,
- ATYPE_SECURITY_LOCAL_GROUP,
- ATYPE_NORMAL_ACCOUNT,
- ATYPE_DISTRIBUTION_GLOBAL_GROUP,
- ATYPE_DISTRIBUTION_LOCAL_GROUP,
- ATYPE_WORKSTATION_TRUST,
- ATYPE_INTERDOMAIN_TRUST)
+from samba.dsdb import (
+ ATYPE_SECURITY_GLOBAL_GROUP,
+ ATYPE_SECURITY_LOCAL_GROUP,
+ ATYPE_NORMAL_ACCOUNT,
+ ATYPE_DISTRIBUTION_GLOBAL_GROUP,
+ ATYPE_DISTRIBUTION_LOCAL_GROUP,
+ ATYPE_WORKSTATION_TRUST,
+ ATYPE_INTERDOMAIN_TRUST,
+ SYSTEM_FLAG_CR_NTDS_NC,
+ SYSTEM_FLAG_CR_NTDS_DOMAIN,
+ SYSTEM_FLAG_CR_NTDS_NOT_GC_REPLICATED,
+ SYSTEM_FLAG_ATTR_IS_RDN,
+ SYSTEM_FLAG_CONFIG_ALLOW_LIMITED_MOVE,
+ SYSTEM_FLAG_CONFIG_ALLOW_MOVE,
+ SYSTEM_FLAG_CONFIG_ALLOW_RENAME,
+ SYSTEM_FLAG_DISALLOW_DELETE,
+ SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE,
+ SYSTEM_FLAG_DOMAIN_DISALLOW_MOVE,
+ SYSTEM_FLAG_DOMAIN_DISALLOW_RENAME
+)
class AccountType(IntFlag):
DISTRIBUTION_LOCAL_GROUP = ATYPE_DISTRIBUTION_LOCAL_GROUP
WORKSTATION_TRUST = ATYPE_WORKSTATION_TRUST
INTERDOMAIN_TRUST = ATYPE_INTERDOMAIN_TRUST
+
+
+class SystemFlags(IntFlag):
+ CR_NTDS_NC = SYSTEM_FLAG_CR_NTDS_NC
+ CR_NTDS_DOMAIN = SYSTEM_FLAG_CR_NTDS_DOMAIN
+ CR_NTDS_NOT_GC_REPLICATED = SYSTEM_FLAG_CR_NTDS_NOT_GC_REPLICATED
+ ATTR_IS_RDN = SYSTEM_FLAG_ATTR_IS_RDN
+ CONFIG_ALLOW_LIMITED_MOVE = SYSTEM_FLAG_CONFIG_ALLOW_LIMITED_MOVE
+ CONFIG_ALLOW_MOVE = SYSTEM_FLAG_CONFIG_ALLOW_MOVE
+ CONFIG_ALLOW_RENAME = SYSTEM_FLAG_CONFIG_ALLOW_RENAME
+ DISALLOW_DELETE = SYSTEM_FLAG_DISALLOW_DELETE
+ DISALLOW_MOVE_ON_DELETE = SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE
+ DOMAIN_DISALLOW_MOVE = SYSTEM_FLAG_DOMAIN_DISALLOW_MOVE
+ DOMAIN_DISALLOW_RENAME = SYSTEM_FLAG_DOMAIN_DISALLOW_RENAME