Cipux XMLRPC Server

It is now possible to access some CipUX functions from another process or even another computer. XML RPC is a remote procedure call that allows any process to call functions located on another system. CipUX is using the Frontier Perl module to create a standalone HTTPS server that waits for XML RPC function calls.

The cipux_task_* function are exported with the same parameters and return results as the shell commands.

The user authentication is based on LDAP user account list, and some XML RPC specific functions are exported by XML RPC as follow :

Function

Explanation

cipux_rpc_login (user,pass) > cookie session | false

This function allow the login and authentication of the remote user. It create a session and returns the session cookie.

cipux_rpc_logout (cookie) > true | false

Disconnect the user's session cookie and returns true if it was successfully disconnected

cipux_rpc_ping (cookie) > true | false

Ping the xml rpc server to know if the session with cookie is still valid. Prevent idle timeout of user session.

The other functions are based on cipux_task_* shell scripts. The first parameter is always a session cookie. Those functions should returns an error code if something went wrong

cipux_task_list_users
cipux_task_create_user
cipux_task_enable_user
cipux_task_enable_user_posix_account
cipux_task_change_user_password
cipux_task_delete_user
cipux_task_delete_user_homedir
cipux_task_disable_user
cipux_task_disable_user_posix_account

cipux_task_list_teachers
cipux_task_list_students

cipux_task_add_user_to_course
cipux_task_create_course
cipux_task_disable_course
cipux_task_enable_course
cipux_task_enable_course_posix_account
cipux_task_disable_course_posix_account
cipux_task_change_course_password
cipux_task_delete_course
cipux_task_remove_user_from_course
cipux_task_list_courses

The french project will use this XML RPC server for the Moodle XML RPC user and group management system. See (in French): http://wiki.skolelinux.fr/cgi-bin/skolelinux/moin.cgi/XmlRpc