From c3f6d244d119ebb458e59fd158c338153c778141 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 13 May 2024 14:32:33 +0200 Subject: [run-virt] openslx.exe: Don't do persistent changes in admin/edit mode --- .../vmchooser/data/linux/includes/00_vars.inc | 7 +++ .../vmchooser/data/linux/includes/10_functions.inc | 50 ++++++++++++--------- .../data/opt/openslx/vmchooser/data/openslx.exe | Bin 62976 -> 63488 bytes .../vmchooser/run-virt.d/setup_virtual_floppy.inc | 5 +++ 4 files changed, 41 insertions(+), 21 deletions(-) (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser') diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc index cf6592f1..df76c93e 100755 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc @@ -57,6 +57,13 @@ SCRIPTEXT=$(grep scriptExt "$DISKMOUNTDIR/openslx.ini" | cut -f 2 -d "=") MUTESOUND=$(grep muteSound "$DISKMOUNTDIR/openslx.ini" | cut -f 2 -d "=") SOUNDVOL="100%" +# Edit mode, VM is persistent +val=$( grep '^persistentMode=' "$SLXCONFIGFILE" | cut -d '=' -f 2) +PERSISTENT_MODE= +if [ -n "$val" ] && [ "$val" -ne 0 ]; then + PERSISTENT_MODE=1 +fi + ##### Programs interfering with resolution setting ##### KILLRESPROGS="kscreen_backend_launcher" diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc index 8b394334..85f185a3 100644 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc @@ -121,18 +121,19 @@ function mount_share() unset PASSWD fi if [ "$ERR" -eq 0 ]; then - logger "openslx sharemapper: Linking ${SHARENAME}, if possible." + if [ -z "$PERSISTENT_MODE" ]; then + logger "openslx sharemapper: Linking ${SHARENAME}, if possible." - if [ -n "${SHARENAME}" ]; then - ln -s "$USERSHAREDIR" "${USERDESKTOP}"/"$SHARENAME" - chown "$LOCALUSER" "${USERDESKTOP}"/"$SHARENAME" - logger "openslx sharemapper: ${SHARENAME} linked." - elif [ -n "${SHARELETTER}" ]; then - ln -s "$USERSHAREDIR" "${USERDESKTOP}"/"$SHARELETTER" - chown "$LOCALUSER" "${USERDESKTOP}"/"$SHARELETTER" - logger "openslx sharemapper: No sharename found, share letter ${SHARELETTER} linked." + if [ -n "${SHARENAME}" ]; then + ln -sn "$USERSHAREDIR" "${USERDESKTOP}"/"$SHARENAME" + chown "$LOCALUSER" "${USERDESKTOP}"/"$SHARENAME" + logger "openslx sharemapper: ${SHARENAME} linked." + elif [ -n "${SHARELETTER}" ]; then + ln -sn "$USERSHAREDIR" "${USERDESKTOP}"/"$SHARELETTER" + chown "$LOCALUSER" "${USERDESKTOP}"/"$SHARELETTER" + logger "openslx sharemapper: No sharename found, share letter ${SHARELETTER} linked." + fi fi - else logger "openslx sharemapper: deleting previously creates share mount dir $USERSHAREDIR." rmdir "$USERSHAREDIR" 2>/dev/null @@ -150,21 +151,28 @@ function mount_home() unset USER unset PASSWD - case $ERR in 1) logger "openslx sharemapper: could not mount home share." + case $ERR in + 1) + logger "openslx sharemapper: could not mount home share." echo "Konnte Home-Laufwerk nicht einhängen!" >> "$USERLOGFILE" ;; - 2) logger "openslx sharemapper: home share seems to be already mounted." + 2) + logger "openslx sharemapper: home share seems to be already mounted." ;; - 0) logger "openslx sharemapper: Linking ${USERDESKTOP}/$(basename $USERHOMEDIR), if possible." - # Changed: Link on Desktop no longer "Home-verz.", but same - # name as last part of $USERHOMEDIR (-->PERSISTENT) - # ln -s "$USERHOMEDIR" "${USERDESKTOP}"/"$SHARENAME" - ln -s "$USERHOMEDIR" "${USERDESKTOP}"/$(basename "$USERHOMEDIR") - chown "$LOCALUSER" "${USERDESKTOP}"/$(basename "$USERHOMEDIR") - logger "openslx sharemapper: "${USERDESKTOP}"/$(basename "$USERHOMEDIR") linked." + 0) + if [ -z "$PERSISTENT_MODE" ]; then + logger "openslx sharemapper: Linking ${USERDESKTOP}/$(basename $USERHOMEDIR), if possible." + # Changed: Link on Desktop no longer "Home-verz.", but same + # name as last part of $USERHOMEDIR (-->PERSISTENT) + # ln -s "$USERHOMEDIR" "${USERDESKTOP}"/"$SHARENAME" + ln -sn "$USERHOMEDIR" "${USERDESKTOP}"/$(basename "$USERHOMEDIR") + chown "$LOCALUSER" "${USERDESKTOP}"/$(basename "$USERHOMEDIR") + logger "openslx sharemapper: "${USERDESKTOP}"/$(basename "$USERHOMEDIR") linked." + fi + ;; + *) + logger "openslx sharemapper: Unknown error level mounting home share." ;; - *) logger "openslx sharemapper: Unknown error level mounting home share." - ;; esac } diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe b/core/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe index 7a9e5e6c..73c19530 100755 Binary files a/core/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe and b/core/modules/run-virt/data/opt/openslx/vmchooser/data/openslx.exe differ diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt.d/setup_virtual_floppy.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt.d/setup_virtual_floppy.inc index 3b1d9f18..87f3d736 100644 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt.d/setup_virtual_floppy.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/run-virt.d/setup_virtual_floppy.inc @@ -116,6 +116,10 @@ setup_virtual_floppy() { # Enable openslx.exe debug output if we're running in debug mode local debug= $DEBUG && debug=1 + local editmode=0 + if is_on VMCHOOSER_ADMIN_MODE; then + editmode=1 + fi cat > "${FLOPPYDIR}/openslx.ini" <<-EOF [openslx] @@ -133,6 +137,7 @@ setup_virtual_floppy() { noHomeWarn=${SHARE_NO_HOME_WARN} runMode=${SLX_RUNMODE_MODULE} debug=${debug} + persistentMode=${editmode} [remap] documents=${SHARE_DOCUMENTS} -- cgit v1.2.3-55-g7522