static void
um_account_dialog_response (GtkDialog *dialog,
                            gint response_id)
{
        UmAccountDialog *self = UM_ACCOUNT_DIALOG (dialog);

        switch (response_id) {
        case GTK_RESPONSE_OK:
                switch (self->mode) {
                case UM_LOCAL:
                        local_create_user (self);
                        break;
                case UM_ENTERPRISE:
                        enterprise_add_user (self);
                        break;
                default:
                        g_assert_not_reached ();
                }
                break;
        case GTK_RESPONSE_CANCEL:
        case GTK_RESPONSE_DELETE_EVENT:
                g_cancellable_cancel (self->cancellable);
                complete_dialog (self, NULL);
                break;
        }
}
gboolean
gis_account_page_enterprise_apply (GisAccountPageEnterprise *page,
                                   GCancellable             *cancellable,
                                   GisPageApplyCallback      callback,
                                   gpointer                  data)
{
  GisAccountPageEnterprisePrivate *priv = gis_account_page_enterprise_get_instance_private (page);

  priv->apply_complete_callback = callback;
  priv->apply_complete_data = data;
  priv->cancellable = g_object_ref (cancellable);
  enterprise_add_user (page);
  return TRUE;
}