Update
This commit is contained in:
+48
-1
@@ -56,7 +56,7 @@ from .privacy import merge_privacy_settings, localized_privacy_settings, normali
|
||||
from .privacy_retention import check_retention_category, delete_retention_category, append_deletion_audit, deletion_audit_tail, IMPLEMENTED_RETENTION_KEYS
|
||||
from .backup import (BACKUP_DIR, BACKUP_INTERVAL_HOURS, BACKUP_RETENTION_DAYS, backup_path, create_backup, delete_backup, list_backups, restore_backup, store_uploaded_backup, automatic_backup_loop, system_storage_information)
|
||||
from .setup_analyzer import register_setup_analyzer
|
||||
from .software_packages import delete_package_storage, human_size, load_package_manifest, package_execution_timeout_seconds, package_summary, update_package_process_control
|
||||
from .software_packages import delete_package_storage, human_size, load_package_manifest, package_execution_timeout_seconds, package_summary, update_package_post_install, update_package_process_control
|
||||
from openpyxl import Workbook, load_workbook
|
||||
from openpyxl.styles import Font, PatternFill, Alignment
|
||||
|
||||
@@ -5981,6 +5981,53 @@ async def software_package_process_control(package_id: int, request: Request, db
|
||||
)
|
||||
|
||||
|
||||
@app.post("/software/packages/{package_id}/post-install")
|
||||
async def software_package_post_install(package_id: int, request: Request, db: Session = Depends(get_db)):
|
||||
_require_admin(request)
|
||||
package = db.get(SoftwarePackage, package_id)
|
||||
if not package or package.package_type != "deployment":
|
||||
raise HTTPException(404, _translate_request(request, "software_packages.not_found", "Software package not found."))
|
||||
|
||||
form = await request.form()
|
||||
start_application = str(form.get("start_application") or "").strip().lower() in {"1", "true", "yes", "on"}
|
||||
executable = str(form.get("executable") or "")
|
||||
arguments = str(form.get("arguments") or "")
|
||||
only_if_user_logged_on = str(form.get("only_if_user_logged_on") or "").strip().lower() in {"1", "true", "yes", "on"}
|
||||
fail_job_on_error = str(form.get("fail_job_on_error") or "").strip().lower() in {"1", "true", "yes", "on"}
|
||||
|
||||
try:
|
||||
update_package_post_install(
|
||||
package.id,
|
||||
start_application=start_application,
|
||||
executable=executable,
|
||||
arguments=arguments,
|
||||
only_if_user_logged_on=only_if_user_logged_on,
|
||||
fail_job_on_error=fail_job_on_error,
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.exception("Could not update post-install settings for software package %s", package.id)
|
||||
message = _translate_request(
|
||||
request,
|
||||
"software_packages.post_install_error",
|
||||
"Post-install settings could not be saved: {error}",
|
||||
error=str(exc),
|
||||
)
|
||||
return RedirectResponse(
|
||||
f"/software/packages/{package.id}?toast_error=" + quote(message),
|
||||
status_code=303,
|
||||
)
|
||||
|
||||
message = _translate_request(
|
||||
request,
|
||||
"software_packages.post_install_saved",
|
||||
"Post-install settings were saved.",
|
||||
)
|
||||
return RedirectResponse(
|
||||
f"/software/packages/{package.id}?toast_success=" + quote(message),
|
||||
status_code=303,
|
||||
)
|
||||
|
||||
|
||||
@app.post("/software/packages/{package_id}/delete")
|
||||
async def software_package_delete(package_id: int, request: Request, db: Session = Depends(get_db)):
|
||||
_require_admin(request)
|
||||
|
||||
Reference in New Issue
Block a user