00001 #ifndef common_h
00002 #define common_h
00003
00004 #include <Python.h>
00005 #include <libuser/user.h>
00006 #include "debug.h"
00007
00008 struct libuser_admin {
00009 PyObject_HEAD
00010 lu_context_t *ctx;
00011 PyObject *prompt_data[2];
00012 };
00013
00014 struct libuser_entity {
00015 PyObject_HEAD
00016 lu_ent_t *ent;
00017 };
00018
00019 struct libuser_prompt {
00020 PyObject_HEAD
00021 lu_prompt_t prompt;
00022 };
00023
00024 static PyTypeObject EntityType;
00025 static PyTypeObject AdminType;
00026 static PyTypeObject PromptType;
00027
00028 static struct libuser_admin *libuser_admin_new(PyObject *self, PyObject *args, PyObject *kwargs);
00029
00030 static gboolean libuser_admin_python_prompter(struct lu_prompt *prompts, int count,
00031 gpointer callback_data, struct lu_error **error);
00032 static PyObject *libuser_admin_prompt_console(PyObject *self, PyObject *args, PyObject *kwargs);
00033 static PyObject *libuser_admin_prompt_console_quiet(PyObject *self, PyObject *args, PyObject *kwargs);
00034
00035 static PyObject *convert_glist_pystringlist(GList *list);
00036 static struct libuser_prompt *libuser_prompt_new(void);
00037
00038 static PyObject *libuser_get_user_shells(PyObject *ignored);
00039 static PyObject *libuser_wrap_ent(struct lu_ent *ent);
00040
00041 void initlibuser(void);
00042
00043 #endif