1
0
mirror of https://github.com/samba-team/samba.git synced 2025-09-12 13:44:19 +03:00

python:samdb: Add get_searchFlags_from_lDAPDisplayName() method

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15852

Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
This commit is contained in:
Jennifer Sutton
2024-08-06 13:54:56 +12:00
committed by Jo Sutton
parent 4443abc74b
commit 3eb65f1a6b
2 changed files with 38 additions and 0 deletions

View File

@@ -1099,6 +1099,10 @@ accountExpires: %u
"""return the syntax OID for a LDAP attribute as a string"""
return dsdb._dsdb_get_syntax_oid_from_lDAPDisplayName(self, ldap_display_name)
def get_searchFlags_from_lDAPDisplayName(self, ldap_display_name):
"""return the searchFlags for a LDAP attribute as a integer"""
return dsdb._dsdb_get_searchFlags_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)

View File

@@ -314,6 +314,38 @@ static PyObject *py_dsdb_get_attid_from_lDAPDisplayName(PyObject *self, PyObject
return PyLong_FromUnsignedLong(attid);
}
/*
return the searchFlags as int from the attribute name
*/
static PyObject *py_dsdb_get_searchFlags_from_lDAPDisplayName(PyObject *self, PyObject *args)
{
PyObject *py_ldb = NULL;
struct ldb_context *ldb = NULL;
struct dsdb_schema *schema = NULL;
const char *ldap_display_name = NULL;
const struct dsdb_attribute *attribute = NULL;
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 == NULL) {
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_KeyError, "Failed to find attribute '%s'", ldap_display_name);
return NULL;
}
return PyLong_FromLong(attribute->searchFlags);
}
/*
return the systemFlags as int from the attribute name
*/
@@ -1702,6 +1734,8 @@ static PyMethodDef py_dsdb_methods[] = {
METH_VARARGS, NULL },
{ "_dsdb_get_syntax_oid_from_lDAPDisplayName", (PyCFunction)py_dsdb_get_syntax_oid_from_lDAPDisplayName,
METH_VARARGS, NULL },
{ "_dsdb_get_searchFlags_from_lDAPDisplayName", (PyCFunction)py_dsdb_get_searchFlags_from_lDAPDisplayName,
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,