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