#include <ldb.h>
#include "lib/ldb/pyldb.h"
#include "param/pyparam.h"
+#include "auth/credentials/pycredentials.h"
static PyObject *pyldb_module;
staticforward PyTypeObject PySambaLdb;
Py_RETURN_NONE;
}
+static PyObject *py_ldb_set_credentials(PyObject *self, PyObject *args)
+{
+ PyObject *py_creds;
+ struct cli_credentials *creds;
+ struct ldb_context *ldb;
+
+ if (!PyArg_ParseTuple(args, "O", &py_creds))
+ return NULL;
+
+ creds = cli_credentials_from_py_object(py_creds);
+ if (creds == NULL) {
+ PyErr_SetString(PyExc_TypeError, "Expected credentials object");
+ return NULL;
+ }
+
+ ldb = PyLdb_AsLdbContext(self);
+
+ ldb_set_opaque(ldb, "credentials", creds);
+
+ Py_RETURN_NONE;
+}
+
static PyMethodDef py_samba_ldb_methods[] = {
{ "set_loadparm", (PyCFunction)py_ldb_set_loadparm, METH_VARARGS,
"ldb_set_loadparm(ldb, session_info)\n"
"Set loadparm context to use when connecting." },
+ { "ldb_set_credentials", (PyCFunction)py_ldb_set_credentials, METH_VARARGS,
+ "ldb_set_credentials(ldb, credentials)\n"
+ "Set credentials to use when connecting." },
{ NULL },
};
Py_RETURN_NONE;
}
-static PyObject *py_ldb_set_credentials(PyObject *self, PyObject *args)
-{
- PyObject *py_creds, *py_ldb;
- struct cli_credentials *creds;
- struct ldb_context *ldb;
- if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_creds))
- return NULL;
-
- PyErr_LDB_OR_RAISE(py_ldb, ldb);
-
- creds = cli_credentials_from_py_object(py_creds);
- if (creds == NULL) {
- PyErr_SetString(PyExc_TypeError, "Expected credentials object");
- return NULL;
- }
-
- ldb_set_opaque(ldb, "credentials", creds);
-
- Py_RETURN_NONE;
-}
-
static PyObject *py_ldb_set_utf8_casefold(PyObject *self, PyObject *args)
{
PyObject *py_ldb;
{ "ldb_set_session_info", (PyCFunction)py_ldb_set_session_info, METH_VARARGS,
"ldb_set_session_info(ldb, session_info)\n"
"Set session info to use when connecting." },
- { "ldb_set_credentials", (PyCFunction)py_ldb_set_credentials, METH_VARARGS,
- "ldb_set_credentials(ldb, credentials)\n"
- "Set credentials to use when connecting." },
{ "samdb_set_domain_sid", (PyCFunction)py_samdb_set_domain_sid, METH_VARARGS,
"samdb_set_domain_sid(samdb, sid)\n"
"Set SID of domain to use." },
def set_session_info(self, session_info):
glue.ldb_set_session_info(self, session_info)
- def set_credentials(self, credentials):
- glue.ldb_set_credentials(self, credentials)
-
def set_create_perms(self, perms=0600):
# we usually want Samba databases to be private. If we later find we
# need one public, we will have to change this here