From 0b1644e28727e175c6b6c84b31e41e88d5c98089 Mon Sep 17 00:00:00 2001 From: LoRd_MuldeR Date: Mon, 16 Dec 2013 18:07:45 +0100 Subject: [PATCH] Make sure the user has "admin" privileges before checking for updates, because it's kind of pointless to download the update if you won't be able install it anyway. This is especially important for Windows XP, where we don't have UAC. Note that UAC implies "admin" privileges, because the installer process will be elevated as needed - even if the current user is *not* an administrator. --- etc/Translation/Blank.ts | 72 ++++++++++++++++++++++------------ etc/Translation/LameXP_DE.ts | 18 ++++++++- etc/Translation/LameXP_ES.ts | 16 ++++++++ etc/Translation/LameXP_FR.ts | 16 ++++++++ etc/Translation/LameXP_IT.ts | 16 ++++++++ etc/Translation/LameXP_KR.ts | 16 ++++++++ etc/Translation/LameXP_PL.ts | 72 ++++++++++++++++++++++------------ etc/Translation/LameXP_RU.ts | 16 ++++++++ etc/Translation/LameXP_SV.ts | 72 ++++++++++++++++++++++------------ etc/Translation/LameXP_TW.ts | 16 ++++++++ etc/Translation/LameXP_UK.ts | 16 ++++++++ etc/Translation/LameXP_ZH.ts | 16 ++++++++ res/Icons.qrc | 1 + res/icons/shield_blue.png | Bin 0 -> 3460 bytes res/localization/LameXP_DE.qm | Bin 86703 -> 87411 bytes res/localization/LameXP_ES.qm | Bin 88519 -> 88580 bytes res/localization/LameXP_FR.qm | Bin 89865 -> 89994 bytes res/localization/LameXP_IT.qm | Bin 35493 -> 35614 bytes res/localization/LameXP_KR.qm | Bin 65666 -> 65769 bytes res/localization/LameXP_PL.qm | Bin 87781 -> 87842 bytes res/localization/LameXP_RU.qm | Bin 66273 -> 66408 bytes res/localization/LameXP_SV.qm | Bin 81627 -> 81748 bytes res/localization/LameXP_TW.qm | Bin 59270 -> 59373 bytes res/localization/LameXP_UK.qm | Bin 90096 -> 90163 bytes res/localization/LameXP_ZH.qm | Bin 59640 -> 59743 bytes src/Config.h | 2 +- src/Dialog_Update.cpp | 19 +++++++-- src/Global.h | 1 + src/Global_Win32.cpp | 56 ++++++++++++++++++++++---- 29 files changed, 351 insertions(+), 90 deletions(-) create mode 100644 res/icons/shield_blue.png diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index bb0f5750..4a3744a5 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -3310,22 +3310,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. - + Executable '%1' requires Qt v%2, but found Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. - + Executable '%1' requires Windows XP or later. @@ -3394,104 +3394,124 @@ - - + + Build - + Unknown - + + Sorry, but only users in the "Administrators" group can install updates. + + + + + Please start application from an administrator account and try again! + + + + Testing your internet connection, please wait... - + It appears that the computer currently is offline! - - + + Please make sure your computer is connected to the internet and try again. - + Network connectivity test has failed! - + Checking for new updates online, please wait... - + Failed to fetch update information from server! - + Sorry, the update server might be busy at this time. Plase try again later. - + More information available at: - + A new version of LameXP is available! - + + Discard + + + + + Ignore + + + + Initializing, please wait... - + We highly recommend all users to install this update as soon as possible. - + No new updates available at this time. - + Your version of LameXP is still up-to-date. Please check for updates regularly! - + Your version appears to be newer than the latest release. - + This usually indicates your are currently using a pre-release version of LameXP. - + Update is being downloaded, please be patient... - + Update ready to install. Applicaion will quit... - + Update failed. Please try again or download manually! diff --git a/etc/Translation/LameXP_DE.ts b/etc/Translation/LameXP_DE.ts index e68be8ae..84b59461 100644 --- a/etc/Translation/LameXP_DE.ts +++ b/etc/Translation/LameXP_DE.ts @@ -2024,7 +2024,7 @@ APE - + @@ -2743,5 +2743,21 @@ Initializing, please wait... Initialisiere, bitte warten... + + Discard + Schließen + + + Ignore + Ignorieren + + + Sorry, but only users in the "Administrators" group can install updates. + Ausschließlich Benutzer der "Administratoren" Gruppe können Updates installieren. + + + Please start application from an administrator account and try again! + Bitte starten Sie den Update-Prozess aus einem Administrator-Konto erneut! + diff --git a/etc/Translation/LameXP_ES.ts b/etc/Translation/LameXP_ES.ts index c78634c4..6022b2d4 100644 --- a/etc/Translation/LameXP_ES.ts +++ b/etc/Translation/LameXP_ES.ts @@ -2742,5 +2742,21 @@ Initializing, please wait... Iniciando, espere por favor... + + Discard + + + + Ignore + Ignorar + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_FR.ts b/etc/Translation/LameXP_FR.ts index 6d3ddc06..aef6ca18 100644 --- a/etc/Translation/LameXP_FR.ts +++ b/etc/Translation/LameXP_FR.ts @@ -2753,5 +2753,21 @@ Ouvrir le dossier récursivement... Initializing, please wait... Initialisation, patientez... + + Discard + Abandonner + + + Ignore + Ignorer + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_IT.ts b/etc/Translation/LameXP_IT.ts index 144b42e4..35be5b37 100644 --- a/etc/Translation/LameXP_IT.ts +++ b/etc/Translation/LameXP_IT.ts @@ -2743,5 +2743,21 @@ Initializing, please wait... Inizializzazione, attendere prego... + + Discard + Annulla + + + Ignore + Ignora + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_KR.ts b/etc/Translation/LameXP_KR.ts index 4b37f179..355bb9ee 100644 --- a/etc/Translation/LameXP_KR.ts +++ b/etc/Translation/LameXP_KR.ts @@ -2725,5 +2725,21 @@ Initializing, please wait... 초기화중, 잠시만 기다려 주십시오... + + Discard + 닫기 + + + Ignore + 무시 + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts index da1db550..8aab31d4 100644 --- a/etc/Translation/LameXP_PL.ts +++ b/etc/Translation/LameXP_PL.ts @@ -3347,22 +3347,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. Plik wykonywalny '%1' nie działa w trybie kompatybilności z Windows. - + Executable '%1' requires Qt v%2, but found Qt v%3. Plik wykonywalny '%1' wymaga Qt v%2, znaleziono jednak Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. Plik wykonywalny "%1" został skompilowany dla Qt "%2", znaleziono "%3". - + Executable '%1' requires Windows XP or later. Plik wykonywalny "%1" wymaga Windows XP lub nowszego. @@ -3431,104 +3431,124 @@ Zamknij - - + + Build Build - + Unknown Nieznana - + + Sorry, but only users in the "Administrators" group can install updates. + + + + + Please start application from an administrator account and try again! + + + + Testing your internet connection, please wait... Testowanie połączenia internetowego, prosze czekać... - + It appears that the computer currently is offline! LameXP wykrył brak dostępu do internetu! - - + + Please make sure your computer is connected to the internet and try again. Upewnij się że komputer jest podłączony do internetu i spróbuj ponownie. - + Network connectivity test has failed! Test połączenia internetowego zakończony niepowodzeniem! - + Checking for new updates online, please wait... Sprawdzanie aktualizacji online, prosze czekać... - + Failed to fetch update information from server! Pobieranie informacji z serwera zakończone niepowodzeniem! - + Sorry, the update server might be busy at this time. Plase try again later. Serwer aktualizacji wydaje się nie odpowiadać w tej chwili. Prosze spróbować później. - + More information available at: Więcej informacji tutaj: - + A new version of LameXP is available! Dostępna nowa wersja LameXP! - + + Discard + + + + + Ignore + Ignoruj + + + Initializing, please wait... Inicjowanie, prosze czekać... - + We highly recommend all users to install this update as soon as possible. Jest wysoce zalecane aby zainstalować tę aktualizację jak najszybciej. - + No new updates available at this time. Nie ma nowych aktualizacji w tej chwili. - + Your version of LameXP is still up-to-date. Please check for updates regularly! Posiadasz najnowszą wersję LameXP. Sprawdzaj aktualizacje regularnie! - + Your version appears to be newer than the latest release. Posiadasz nowszą wersję LameXP niż ostatnie wydanie. - + This usually indicates your are currently using a pre-release version of LameXP. To wskazuje na to, że posiadasz wersję alfa LameXP. - + Update is being downloaded, please be patient... Pobieranie aktualizacji w toku, prosze czekać... - + Update ready to install. Applicaion will quit... Aktualizacja gotowa do instalacji. Teraz program zostanie zamknięty... - + Update failed. Please try again or download manually! Aktualizacja zakończona niepowodzeniem. Prosze spróbować ponownie lub zainstalować ręcznie! diff --git a/etc/Translation/LameXP_RU.ts b/etc/Translation/LameXP_RU.ts index 015575ba..ec6f32ae 100644 --- a/etc/Translation/LameXP_RU.ts +++ b/etc/Translation/LameXP_RU.ts @@ -2768,5 +2768,21 @@ Initializing, please wait... Инициализация, пожалуйста, подождите... + + Discard + Отменить + + + Ignore + Игнорировать + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts index d791f655..1615e78e 100644 --- a/etc/Translation/LameXP_SV.ts +++ b/etc/Translation/LameXP_SV.ts @@ -3330,22 +3330,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. EXE-filen '%1' stöder inte Windows kompatibilitetsläge. - + Executable '%1' requires Qt v%2, but found Qt v%3. EXE-filen '%1' kräver Qt v%2, du har Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. EXE-filen '%1' är byggd för Qt '%2', du har Qt '%3'. - + Executable '%1' requires Windows XP or later. @@ -3414,104 +3414,124 @@ Stäng - - + + Build Build - + Unknown Okänd - + + Sorry, but only users in the "Administrators" group can install updates. + + + + + Please start application from an administrator account and try again! + + + + Testing your internet connection, please wait... Kontrollerar iInternetanslutningen, vänta... - + It appears that the computer currently is offline! Datorn verkar inte vara ansluten till Internet! - - + + Please make sure your computer is connected to the internet and try again. Tillse att datorn är ansluten till Internet och försök igen. - + Network connectivity test has failed! Anslutningskontrollen misslyckades! - + Checking for new updates online, please wait... Söker nya uppdateringar, vänta... - + Failed to fetch update information from server! Kunde inte hämta uppdateringsinformation från servern! - + Sorry, the update server might be busy at this time. Plase try again later. Uppdateringsservern kan vara upptagen. Försök senare. - + More information available at: Mer information hittas på: - + A new version of LameXP is available! En ny version av LameXP finns tillgänglig! - + + Discard + Stäng + + + + Ignore + Ignorera + + + Initializing, please wait... Initierar, vänta... - + We highly recommend all users to install this update as soon as possible. Vi rekommenderar alla användare att installera denna uppdatering så snart som möjligt. - + No new updates available at this time. Det finns inga nya uppdateringar. - + Your version of LameXP is still up-to-date. Please check for updates regularly! Din version av LameXP är uppdaterad. Kontrollera regelbundet! - + Your version appears to be newer than the latest release. Din version verkar vara nyare än senaste 'Release'. - + This usually indicates your are currently using a pre-release version of LameXP. Det innebär normalt att du använder en beta-version av LameXP. - + Update is being downloaded, please be patient... Uppdatering laddas ner, vänta... - + Update ready to install. Applicaion will quit... Uppdatering klar att installeras. Programmet kommer att avslutas... - + Update failed. Please try again or download manually! Uppdateringen misslyckades. Försök igen, eller ladda ner manuellt! diff --git a/etc/Translation/LameXP_TW.ts b/etc/Translation/LameXP_TW.ts index 2a15d75b..c0a7ee63 100644 --- a/etc/Translation/LameXP_TW.ts +++ b/etc/Translation/LameXP_TW.ts @@ -2724,5 +2724,21 @@ Initializing, please wait... 正在初始化,請稍候... + + Discard + 放棄 + + + Ignore + 忽略 + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_UK.ts b/etc/Translation/LameXP_UK.ts index 3d676e75..9da6e9c8 100644 --- a/etc/Translation/LameXP_UK.ts +++ b/etc/Translation/LameXP_UK.ts @@ -2761,5 +2761,21 @@ Initializing, please wait... Ініціалізація, будь ласка, зачекайте... + + Discard + + + + Ignore + Ігнорувати + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/etc/Translation/LameXP_ZH.ts b/etc/Translation/LameXP_ZH.ts index d7b895df..96ba70bb 100644 --- a/etc/Translation/LameXP_ZH.ts +++ b/etc/Translation/LameXP_ZH.ts @@ -2724,5 +2724,21 @@ Initializing, please wait... 正在初始化,请稍候... + + Discard + 放弃 + + + Ignore + 忽略 + + + Sorry, but only users in the "Administrators" group can install updates. + + + + Please start application from an administrator account and try again! + + diff --git a/res/Icons.qrc b/res/Icons.qrc index ac59be7c..7a6f69ad 100644 --- a/res/Icons.qrc +++ b/res/Icons.qrc @@ -99,6 +99,7 @@ icons/script_go.png icons/server_error.png icons/shield_admin.png + icons/shield_blue.png icons/shield_error.png icons/shield_exclamation.png icons/shield_green.png diff --git a/res/icons/shield_blue.png b/res/icons/shield_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..2ded609b8b2107b33031808929c10ed02e078097 GIT binary patch literal 3460 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 E0WKCQ7ytkO delta 4791 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 diff --git a/res/localization/LameXP_ES.qm b/res/localization/LameXP_ES.qm index 908286f2686bd43717df899c35c721c450260ae6..02a2d3fbc4840f63430986404e57fa2cdb1eecc4 100644 GIT binary patch delta 219 zcmX@UnYCpL>jV+TgpH#4jEo+WTN&e+93?kDWej6va!{OX%elqn0PhQHp zoY7*kFPl1J@#a!Cc1FRCEdRn<85m}@foVo_=FP3_`b>-tlecotXAIsP%5|Ozs6mxi zp7GseSKf5S$&=UeUT3^Nxs`7llb!HpTYhmy#>bOG1(q`&+x%BxJrhWQu)g3a{*0Ld z3=F}%{FxEQ85nJvCchOf7yZcpqNJ07p({R@nSp^pgCTg5xmxplk?r$E7;l+P T{5T^l=vjq{a0s&r=wG%H9l@Dl{5C8yE z4G(Ep#{dC5O_TK#cMiM{=yZty0E%B}00Bi#gL)LVdK3W%HjGrezWt`5qe{wC;e#YOEZJD<-uG{>Tc|9Xz z`{bpp%b4sKCi}993r4f#Nc%A`Y-(aDDxJu{=y`W@DH|K3kc~6Tzpz#YhFPn?G^6#* z&8_TeOiZ?Xlh<<2W3rds?8|kYiSgWISzdX@Gm~w3(-|L5Udnr&@#f@OzDRb?8Alix zt>hg^8zY45pV%#`+sj$9aAAiP70S1O3N&d`;;|z?B zU6Y>*m-9X6e^JuOz|du$$-wB%*_RSM4n0bP?N4IcqplSK_@0dSM84c7r^lZ6ghljaUx0z#0pMGqGN z0aTM+5T^lKvjq{a0s%miwG%H99S>-k5C8yD84qb##{dCA8I$!BcMf(B=yZty0E#zh c00ByvgL)LVdK3X8I=9(Q0X_k@Oi%$n50p_y9RL6T diff --git a/res/localization/LameXP_IT.qm b/res/localization/LameXP_IT.qm index 3006badf87d68b3bdb048bed5ac74f6cea661968..ded50810d2ff709e10d726c2b32c5c86bb927caa 100644 GIT binary patch delta 217 zcmV;~04D#Xl>(lY0+18|sF4-E0((S})n@^jlRW`v0lbr?0iOY&lSKkX8hIB4R(*T` z0CqnFY#UAh05qNia&?ga0D&Kqr2?P`1pZcq004JwlSKpO0(d2pEd)LSdN{Lf1Wy40 zpp(4?HUfY{ll28(0kxA=20;f2n8W}8b_tV}1}_2qlf?#a0o$`R2QC33e;E%|7jpmr zJA4mUTHXKvYXA>tZ7Ki&c%=_%SjPYWdw7$D2qy;dX#fC%RkN}P4R(`?8zhqieG;?3 Tel7u%w=yA<1bq^-?SHrmt13nw delta 192 zcmV;x06+hpmI9@f0+18|n2{B}0(#q#)n@@?lRW`v0aKHu0iOXklSKkX8hEY*R(*T` z0CoukY#UAh05qNia&?ga0D!iWr2?RnO#|ivcf6A|1U>?J&$D#|PXPfplf?x#0)N_* z{RLkEOp{#(L6fEiE&-I2)dp_?a08>l2fu4c7sElYI_Z2ML(O z007}RlhqDh0_Q=qH4hg70dqm008W7vuYGQ;gc@)4wDd443m}h|FnvqcXV0RbM9T@a@MiL(U}uL1!MleH5s5m^stnGgT~ uKVA=MSjPYW<@1yE6L$`J59oA>003qSX#fE17_)j5J>iq%_0qH8_6Z7C{a0%M diff --git a/res/localization/LameXP_PL.qm b/res/localization/LameXP_PL.qm index c1b7b296701fc382cd709037569c293e84c05698..e3a018109df750694b1cbc13979f58c5ce9ec1e9 100644 GIT binary patch delta 210 zcmV;@04@LJtp%d41&|a0Sg{pv0Rixng#ljyVYB4{R{;T4lRX2s0Y004@LX#fF2p@V7^w`vpt!!(m{ts|E; MN&ynLElB~m4GeNcRR910 delta 204 zcmV;-05kuht_9_-1&|a0P_Y$n0Rg*{g#ljyEVJbSR{;SalRX2s0THwH1GfPIB$KTL zrvbH-RR$*ka}_1pZcq005Z+vz-Sn0s=MJlg$a10yo;TWeUFn0l$+a4Icq< zlSK_@0kD&;4c7rclZ6hq0amj;4;BFeJm`~E5T*h?-Lw4=w*mpWleH5k5l0VbnGgT~ zR6P%ASjPYXIqQ?{6L%GC59oA>004@LX#fF2Yy$uQ04xAdlY2QTgQFC;qZ9#>G`DI= G0k{nT2|~I6 diff --git a/res/localization/LameXP_RU.qm b/res/localization/LameXP_RU.qm index d2943268c3cdd80d9e9440107ea0dc0b7028e566..deb144e6b1e2e22ed610eafde7a155ba225a2078 100644 GIT binary patch delta 261 zcmaFZ%JQO(Wr7Iff{mhLj7+cWC+jl0Gp?9i%2>}BGx;l!oHe-5)z&aDJYitTk@jO?sP$qgDxJu{@NwDXr!4OUAF%ujYh_@_ zsDsc?#Wvq%JGhUqB%jM7bZt`8O?TkAnPvwqe z=bUkbf#LCq$#1#C84pZ$<@v|-Hg2*jZynQn_svIn&6t=zuucBUuP^wKKVzl<1B0m{ ze`dsS28LJVlWhg!`5y4UDCuNih@O6#=2Ze`9#5VltTvhTo6zR6FJg?7bt-ki JoSv_tya3-AVG;lU delta 229 zcmVHw2X5MK^y f59oA>003K(X#fE7C9}E^%;U4Z^cDfL6ZTaNkJM4c diff --git a/res/localization/LameXP_SV.qm b/res/localization/LameXP_SV.qm index 102e5d9dcf5ce31708db17333231b3f0fd74eeed..1dca69d5952b70036c8ad2309e5f803deb1d6563 100644 GIT binary patch delta 268 zcmV+n0rURb{RGth1dtQ~V6hc%0Rg;|g#ljytCQscmjOeQeFDD$(UUy`w*j)V^#iW~ z0fm#L1*QTZ5|d2^7ZKqEY#UAh0Hx3ba&?ga0V(OTbp{6k5t#)3R)qinj^+gZR)qio z9sje12POgnA4-$037!HW5wlGS&H@4+Hj^C<9|4+^Jq>08DJhes4b}o9Gn0J|SqBN2 z!~g*tuangdUIHWuvo#MF0Rf+rO%SF6Cp@$D5Uv6OC=-*V6E6|C4``VX002zo4{2D( z00AQSljRe44t)>kbcp}}f759I0V>mjY81C>6aljwm%A7N6qBu043`Bo0TQcQ61O`t0iX=7uU9_+ delta 239 zcmV>MZvqcXV z0Rc9XT@a=MCeyP85v~FPC#sXR6E6`@4``VX002zo4{2D(00AP8ll2pK4ipdQbcp}} pf759I0V-;PdK9;M6aljww_h;<9s!r79|2L99ytLLw-+-3Jq$9iOmhGL diff --git a/res/localization/LameXP_TW.qm b/res/localization/LameXP_TW.qm index 4ec877a848eb7c1fe2fbd320d92a81bda76a5ae8..933d418f76e96e4b2da4c665aa14e73396fd73d7 100644 GIT binary patch delta 270 zcmV+p0rCEZ&janx1CSH}Sg{pu0Rqk_lZ63a0ppY90ha+ylYIie0c(>z1GfR1v-Jb7 z0RfMbr3I!c%svE6Ju?6RUBv`Yhm`;Tbbka^eS81_$_WH)8%_WKcBlk$b&&u7($lkb z1_l8V%Q*!8R)qinW-tW)R)qin%DJvo#M60RqrJlSL4w0?|^l?GUd50mqY_ z6E6|^4``VX001}W4{2D(007QXlid?{4($)vy&jW_f1CSH}NU;@e0Rqj@lZ63a0gRL70ha+GlYIie0Th!x1GfP~v-Jb7 z0RcFZr3I!c%jX14Ju?6RUBv`Yhm`;Tbbka^eS81_$=w8O8%_WKcBlk$b&&u7(tNXZ z1_l8N%Hjn6R)qinW-zmj2PXmnRg<*|p8=AyRSM4nA&m)$^G*N&VbKYVtquSHxmgL7 zd4T``gq;bObshi!%=eQ;4QBxaldTQc0W6b+4q21t4qXDy#Ir>Y4gmts=#y0trUKCW zv;7dS0s(N7trIU1qYr4A5C8x-=nrXF#{dA$`;+YxcMg^h=yZty09#9G007e@vvL&S N$&-KHu(Mj6E6{C4``VX x002_Z4{2D(00BZPll>ES4ulWrbcp}}i=}A*0ZU|qf)uxc6ampZw~kQ(r4B<8LoNUS diff --git a/res/localization/LameXP_ZH.qm b/res/localization/LameXP_ZH.qm index d9b7f64993e06250f008ce715d5537e730f36777..84e27ae90dd6c17de86205c3c333fa0434a309b3 100644 GIT binary patch delta 296 zcmexyk@@~5<_RK<9UDdS85t`kw=%{tUDBTXlyN%a+R3#{`x!S+wq@SV_+;}}Aj$ZA z@>gQh;%2b~v`=MVDBZ~tR$Ifsa5|GEN7|2pq5K|8QRzemhAZNmYuWf2 z1*fz83u|RyNN0x7XTWjAADI?FNnEayC?bB>#Hxy~^$opG9M%PY?~Z*nYeI^)90 zM|rO^UYe#u1>|wv)f|#WSXE4&@hTWNe?DE3lk#)@D(`ZA?s;1t*^s))P7# z#-A}$fPukcA%AAXaR!F-izf4ml<}Xp<$qDq$-oe!kO_3r-p!Ll98XV9mX?~#`ao#% s<@@VIS>peergAU<0UHQ=rsw4srA{_{C_cIKlG9|b`$C(qJy7BR0O&$!qyPW_ delta 238 zcmV1CSH}c(E040RbVCg#lgy(bSXW0ha-RlYIie0bG+k1GfQh*Bxdc{yd;kE;Jp^nUP5=OR-UM=WkpKYGz_Wb@ z4*>~41pZcq003tLvz-Sv0s_pjlhp~H0?q2PbqdY`0?X@@MGYSTN0Vg@X8}r+%?;N9 ze3PXPS(642UI7lXWe*nt0Wgz&5T^k{vn3I>0s_*ylid?863qV(XqgZI063u!X;{Yq o0MAR49TavC&gKv3bcp}}Tp(!x0Mur)q7*^PlMmpov*_S=2ufX5l>h($ diff --git a/src/Config.h b/src/Config.h index 8835ed10..f816c33c 100644 --- a/src/Config.h +++ b/src/Config.h @@ -35,7 +35,7 @@ #define VER_LAMEXP_MINOR_LO 9 #define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_PATCH 10 -#define VER_LAMEXP_BUILD 1507 +#define VER_LAMEXP_BUILD 1511 #define VER_LAMEXP_CONFG 1348 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Dialog_Update.cpp b/src/Dialog_Update.cpp index fd35a1e7..a9516aa8 100644 --- a/src/Dialog_Update.cpp +++ b/src/Dialog_Update.cpp @@ -41,6 +41,7 @@ #include #include #include +#include /////////////////////////////////////////////////////////////////////////////// @@ -238,8 +239,7 @@ void UpdateDialog::updateInit(void) { setMinimumSize(size()); setMaximumHeight(height()); - QApplication::processEvents(QEventLoop::ExcludeUserInputEvents); - checkForUpdates(); + QTimer::singleShot(0, this, SLOT(checkForUpdates())); } void UpdateDialog::checkForUpdates(void) @@ -249,6 +249,19 @@ void UpdateDialog::checkForUpdates(void) qWarning("Update in progress, cannot check for updates now!"); } + if(!lamexp_user_is_admin()) + { + qWarning("User is not in the \"admin\" group, cannot update!"); + QString message; + message += QString("%1
").arg(tr("Sorry, but only users in the \"Administrators\" group can install updates.")); + message += QString("%1").arg(tr("Please start application from an administrator account and try again!")); + if(QMessageBox::critical(this, this->windowTitle(), message, tr("Discard"), tr("Ignore")) != 1) + { + ui->closeButton->setEnabled(true); + close(); return; + } + } + WinSevenTaskbar::setTaskbarState(this->parentWidget(), WinSevenTaskbar::WinSevenTaskbarNormalState); WinSevenTaskbar::setOverlayIcon(this->parentWidget(), &QIcon(":/icons/transmit_blue.png")); @@ -294,7 +307,7 @@ void UpdateDialog::threadStatusChanged(const int status) break; case UpdateCheckThread::UpdateStatus_CompletedNewVersionOlder: ui->statusLabel->setText(tr("Your version appears to be newer than the latest release.")); - SHOW_HINT(tr("This usually indicates your are currently using a pre-release version of LameXP."), ":/icons/shield_error.png"); + SHOW_HINT(tr("This usually indicates your are currently using a pre-release version of LameXP."), ":/icons/shield_blue.png"); UPDATE_TASKBAR(WinSevenTaskbar::WinSevenTaskbarNormalState, ":/icons/shield_error.png"); break; case UpdateCheckThread::UpdateStatus_ErrorNoConnection: diff --git a/src/Global.h b/src/Global.h index c60a6b3c..66473224 100644 --- a/src/Global.h +++ b/src/Global.h @@ -229,6 +229,7 @@ QString lamexp_translation_name(const QString &language); bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &country); unsigned int lamexp_translation_sysid(const QString &langId); bool lamexp_update_sysmenu(const QWidget *win, const unsigned int identifier, const QString &text); +bool lamexp_user_is_admin(void); const QString lamexp_version2string(const QString &pattern, unsigned int version, const QString &defaultText, const QString *tag = NULL); const char *lamexp_version_arch(void); unsigned int lamexp_version_build(void); diff --git a/src/Global_Win32.cpp b/src/Global_Win32.cpp index 4dd52061..d5f771ab 100644 --- a/src/Global_Win32.cpp +++ b/src/Global_Win32.cpp @@ -892,13 +892,14 @@ static bool lamexp_event_filter(void *message, long *result) /* * Check for process elevation */ -static bool lamexp_check_elevation(void) +static bool lamexp_process_is_elevated(bool *bIsUacEnabled = NULL) { typedef enum { lamexp_token_elevationType_class = 18, lamexp_token_elevation_class = 20 } LAMEXP_TOKEN_INFORMATION_CLASS; typedef enum { lamexp_elevationType_default = 1, lamexp_elevationType_full, lamexp_elevationType_limited } LAMEXP_TOKEN_ELEVATION_TYPE; - HANDLE hToken = NULL; bool bIsProcessElevated = false; + if(bIsUacEnabled) *bIsUacEnabled = false; + HANDLE hToken = NULL; if(OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) { @@ -916,9 +917,14 @@ static bool lamexp_check_elevation(void) case lamexp_elevationType_full: qWarning("Process token elevation type: Full -> potential security risk!\n"); bIsProcessElevated = true; + if(bIsUacEnabled) *bIsUacEnabled = true; break; case lamexp_elevationType_limited: qDebug("Process token elevation type: Limited -> not elevated.\n"); + if(bIsUacEnabled) *bIsUacEnabled = true; + break; + default: + qWarning("Unknown tokenElevationType value: %d", tokenElevationType); break; } } @@ -930,7 +936,7 @@ static bool lamexp_check_elevation(void) qWarning("Failed to open process token!"); } - return !bIsProcessElevated; + return bIsProcessElevated; } /* @@ -1098,7 +1104,7 @@ bool lamexp_init_qt(int argc, char* argv[]) lamexp_translation_init(); //Check for process elevation - if((!lamexp_check_elevation()) && (!lamexp_detect_wine())) + if(lamexp_process_is_elevated() && (!lamexp_detect_wine())) { QMessageBox messageBox(QMessageBox::Warning, "LameXP", "LameXP was started with 'elevated' rights, altough LameXP does not need these rights.
Running an applications with unnecessary rights is a potential security risk!
", QMessageBox::NoButton, NULL, Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint | Qt::WindowStaysOnTopHint); messageBox.addButton("Quit Program (Recommended)", QMessageBox::NoRole); @@ -1852,15 +1858,15 @@ bool lamexp_bring_process_to_front(const unsigned long pid) } /* - * Check the network connection status + * Check the network connectivity status */ int lamexp_network_status(void) { DWORD dwFlags; - const BOOL ret = (IsNetworkAlive(&dwFlags) == TRUE); + const BOOL ret = IsNetworkAlive(&dwFlags); if(GetLastError() == 0) { - return (ret == TRUE) ? lamexp_network_yes : lamexp_network_non; + return (ret != FALSE) ? lamexp_network_yes : lamexp_network_non; } return lamexp_network_err; } @@ -2163,6 +2169,42 @@ QColor lamexp_system_color(const int color_id) return color; } +/* + * Check if the current user is in the "admin" group (up to and including Windows XP only) + */ +bool lamexp_user_is_admin(void) +{ + bool isAdmin = false; + + //Check for process elevation and UAC first! + if(lamexp_process_is_elevated(&isAdmin)) + { + qWarning("Process is elevated -> user is admin!"); + return true; + } + + //If not elevated and UAC is not available -> user must be in admin group! + if(!isAdmin) + { + qDebug("UAC is disabled/unavailable -> checking for Administrators group"); + + SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY; + PSID AdministratorsGroup; + + if(AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &AdministratorsGroup)) + { + BOOL b = FALSE; + if(CheckTokenMembership(NULL, AdministratorsGroup, &b)) + { + if(b) isAdmin = true; + } + FreeSid(AdministratorsGroup); + } + } + + return isAdmin; +} + /* * Fatal application exit */