diff options
author | Tim Potter <tpot@samba.org> | 2003-03-24 06:31:49 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2003-03-24 06:31:49 +0000 |
commit | 223828642548c7e25f6189e274aa1edcdfe30c4f (patch) | |
tree | 2dfdc2a6966d131af7536f6013c6f0dffec3290b /source3/python/py_samr_conv.c | |
parent | 4f70a8f6587e6d1c0cb9e5530197733ea48d7719 (diff) | |
download | samba-223828642548c7e25f6189e274aa1edcdfe30c4f.tar.gz samba-223828642548c7e25f6189e274aa1edcdfe30c4f.tar.bz2 samba-223828642548c7e25f6189e274aa1edcdfe30c4f.zip |
Started working on python routines to add and delete domain users.
Unfortunately users get created with the ACB mask set to disabled and
must change password. The set_user_info2 call required to fix this
doesn't quite work yet...
(This used to be commit 55a341a367a7d1b18ae7ef04678479eb74b68ea3)
Diffstat (limited to 'source3/python/py_samr_conv.c')
-rw-r--r-- | source3/python/py_samr_conv.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/source3/python/py_samr_conv.c b/source3/python/py_samr_conv.c index fdf71641e0..7523ee7dfc 100644 --- a/source3/python/py_samr_conv.c +++ b/source3/python/py_samr_conv.c @@ -22,6 +22,79 @@ #include "python/py_conv.h" /* + * Convert between SAM_USER_INFO_10 and Python + */ + +struct pyconv py_SAM_USER_INFO_10[] = { + { "acb_info", PY_UINT32, offsetof(SAM_USER_INFO_10, acb_info) }, + { NULL } +}; + +BOOL py_from_SAM_USER_INFO_10(PyObject **dict, SAM_USER_INFO_10 *info) +{ + *dict = from_struct(info, py_SAM_USER_INFO_10); + PyDict_SetItemString(*dict, "level", PyInt_FromLong(0x10)); + return True; +} + +BOOL py_to_SAM_USER_INFO_10(SAM_USER_INFO_10 *info, PyObject *dict) +{ + PyObject *obj, *dict_copy = PyDict_Copy(dict); + BOOL result = False; + + if (!(obj = PyDict_GetItemString(dict_copy, "level")) || + !PyInt_Check(obj)) + goto done; + + PyDict_DelItemString(dict_copy, "level"); + + if (!to_struct(info, dict_copy, py_SAM_USER_INFO_10)) + goto done; + + result = True; + +done: + Py_DECREF(dict_copy); + return result; +} + +/* + * Convert between SAM_USER_INFO_21 and Python + */ + +struct pyconv py_SAM_USER_INFO_21[] = { + { NULL } +}; + +BOOL py_from_SAM_USER_INFO_21(PyObject **dict, SAM_USER_INFO_21 *info) +{ + *dict = from_struct(info, py_SAM_USER_INFO_21); + PyDict_SetItemString(*dict, "level", PyInt_FromLong(21)); + return True; +} + +BOOL py_to_SAM_USER_INFO_21(SAM_USER_INFO_21 *info, PyObject *dict) +{ + PyObject *obj, *dict_copy = PyDict_Copy(dict); + BOOL result = False; + + if (!(obj = PyDict_GetItemString(dict_copy, "level")) || + !PyInt_Check(obj)) + goto done; + + PyDict_DelItemString(dict_copy, "level"); + + if (!to_struct(info, dict_copy, py_SAM_USER_INFO_21)) + goto done; + + result = True; + +done: + Py_DECREF(dict_copy); + return result; +} + +/* * Convert between acct_info and Python */ |