2 * Unix SMB/CIFS implementation.
3 * Python bindings for libpolicy
4 * Copyright (C) Jelmer Vernooij 2010
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, see <http://www.gnu.org/licenses/>.
23 #include "libcli/util/pyerrors.h"
25 static PyObject
*py_get_gpo_flags(PyObject
*self
, PyObject
*args
)
34 if (!PyArg_ParseTuple(args
, "i", &flags
))
37 mem_ctx
= talloc_new(NULL
);
38 if (mem_ctx
== NULL
) {
43 status
= gp_get_gpo_flags(mem_ctx
, flags
, &ret
);
44 if (!NT_STATUS_IS_OK(status
)) {
45 PyErr_SetNTSTATUS(status
);
50 py_ret
= PyList_New(0);
51 for (i
= 0; ret
[i
]; i
++) {
52 PyObject
*item
= PyString_FromString(ret
[i
]);
59 PyList_Append(py_ret
, item
);
67 static PyObject
*py_get_gplink_options(PyObject
*self
, PyObject
*args
)
76 if (!PyArg_ParseTuple(args
, "i", &flags
))
79 mem_ctx
= talloc_new(NULL
);
80 if (mem_ctx
== NULL
) {
85 status
= gp_get_gplink_options(mem_ctx
, flags
, &ret
);
86 if (!NT_STATUS_IS_OK(status
)) {
87 PyErr_SetNTSTATUS(status
);
92 py_ret
= PyList_New(0);
93 for (i
= 0; ret
[i
]; i
++) {
94 PyObject
*item
= PyString_FromString(ret
[i
]);
101 PyList_Append(py_ret
, item
);
104 talloc_free(mem_ctx
);
109 static PyMethodDef py_policy_methods
[] = {
110 { "get_gpo_flags", (PyCFunction
)py_get_gpo_flags
, METH_VARARGS
,
111 "get_gpo_flags(flags) -> list" },
112 { "get_gplink_options", (PyCFunction
)py_get_gplink_options
, METH_VARARGS
,
113 "get_gplink_options(options) -> list" },
117 void initpolicy(void)
121 m
= Py_InitModule3("policy", py_policy_methods
, "(Group) Policy manipulation");
125 PyModule_AddObject(m
, "GPO_FLAG_USER_DISABLE",
126 PyInt_FromLong(GPO_FLAG_USER_DISABLE
));
127 PyModule_AddObject(m
, "GPO_MACHINE_USER_DISABLE",
128 PyInt_FromLong(GPO_FLAG_MACHINE_DISABLE
));
129 PyModule_AddObject(m
, "GPLINK_OPT_DISABLE",
130 PyInt_FromLong(GPLINK_OPT_DISABLE
));
131 PyModule_AddObject(m
, "GPLINK_OPT_ENFORCE ",
132 PyInt_FromLong(GPLINK_OPT_ENFORCE
));