Feature #2795

Mis à jour par Matthieu Decorde 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

h2. Solution

h3. General

Add a warning dialog/message if the user doesn't have the credentials

see if it can be generalized for Linux and Mac OS X

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 avertir qu'il faut lancer TXM en tant qu'administrateur et abandonner la commande sinon 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 avertir 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

implement solution 1 using :

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("foo", "bar"); // SecurityException on Windows
preferences.remove("foo");
preferences.flush(); // BackingStoreException on Linux
return true;
} catch (Exception exception)
{
return false;
} finally
{
setErr(System.err);
}
}
}

a message is shown in the console and the update is aborted IF the windows user is not the administrator

Retour