diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c index 7c95e4c..9b6d3b8 100644 --- a/src/ovirt-foreign-menu.c +++ b/src/ovirt-foreign-menu.c @@ -826,6 +826,7 @@ OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *file) { OvirtProxy *proxy = NULL; OvirtForeignMenu *menu = NULL; + gboolean admin; char *ca_str = NULL; char *jsessionid = NULL; char *url = NULL; @@ -836,6 +837,7 @@ OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *file) vm_guid = virt_viewer_file_get_ovirt_vm_guid(file); jsessionid = virt_viewer_file_get_ovirt_jsessionid(file); ca_str = virt_viewer_file_get_ovirt_ca(file); + admin = virt_viewer_file_get_ovirt_admin(file); if ((url == NULL) || (vm_guid == NULL)) goto end; @@ -850,6 +852,7 @@ OvirtForeignMenu *ovirt_foreign_menu_new_from_file(VirtViewerFile *file) } g_object_set(G_OBJECT(proxy), + "admin", admin, "session-id", jsessionid, "ca-cert", ca, NULL); diff --git a/src/virt-viewer-file.c b/src/virt-viewer-file.c index c8f04e8..69b6531 100644 --- a/src/virt-viewer-file.c +++ b/src/virt-viewer-file.c @@ -76,6 +76,8 @@ * - jsessionid: string containing an authentication cookie to be used to * connect to the oVirt engine without being asked for credentials * - ca: string PEM data (use \n to separate the lines) + * - admin: boolean (0 or 1) indicating whether the VM is visible in the user or + * admin portal * * (the file can be extended with extra groups or keys, which should * be prefixed with x- to avoid later conflicts) @@ -119,6 +121,7 @@ enum { PROP_SECURE_CHANNELS, PROP_DELETE_THIS_FILE, PROP_SECURE_ATTENTION, + PROP_OVIRT_ADMIN, PROP_OVIRT_HOST, PROP_OVIRT_VM_GUID, PROP_OVIRT_JSESSIONID, @@ -677,6 +680,19 @@ virt_viewer_file_set_ovirt_ca(VirtViewerFile* self, const gchar* value) g_object_notify(G_OBJECT(self), "ovirt-ca"); } +gint +virt_viewer_file_get_ovirt_admin(VirtViewerFile* self) +{ + return virt_viewer_file_get_int(self, OVIRT_GROUP, "admin"); +} + +void +virt_viewer_file_set_ovirt_admin(VirtViewerFile* self, gint value) +{ + virt_viewer_file_set_int(self, OVIRT_GROUP, "admin", value); + g_object_notify(G_OBJECT(self), "ovirt-admin"); +} + static void spice_hotkey_set_accel(const gchar *accel_path, const gchar *key) { @@ -840,6 +856,9 @@ virt_viewer_file_set_property(GObject* object, guint property_id, case PROP_DELETE_THIS_FILE: virt_viewer_file_set_delete_this_file(self, g_value_get_int(value)); break; + case PROP_OVIRT_ADMIN: + virt_viewer_file_set_ovirt_admin(self, g_value_get_int(value)); + break; case PROP_OVIRT_HOST: virt_viewer_file_set_ovirt_host(self, g_value_get_string(value)); break; @@ -940,6 +959,9 @@ virt_viewer_file_get_property(GObject* object, guint property_id, case PROP_DELETE_THIS_FILE: g_value_set_int(value, virt_viewer_file_get_delete_this_file(self)); break; + case PROP_OVIRT_ADMIN: + g_value_set_int(value, virt_viewer_file_get_ovirt_admin(self)); + break; case PROP_OVIRT_HOST: g_value_take_string(value, virt_viewer_file_get_ovirt_host(self)); break; @@ -1087,6 +1109,10 @@ virt_viewer_file_class_init(VirtViewerFileClass* klass) g_param_spec_int("delete-this-file", "delete-this-file", "delete-this-file", 0, 1, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); + g_object_class_install_property(G_OBJECT_CLASS(klass), PROP_OVIRT_ADMIN, + g_param_spec_int("ovirt-admin", "ovirt-admin", "ovirt-admin", 0, 1, 0, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); + g_object_class_install_property(G_OBJECT_CLASS(klass), PROP_OVIRT_HOST, g_param_spec_string("ovirt-host", "ovirt-host", "ovirt-host", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); diff --git a/src/virt-viewer-file.h b/src/virt-viewer-file.h index f4b030c..e84988a 100644 --- a/src/virt-viewer-file.h +++ b/src/virt-viewer-file.h @@ -108,6 +108,8 @@ gint virt_viewer_file_get_delete_this_file(VirtViewerFile* self); void virt_viewer_file_set_delete_this_file(VirtViewerFile* self, gint value); gchar* virt_viewer_file_get_secure_attention(VirtViewerFile* self); void virt_viewer_file_set_secure_attention(VirtViewerFile* self, const gchar* value); +gint virt_viewer_file_get_ovirt_admin(VirtViewerFile* self); +void virt_viewer_file_set_ovirt_admin(VirtViewerFile* self, gint value); gchar* virt_viewer_file_get_ovirt_host(VirtViewerFile* self); void virt_viewer_file_set_ovirt_host(VirtViewerFile* self, const gchar* value); gchar* virt_viewer_file_get_ovirt_vm_guid(VirtViewerFile* self);