|
@@ -115,9 +115,28 @@ class PluginInstallFromPkgApi(Resource):
|
|
|
return Response(generator(), mimetype="text/event-stream")
|
|
|
|
|
|
|
|
|
+class PluginUninstallApi(Resource):
|
|
|
+ @setup_required
|
|
|
+ @login_required
|
|
|
+ @account_initialization_required
|
|
|
+ def post(self):
|
|
|
+ req = reqparse.RequestParser()
|
|
|
+ req.add_argument("plugin_installation_id", type=str, required=True, location="json")
|
|
|
+ args = req.parse_args()
|
|
|
+
|
|
|
+ user = current_user
|
|
|
+ if not user.is_admin_or_owner:
|
|
|
+ raise Forbidden()
|
|
|
+
|
|
|
+ tenant_id = user.current_tenant_id
|
|
|
+
|
|
|
+ return {"success": PluginService.uninstall_plugin(tenant_id, args["plugin_installation_id"])}
|
|
|
+
|
|
|
+
|
|
|
api.add_resource(PluginDebuggingKeyApi, "/workspaces/current/plugin/debugging-key")
|
|
|
api.add_resource(PluginListApi, "/workspaces/current/plugin/list")
|
|
|
api.add_resource(PluginIconApi, "/workspaces/current/plugin/icon")
|
|
|
api.add_resource(PluginInstallCheckUniqueIdentifierApi, "/workspaces/current/plugin/install/check_unique_identifier")
|
|
|
api.add_resource(PluginInstallFromUniqueIdentifierApi, "/workspaces/current/plugin/install/from_unique_identifier")
|
|
|
api.add_resource(PluginInstallFromPkgApi, "/workspaces/current/plugin/install/from_pkg")
|
|
|
+api.add_resource(PluginUninstallApi, "/workspaces/current/plugin/uninstall")
|