mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
s4-python: Add functions to get linkid and systemflags of an attribute
Signed-off-by: Andrew Tridgell <tridge@samba.org>
This commit is contained in:
parent
ab77df800e
commit
bbd4e27745
@ -330,6 +330,70 @@ static PyObject *py_dsdb_get_attid_from_lDAPDisplayName(PyObject *self, PyObject
|
|||||||
return PyLong_FromUnsignedLong(attid);
|
return PyLong_FromUnsignedLong(attid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
return the systemFlags as int from the attribute name
|
||||||
|
*/
|
||||||
|
static PyObject *py_dsdb_get_systemFlags_from_lDAPDisplayName(PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
PyObject *py_ldb;
|
||||||
|
struct ldb_context *ldb;
|
||||||
|
struct dsdb_schema *schema;
|
||||||
|
const char *ldap_display_name;
|
||||||
|
const struct dsdb_attribute *attribute;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple(args, "Os", &py_ldb, &ldap_display_name))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
PyErr_LDB_OR_RAISE(py_ldb, ldb);
|
||||||
|
|
||||||
|
schema = dsdb_get_schema(ldb, NULL);
|
||||||
|
|
||||||
|
if (!schema) {
|
||||||
|
PyErr_SetString(PyExc_RuntimeError, "Failed to find a schema from ldb");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
attribute = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
|
||||||
|
if (attribute == NULL) {
|
||||||
|
PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PyInt_FromLong(attribute->systemFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
return the linkID from the attribute name
|
||||||
|
*/
|
||||||
|
static PyObject *py_dsdb_get_linkId_from_lDAPDisplayName(PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
PyObject *py_ldb;
|
||||||
|
struct ldb_context *ldb;
|
||||||
|
struct dsdb_schema *schema;
|
||||||
|
const char *ldap_display_name;
|
||||||
|
const struct dsdb_attribute *attribute;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple(args, "Os", &py_ldb, &ldap_display_name))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
PyErr_LDB_OR_RAISE(py_ldb, ldb);
|
||||||
|
|
||||||
|
schema = dsdb_get_schema(ldb, NULL);
|
||||||
|
|
||||||
|
if (!schema) {
|
||||||
|
PyErr_SetString(PyExc_RuntimeError, "Failed to find a schema from ldb");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
attribute = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
|
||||||
|
if (attribute == NULL) {
|
||||||
|
PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PyInt_FromLong(attribute->linkID);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
return the attribute syntax oid as a string from the attribute name
|
return the attribute syntax oid as a string from the attribute name
|
||||||
*/
|
*/
|
||||||
@ -836,6 +900,10 @@ static PyMethodDef py_dsdb_methods[] = {
|
|||||||
METH_VARARGS, NULL },
|
METH_VARARGS, NULL },
|
||||||
{ "_dsdb_get_syntax_oid_from_lDAPDisplayName", (PyCFunction)py_dsdb_get_syntax_oid_from_lDAPDisplayName,
|
{ "_dsdb_get_syntax_oid_from_lDAPDisplayName", (PyCFunction)py_dsdb_get_syntax_oid_from_lDAPDisplayName,
|
||||||
METH_VARARGS, NULL },
|
METH_VARARGS, NULL },
|
||||||
|
{ "_dsdb_get_systemFlags_from_lDAPDisplayName", (PyCFunction)py_dsdb_get_systemFlags_from_lDAPDisplayName,
|
||||||
|
METH_VARARGS, NULL },
|
||||||
|
{ "_dsdb_get_linkId_from_lDAPDisplayName", (PyCFunction)py_dsdb_get_linkId_from_lDAPDisplayName,
|
||||||
|
METH_VARARGS, NULL },
|
||||||
{ "_dsdb_set_ntds_invocation_id",
|
{ "_dsdb_set_ntds_invocation_id",
|
||||||
(PyCFunction)py_dsdb_set_ntds_invocation_id, METH_VARARGS,
|
(PyCFunction)py_dsdb_set_ntds_invocation_id, METH_VARARGS,
|
||||||
NULL },
|
NULL },
|
||||||
|
@ -509,6 +509,14 @@ accountExpires: %u
|
|||||||
'''return the syntax OID for a LDAP attribute as a string'''
|
'''return the syntax OID for a LDAP attribute as a string'''
|
||||||
return dsdb._dsdb_get_syntax_oid_from_lDAPDisplayName(self, ldap_display_name)
|
return dsdb._dsdb_get_syntax_oid_from_lDAPDisplayName(self, ldap_display_name)
|
||||||
|
|
||||||
|
def get_systemFlags_from_lDAPDisplayName(self, ldap_display_name):
|
||||||
|
'''return the systemFlags for a LDAP attribute as a integer'''
|
||||||
|
return dsdb._dsdb_get_systemFlags_from_lDAPDisplayName(self, ldap_display_name)
|
||||||
|
|
||||||
|
def get_linkId_from_lDAPDisplayName(self, ldap_display_name):
|
||||||
|
'''return the linkID for a LDAP attribute as a integer'''
|
||||||
|
return dsdb._dsdb_get_linkId_from_lDAPDisplayName(self, ldap_display_name)
|
||||||
|
|
||||||
def set_ntds_settings_dn(self, ntds_settings_dn):
|
def set_ntds_settings_dn(self, ntds_settings_dn):
|
||||||
"""Set the NTDS Settings DN, as would be returned on the dsServiceName
|
"""Set the NTDS Settings DN, as would be returned on the dsServiceName
|
||||||
rootDSE attribute.
|
rootDSE attribute.
|
||||||
|
Loading…
Reference in New Issue
Block a user