-static void users_adduser_failed(struct callbackdata attribute((unused)) *cbd,
- int attribute((unused)) code,
- const char *msg) {
- popup_submsg(users_window, GTK_MESSAGE_ERROR, msg);
+/** @brief Called when a new user has been created */
+static void users_adduser_completed(void *v,
+ const char *err) {
+ if(err) {
+ popup_submsg(users_window, GTK_MESSAGE_ERROR, err);
+ mode(ADD); /* Let the user try again */
+ } else {
+ const struct kvp *const kvp = v;
+ const char *user = kvp_get(kvp, "user");
+ const char *email = kvp_get(kvp, "email"); /* maybe NULL */
+
+ /* Now the user is created we can go ahead and set the email address */
+ if(email)
+ disorder_eclient_edituser(client, users_edituser_completed, user,
+ "email", email, NULL);
+ /* Refresh the list of users */
+ disorder_eclient_users(client, users_got_list, 0);
+ /* We'll select the newly created user */
+ users_deferred_select = user;
+ }