diff --git a/ow_vm_management/controllers/__pycache__/portal.cpython-39.pyc b/ow_vm_management/controllers/__pycache__/portal.cpython-39.pyc index 803e75c..2f1acb1 100644 Binary files a/ow_vm_management/controllers/__pycache__/portal.cpython-39.pyc and b/ow_vm_management/controllers/__pycache__/portal.cpython-39.pyc differ diff --git a/ow_vm_management/controllers/portal.py b/ow_vm_management/controllers/portal.py index 8a1c8f2..bdefd2a 100644 --- a/ow_vm_management/controllers/portal.py +++ b/ow_vm_management/controllers/portal.py @@ -62,6 +62,15 @@ class CustomerPortalVPS(CustomerPortal): }) return request.render("ow_vm_management.portal_my_vps_servers", values) + @http.route(['/my/vps//restart'], type='http', auth="user", website=True) + def portal_restart_vps(self, vps_id, **kw): + try: + vps_sudo = request.env['vps.server'].sudo().browse(vps_id) + vps_sudo.action_restart_from_portal() + return request.redirect(vps_sudo.get_portal_url()) + except AccessError: + return request.redirect('/my') + @http.route(['/my/vps-servers/'], type='http', auth="user", website=True) def portal_my_vps_server(self, vps_server_id=None, access_token=None, **kw): try: diff --git a/ow_vm_management/models/__pycache__/vps_server.cpython-39.pyc b/ow_vm_management/models/__pycache__/vps_server.cpython-39.pyc index 2f95172..6748c75 100644 Binary files a/ow_vm_management/models/__pycache__/vps_server.cpython-39.pyc and b/ow_vm_management/models/__pycache__/vps_server.cpython-39.pyc differ diff --git a/ow_vm_management/models/vps_server.py b/ow_vm_management/models/vps_server.py index ade2aa4..1482e8e 100644 --- a/ow_vm_management/models/vps_server.py +++ b/ow_vm_management/models/vps_server.py @@ -89,7 +89,11 @@ class VPSServer(models.Model): status = self._proxmox_request('GET', f'nodes/pve/{vm_type}/{vm_id}/status/current') server.state = 'running' if status['data']['status'] == 'running' else 'stopped' - + def action_restart_from_portal(self): + self.ensure_one() + if self.env.user.partner_id != self.customer_id: + raise AccessError(_("You don't have permission to restart this VPS.")) + return self.action_reboot() def action_fetch_proxmox_data(self): self.ensure_one() diff --git a/ow_vm_management/views/portal_templates.xml b/ow_vm_management/views/portal_templates.xml index e078d01..ac7485b 100644 --- a/ow_vm_management/views/portal_templates.xml +++ b/ow_vm_management/views/portal_templates.xml @@ -70,6 +70,15 @@ +
IPv4 Address: @@ -89,6 +98,9 @@
Operating System:
+
+ State: +