Fix Shortcut installation / removal for Multiuser master
authorAndre Heinecke <aheinecke@intevation.de>
Sun, 14 May 2017 10:19:41 +0000 (12:19 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Sun, 14 May 2017 10:19:41 +0000 (12:19 +0200)
* src/inst-sections.nsi, src/uninst-sections.nsi: Set shell var
context based on elevation level.

src/inst-sections.nsi
src/installer-finish.nsi

index 1bd2a50..1a504e0 100644 (file)
@@ -973,15 +973,17 @@ FunctionEnd
 
 Section "-startmenu"
 
+  UserInfo::GetAccountType
+  Pop $1
+  StrCmp $1 "Admin" is_admin is_no_admin
+is_admin:
+  SetShellVarContext all
+
+is_no_admin:
+
   # NOT SetOutPath.
   StrCpy $OUTDIR "%HOMEDRIVE%%HOMEPATH%"
 
-  # Make sure that the context of the automatic variables has been set to
-  # the "all users" shell folder.  This guarantees that the menu gets written
-  # for all users.  We have already checked that we are running as Admin; or
-  # we printed a warning that installation will not succeed.
-  SetShellVarContext all
-
   # Check if the start menu entries where requested.
   g4wihelp::config_fetch_bool "inst_start_menu"
   StrCmp $R0 "0" no_start_menu
index 302292a..69808f1 100644 (file)
@@ -221,11 +221,12 @@ SectionEnd
 
 
 Section Uninstall
-  # Make sure that the context of the automatic variables has been set to
-  # the "all users" shell folder.  This guarantees that the menu gets written
-  # for all users.  We have already checked that we are running as Admin; or
-  # we printed a warning that installation will not succeed.
+  UserInfo::GetAccountType
+  Pop $1
+  StrCmp $1 "Admin" is_admin is_no_admin
+is_admin:
   SetShellVarContext all
+is_no_admin:
 
   #---------------------------------------------------
   # Delete the menu entries and any empty parent menus