mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
s4-python: Move dsdb constants to a separate python module.
This commit is contained in:
parent
e5b33be2f2
commit
31a517e172
@ -106,3 +106,9 @@ PRIVATE_DEPENDENCIES = \
|
||||
|
||||
DNS_UPDATE_SRV_OBJ_FILES = $(addprefix $(dsdbsrcdir)/dns/, \
|
||||
dns_update.o)
|
||||
|
||||
[PYTHON::python_dsdb]
|
||||
LIBRARY_REALNAME = samba/dsdb.$(SHLIBEXT)
|
||||
PRIVATE_DEPENDENCIES = SAMDB
|
||||
|
||||
python_dsdb_OBJ_FILES = $(dsdbsrcdir)/pydsdb.o
|
||||
|
78
source4/dsdb/pydsdb.c
Normal file
78
source4/dsdb/pydsdb.c
Normal file
@ -0,0 +1,78 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2010
|
||||
Copyright (C) Matthias Dieter Wallnöfer 2009
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
#include "includes.h"
|
||||
#include "dsdb/samdb/samdb.h"
|
||||
|
||||
static PyMethodDef py_dsdb_methods[] = {
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
void initdsdb(void)
|
||||
{
|
||||
PyObject *m;
|
||||
|
||||
m = Py_InitModule3("dsdb", py_dsdb_methods,
|
||||
"Python bindings for the directory service databases.");
|
||||
if (m == NULL)
|
||||
return;
|
||||
|
||||
/* "userAccountControl" flags */
|
||||
PyModule_AddObject(m, "UF_NORMAL_ACCOUNT", PyInt_FromLong(UF_NORMAL_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_TEMP_DUPLICATE_ACCOUNT", PyInt_FromLong(UF_TEMP_DUPLICATE_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_SERVER_TRUST_ACCOUNT", PyInt_FromLong(UF_SERVER_TRUST_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_WORKSTATION_TRUST_ACCOUNT", PyInt_FromLong(UF_WORKSTATION_TRUST_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_INTERDOMAIN_TRUST_ACCOUNT", PyInt_FromLong(UF_INTERDOMAIN_TRUST_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_PASSWD_NOTREQD", PyInt_FromLong(UF_PASSWD_NOTREQD));
|
||||
PyModule_AddObject(m, "UF_ACCOUNTDISABLE", PyInt_FromLong(UF_ACCOUNTDISABLE));
|
||||
|
||||
/* "groupType" flags */
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_BUILTIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_BUILTIN_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_GLOBAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_DOMAIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_DOMAIN_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_UNIVERSAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_UNIVERSAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_DISTRIBUTION_GLOBAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_DISTRIBUTION_UNIVERSAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_UNIVERSAL_GROUP));
|
||||
|
||||
/* "sAMAccountType" flags */
|
||||
PyModule_AddObject(m, "ATYPE_NORMAL_ACCOUNT", PyInt_FromLong(ATYPE_NORMAL_ACCOUNT));
|
||||
PyModule_AddObject(m, "ATYPE_WORKSTATION_TRUST", PyInt_FromLong(ATYPE_WORKSTATION_TRUST));
|
||||
PyModule_AddObject(m, "ATYPE_INTERDOMAIN_TRUST", PyInt_FromLong(ATYPE_INTERDOMAIN_TRUST));
|
||||
PyModule_AddObject(m, "ATYPE_SECURITY_GLOBAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_SECURITY_LOCAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_SECURITY_UNIVERSAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_UNIVERSAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_DISTRIBUTION_GLOBAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_DISTRIBUTION_LOCAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_DISTRIBUTION_UNIVERSAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_UNIVERSAL_GROUP));
|
||||
|
||||
/* "domainFunctionality", "forestFunctionality" flags in the rootDSE */
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2000", PyInt_FromLong(DS_DOMAIN_FUNCTION_2000));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2003_MIXED", PyInt_FromLong(DS_DOMAIN_FUNCTION_2003_MIXED));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2003", PyInt_FromLong(DS_DOMAIN_FUNCTION_2003));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008", PyInt_FromLong(DS_DOMAIN_FUNCTION_2008));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008_R2", PyInt_FromLong(DS_DOMAIN_FUNCTION_2008_R2));
|
||||
|
||||
/* "domainControllerFunctionality" flags in the rootDSE */
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2000", PyInt_FromLong(DS_DC_FUNCTION_2000));
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2003", PyInt_FromLong(DS_DC_FUNCTION_2003));
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2008", PyInt_FromLong(DS_DC_FUNCTION_2008));
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2008_R2", PyInt_FromLong(DS_DC_FUNCTION_2008_R2));
|
||||
}
|
@ -24,10 +24,9 @@ from ldb import ERR_UNDEFINED_ATTRIBUTE_TYPE
|
||||
from ldb import Message, MessageElement, Dn
|
||||
from ldb import FLAG_MOD_ADD, FLAG_MOD_REPLACE, FLAG_MOD_DELETE
|
||||
from samba import Ldb
|
||||
from samba import UF_NORMAL_ACCOUNT
|
||||
from samba import UF_WORKSTATION_TRUST_ACCOUNT
|
||||
from samba import UF_PASSWD_NOTREQD, UF_ACCOUNTDISABLE
|
||||
from samba import ATYPE_NORMAL_ACCOUNT, ATYPE_WORKSTATION_TRUST
|
||||
from samba.dsdb import (UF_NORMAL_ACCOUNT, UF_WORKSTATION_TRUST_ACCOUNT,
|
||||
UF_PASSWD_NOTREQD, UF_ACCOUNTDISABLE, ATYPE_NORMAL_ACCOUNT,
|
||||
ATYPE_WORKSTATION_TRUST)
|
||||
|
||||
from subunit.run import SubunitTestRunner
|
||||
import unittest
|
||||
|
@ -2,12 +2,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This is a port of the original in testprogs/ejs/ldap.js
|
||||
|
||||
import getopt
|
||||
import optparse
|
||||
import sys
|
||||
import time
|
||||
import random
|
||||
import base64
|
||||
import os
|
||||
|
||||
sys.path.append("bin/python")
|
||||
@ -15,41 +13,18 @@ sys.path.append("bin/python")
|
||||
import samba.getopt as options
|
||||
|
||||
from samba.auth import system_session
|
||||
from ldb import SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE, LdbError
|
||||
from ldb import ERR_NO_SUCH_OBJECT, ERR_ATTRIBUTE_OR_VALUE_EXISTS
|
||||
from ldb import ERR_ENTRY_ALREADY_EXISTS, ERR_UNWILLING_TO_PERFORM
|
||||
from ldb import ERR_NOT_ALLOWED_ON_NON_LEAF, ERR_OTHER, ERR_INVALID_DN_SYNTAX
|
||||
from ldb import ERR_NO_SUCH_ATTRIBUTE, ERR_INSUFFICIENT_ACCESS_RIGHTS
|
||||
from ldb import ERR_OBJECT_CLASS_VIOLATION, ERR_NOT_ALLOWED_ON_RDN
|
||||
from ldb import ERR_NAMING_VIOLATION, ERR_CONSTRAINT_VIOLATION
|
||||
from ldb import ERR_UNDEFINED_ATTRIBUTE_TYPE
|
||||
from ldb import SCOPE_ONELEVEL, SCOPE_BASE, LdbError
|
||||
from ldb import ERR_NO_SUCH_OBJECT
|
||||
from ldb import ERR_UNWILLING_TO_PERFORM
|
||||
from ldb import ERR_CONSTRAINT_VIOLATION
|
||||
from ldb import Message, MessageElement, Dn
|
||||
from ldb import FLAG_MOD_ADD, FLAG_MOD_REPLACE, FLAG_MOD_DELETE
|
||||
from ldb import FLAG_MOD_REPLACE
|
||||
from samba import Ldb
|
||||
from samba import UF_NORMAL_ACCOUNT, UF_TEMP_DUPLICATE_ACCOUNT
|
||||
from samba import UF_SERVER_TRUST_ACCOUNT, UF_WORKSTATION_TRUST_ACCOUNT
|
||||
from samba import UF_INTERDOMAIN_TRUST_ACCOUNT
|
||||
from samba import UF_PASSWD_NOTREQD, UF_ACCOUNTDISABLE
|
||||
from samba import GTYPE_SECURITY_BUILTIN_LOCAL_GROUP
|
||||
from samba import GTYPE_SECURITY_GLOBAL_GROUP, GTYPE_SECURITY_DOMAIN_LOCAL_GROUP
|
||||
from samba import GTYPE_SECURITY_UNIVERSAL_GROUP
|
||||
from samba import GTYPE_DISTRIBUTION_GLOBAL_GROUP
|
||||
from samba import GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP
|
||||
from samba import GTYPE_DISTRIBUTION_UNIVERSAL_GROUP
|
||||
from samba import ATYPE_NORMAL_ACCOUNT, ATYPE_WORKSTATION_TRUST
|
||||
from samba import ATYPE_SECURITY_GLOBAL_GROUP, ATYPE_SECURITY_LOCAL_GROUP
|
||||
from samba import ATYPE_SECURITY_UNIVERSAL_GROUP
|
||||
from samba import ATYPE_DISTRIBUTION_GLOBAL_GROUP
|
||||
from samba import ATYPE_DISTRIBUTION_LOCAL_GROUP
|
||||
from samba import ATYPE_DISTRIBUTION_UNIVERSAL_GROUP
|
||||
from samba import DS_DC_FUNCTION_2003
|
||||
from samba.dsdb import DS_DC_FUNCTION_2003
|
||||
|
||||
from subunit.run import SubunitTestRunner
|
||||
import unittest
|
||||
|
||||
from samba.ndr import ndr_pack, ndr_unpack
|
||||
from samba.dcerpc import security
|
||||
|
||||
parser = optparse.OptionParser("ldap [options] <host>")
|
||||
sambaopts = options.SambaOptions(parser)
|
||||
parser.add_option_group(sambaopts)
|
||||
|
@ -13,15 +13,15 @@ sys.path.append("bin/python")
|
||||
import samba.getopt as options
|
||||
|
||||
# Some error messages that are being tested
|
||||
from ldb import SCOPE_SUBTREE, SCOPE_BASE, LdbError
|
||||
from ldb import ERR_NO_SUCH_OBJECT
|
||||
from ldb import SCOPE_SUBTREE, SCOPE_BASE, LdbError, ERR_NO_SUCH_OBJECT
|
||||
|
||||
# For running the test unit
|
||||
from samba.ndr import ndr_pack, ndr_unpack
|
||||
from samba.dcerpc import security
|
||||
|
||||
from samba import Ldb
|
||||
from samba.auth import system_session
|
||||
from samba import Ldb, DS_DOMAIN_FUNCTION_2008
|
||||
from samba.dsdb import DS_DOMAIN_FUNCTION_2008
|
||||
from samba.dcerpc.security import (
|
||||
SECINFO_OWNER, SECINFO_GROUP, SECINFO_DACL, SECINFO_SACL)
|
||||
from subunit.run import SubunitTestRunner
|
||||
|
@ -709,48 +709,6 @@ void initglue(void)
|
||||
|
||||
PyModule_AddObject(m, "version", PyString_FromString(SAMBA_VERSION_STRING));
|
||||
|
||||
/* "userAccountControl" flags */
|
||||
PyModule_AddObject(m, "UF_NORMAL_ACCOUNT", PyInt_FromLong(UF_NORMAL_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_TEMP_DUPLICATE_ACCOUNT", PyInt_FromLong(UF_TEMP_DUPLICATE_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_SERVER_TRUST_ACCOUNT", PyInt_FromLong(UF_SERVER_TRUST_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_WORKSTATION_TRUST_ACCOUNT", PyInt_FromLong(UF_WORKSTATION_TRUST_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_INTERDOMAIN_TRUST_ACCOUNT", PyInt_FromLong(UF_INTERDOMAIN_TRUST_ACCOUNT));
|
||||
PyModule_AddObject(m, "UF_PASSWD_NOTREQD", PyInt_FromLong(UF_PASSWD_NOTREQD));
|
||||
PyModule_AddObject(m, "UF_ACCOUNTDISABLE", PyInt_FromLong(UF_ACCOUNTDISABLE));
|
||||
|
||||
/* "groupType" flags */
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_BUILTIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_BUILTIN_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_GLOBAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_DOMAIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_DOMAIN_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_SECURITY_UNIVERSAL_GROUP", PyInt_FromLong(GTYPE_SECURITY_UNIVERSAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_DISTRIBUTION_GLOBAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "GTYPE_DISTRIBUTION_UNIVERSAL_GROUP", PyInt_FromLong(GTYPE_DISTRIBUTION_UNIVERSAL_GROUP));
|
||||
|
||||
/* "sAMAccountType" flags */
|
||||
PyModule_AddObject(m, "ATYPE_NORMAL_ACCOUNT", PyInt_FromLong(ATYPE_NORMAL_ACCOUNT));
|
||||
PyModule_AddObject(m, "ATYPE_WORKSTATION_TRUST", PyInt_FromLong(ATYPE_WORKSTATION_TRUST));
|
||||
PyModule_AddObject(m, "ATYPE_INTERDOMAIN_TRUST", PyInt_FromLong(ATYPE_INTERDOMAIN_TRUST));
|
||||
PyModule_AddObject(m, "ATYPE_SECURITY_GLOBAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_SECURITY_LOCAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_SECURITY_UNIVERSAL_GROUP", PyInt_FromLong(ATYPE_SECURITY_UNIVERSAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_DISTRIBUTION_GLOBAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_GLOBAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_DISTRIBUTION_LOCAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_LOCAL_GROUP));
|
||||
PyModule_AddObject(m, "ATYPE_DISTRIBUTION_UNIVERSAL_GROUP", PyInt_FromLong(ATYPE_DISTRIBUTION_UNIVERSAL_GROUP));
|
||||
|
||||
/* "domainFunctionality", "forestFunctionality" flags in the rootDSE */
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2000", PyInt_FromLong(DS_DOMAIN_FUNCTION_2000));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2003_MIXED", PyInt_FromLong(DS_DOMAIN_FUNCTION_2003_MIXED));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2003", PyInt_FromLong(DS_DOMAIN_FUNCTION_2003));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008", PyInt_FromLong(DS_DOMAIN_FUNCTION_2008));
|
||||
PyModule_AddObject(m, "DS_DOMAIN_FUNCTION_2008_R2", PyInt_FromLong(DS_DOMAIN_FUNCTION_2008_R2));
|
||||
|
||||
/* "domainControllerFunctionality" flags in the rootDSE */
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2000", PyInt_FromLong(DS_DC_FUNCTION_2000));
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2003", PyInt_FromLong(DS_DC_FUNCTION_2003));
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2008", PyInt_FromLong(DS_DC_FUNCTION_2008));
|
||||
PyModule_AddObject(m, "DS_DC_FUNCTION_2008_R2", PyInt_FromLong(DS_DC_FUNCTION_2008_R2));
|
||||
|
||||
/* one of the most annoying things about python scripts is
|
||||
that they don't die when you hit control-C. This fixes that
|
||||
sillyness. As we do all database operations using
|
||||
|
@ -413,45 +413,3 @@ def ensure_external_module(modulename, location):
|
||||
"samba.external.%s" % modulename, fromlist=["samba.external"])
|
||||
|
||||
version = glue.version
|
||||
|
||||
# "userAccountControl" flags
|
||||
UF_NORMAL_ACCOUNT = glue.UF_NORMAL_ACCOUNT
|
||||
UF_TEMP_DUPLICATE_ACCOUNT = glue.UF_TEMP_DUPLICATE_ACCOUNT
|
||||
UF_SERVER_TRUST_ACCOUNT = glue.UF_SERVER_TRUST_ACCOUNT
|
||||
UF_WORKSTATION_TRUST_ACCOUNT = glue.UF_WORKSTATION_TRUST_ACCOUNT
|
||||
UF_INTERDOMAIN_TRUST_ACCOUNT = glue.UF_INTERDOMAIN_TRUST_ACCOUNT
|
||||
UF_PASSWD_NOTREQD = glue.UF_PASSWD_NOTREQD
|
||||
UF_ACCOUNTDISABLE = glue.UF_ACCOUNTDISABLE
|
||||
|
||||
# "groupType" flags
|
||||
GTYPE_SECURITY_BUILTIN_LOCAL_GROUP = glue.GTYPE_SECURITY_BUILTIN_LOCAL_GROUP
|
||||
GTYPE_SECURITY_GLOBAL_GROUP = glue.GTYPE_SECURITY_GLOBAL_GROUP
|
||||
GTYPE_SECURITY_DOMAIN_LOCAL_GROUP = glue.GTYPE_SECURITY_DOMAIN_LOCAL_GROUP
|
||||
GTYPE_SECURITY_UNIVERSAL_GROUP = glue.GTYPE_SECURITY_UNIVERSAL_GROUP
|
||||
GTYPE_DISTRIBUTION_GLOBAL_GROUP = glue.GTYPE_DISTRIBUTION_GLOBAL_GROUP
|
||||
GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP = glue.GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP
|
||||
GTYPE_DISTRIBUTION_UNIVERSAL_GROUP = glue.GTYPE_DISTRIBUTION_UNIVERSAL_GROUP
|
||||
|
||||
# "sAMAccountType" flags
|
||||
ATYPE_NORMAL_ACCOUNT = glue.ATYPE_NORMAL_ACCOUNT
|
||||
ATYPE_WORKSTATION_TRUST = glue.ATYPE_WORKSTATION_TRUST
|
||||
ATYPE_INTERDOMAIN_TRUST = glue.ATYPE_INTERDOMAIN_TRUST
|
||||
ATYPE_SECURITY_GLOBAL_GROUP = glue.ATYPE_SECURITY_GLOBAL_GROUP
|
||||
ATYPE_SECURITY_LOCAL_GROUP = glue.ATYPE_SECURITY_LOCAL_GROUP
|
||||
ATYPE_SECURITY_UNIVERSAL_GROUP = glue.ATYPE_SECURITY_UNIVERSAL_GROUP
|
||||
ATYPE_DISTRIBUTION_GLOBAL_GROUP = glue.ATYPE_DISTRIBUTION_GLOBAL_GROUP
|
||||
ATYPE_DISTRIBUTION_LOCAL_GROUP = glue.ATYPE_DISTRIBUTION_LOCAL_GROUP
|
||||
ATYPE_DISTRIBUTION_UNIVERSAL_GROUP = glue.ATYPE_DISTRIBUTION_UNIVERSAL_GROUP
|
||||
|
||||
# "domainFunctionality", "forestFunctionality" flags in the rootDSE */
|
||||
DS_DOMAIN_FUNCTION_2000 = glue.DS_DOMAIN_FUNCTION_2000
|
||||
DS_DOMAIN_FUNCTION_2003_MIXED = glue.DS_DOMAIN_FUNCTION_2003_MIXED
|
||||
DS_DOMAIN_FUNCTION_2003 = glue.DS_DOMAIN_FUNCTION_2003
|
||||
DS_DOMAIN_FUNCTION_2008 = glue.DS_DOMAIN_FUNCTION_2008
|
||||
DS_DOMAIN_FUNCTION_2008_R2 = glue.DS_DOMAIN_FUNCTION_2008_R2
|
||||
|
||||
# "domainControllerFunctionality" flags in the rootDSE */
|
||||
DS_DC_FUNCTION_2000 = glue.DS_DC_FUNCTION_2000
|
||||
DS_DC_FUNCTION_2003 = glue.DS_DC_FUNCTION_2003
|
||||
DS_DC_FUNCTION_2008 = glue.DS_DC_FUNCTION_2008
|
||||
DS_DC_FUNCTION_2008_R2 = glue.DS_DC_FUNCTION_2008_R2
|
||||
|
@ -34,7 +34,7 @@ from samba.netcmd import (
|
||||
Option,
|
||||
)
|
||||
from samba.samdb import SamDB
|
||||
from samba import (
|
||||
from samba.dsdb import (
|
||||
DS_DOMAIN_FUNCTION_2000,
|
||||
DS_DOMAIN_FUNCTION_2003,
|
||||
DS_DOMAIN_FUNCTION_2003_MIXED,
|
||||
|
@ -42,7 +42,7 @@ import ldb
|
||||
from samba.auth import system_session, admin_session
|
||||
from samba import glue, version, Ldb, substitute_var, valid_netbios_name
|
||||
from samba import check_all_substituted, read_and_sub_file, setup_file
|
||||
from samba import DS_DOMAIN_FUNCTION_2003, DS_DC_FUNCTION_2008
|
||||
from samba.dsdb import DS_DOMAIN_FUNCTION_2003, DS_DC_FUNCTION_2008
|
||||
from samba.dcerpc import security
|
||||
from samba.dcerpc.misc import SEC_CHAN_BDC, SEC_CHAN_WKSTA
|
||||
from samba.idmap import IDmapDB
|
||||
|
@ -27,7 +27,8 @@ import string
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from samba import Ldb, DS_DOMAIN_FUNCTION_2000
|
||||
from samba import Ldb
|
||||
from samba.dsdb import DS_DOMAIN_FUNCTION_2000
|
||||
from ldb import SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE
|
||||
import ldb
|
||||
from samba.provision import ProvisionNames, provision_paths_from_lp, FILL_FULL, provision
|
||||
|
@ -24,7 +24,6 @@
|
||||
|
||||
import optparse
|
||||
import sys
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
# Find right directory when running from source tree
|
||||
@ -36,7 +35,11 @@ from samba.credentials import DONT_USE_KERBEROS
|
||||
from samba.auth import system_session
|
||||
import samba.getopt as options
|
||||
from samba.provision import provision, FILL_FULL, FILL_NT4SYNC, FILL_DRS, find_setup_dir
|
||||
from samba import DS_DOMAIN_FUNCTION_2003, DS_DOMAIN_FUNCTION_2008, DS_DOMAIN_FUNCTION_2008_R2
|
||||
from samba.dsdb import (
|
||||
DS_DOMAIN_FUNCTION_2003,
|
||||
DS_DOMAIN_FUNCTION_2008,
|
||||
DS_DOMAIN_FUNCTION_2008_R2,
|
||||
)
|
||||
from samba.provisionexceptions import ProvisioningError
|
||||
|
||||
# how do we make this case insensitive??
|
||||
|
Loading…
x
Reference in New Issue
Block a user