Feature #2795

Mis à jour par Serge Heiden il y a plus de 5 ans

h2. Diagnostic

On windows, the user needs to start TXM with administrator rights to be able to install updates

h3. Specific

FR

implémenter la solution par ordre de préférence (en fonction de ce qui est possible) :

* solution 1)
** commande "vérifier les mises à jours" :
***
si l'utilisateur est sur Windows && l'utilisateur n'a pas lancé TXM en tant qu'administrateur
****
alors ouvrir une boite de dialogue modale d'avertissement qui dit :
***** "Il est nécessaire de
qu'il faut lancer TXM en tant qu'administrateur pour pouvoir vérifier et installer les mises à jour. Merci de quitter TXM, de le relancer en tant qu'administrateur puis de relancer cette commande, pour pouvoir vérifier et installer les mises à jour."
***** et
abandonner la commande en cliquant sur l'unique bouton OK
****
sinon procéder à la vérification et aux vérifier les mises à jour et les installer le cas échéant

* solution 2)
** commande "vérifier les mises à jours" : si l'utilisateur est sur Windows && l'utilisateur n'a pas accès en écriture à des endroits nécessaires alors ouvrir une boite de dialogue modale d'avertissement qui dit qu'il faut être administrateur et abandonner la commande sinon vérifier les mises à jour et les installer le cas échéant

* solution 3)
** commande "vérifier les mises à jours" : si l'utilisateur est sur Windows alors ouvrir une boite de dialogue d'avertissement qui dit qu'il faut être connecté en tant qu'administrateur pour pouvoir installer des mises à jour, si clic sur Continuer continuer la commande jusqu'au bout sinon abandonner la commande

h2. Solution

<pre>
private static boolean isWindowsAdminCommandTest()
{
Preferences preferences = systemRoot();

synchronized (System.err)
{
setErr(new PrintStream(new OutputStream() {
@Override
public void write(int b) throws IOException { }
}));

try
{
preferences.put("TxmAdminAccessTestProperty", "TxmAdminAccessTestValue"); // SecurityException on Windows
preferences.remove("TxmAdminAccessTestProperty");
preferences.flush(); // BackingStoreException on Linux
return true;
} catch (Exception exception)
{
return false;
} finally
{
setErr(System.err);
}
}
}
</pre>

If the Windows user is not detected as administrator a message is shown in a modal dialog box to 1) tell he must be administrator to install updates . When the "OK" button is pressed, the update is aborted.

Message per lang:
FR : Il est nécessaire de lancer TXM en tant qu'administrateur pour pouvoir vérifier et installer les mises à jour.
Merci de quitter TXM, de le relancer en tant qu'administrateur puis de relancer cette commande, pour pouvoir vérifier et installer les mises à jour.

EN : It is necessary to launch TXM as administrator to To be able to check if new updates are available and install updates.
Please quit TXM, re-launch it
them, you must launch TXM as administrator then re-launch this command, to be able to check and install updates. administrator. [Cancel] [Continue anyway]

Retour