fix(apk): le mot de passe de synchro enregistre dans les reglages n'est plus ecrase par celui du cache
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+19
@@ -141,6 +141,12 @@ type
|
|||||||
/// ouverture qui ne peut pas aboutir, et nomme le telechargement pour ce
|
/// ouverture qui ne peut pas aboutir, et nomme le telechargement pour ce
|
||||||
/// qu'il est : un remplacement.
|
/// qu'il est : un remplacement.
|
||||||
FVaultUnreadable: Boolean;
|
FVaultUnreadable: Boolean;
|
||||||
|
// LE MOT DE PASSE DE SYNCHRO TAPE L'EMPORTE SUR CELUI DU CACHE. FPwdShown est
|
||||||
|
// la derniere valeur que l'app a mise dans le champ ; une valeur differente
|
||||||
|
// venue de la page est donc un choix de l'utilisateur (FPwdUserSet), que
|
||||||
|
// l'ouverture du coffre ne doit plus ecraser avec l'ancienne.
|
||||||
|
FPwdShown: string;
|
||||||
|
FPwdUserSet: Boolean;
|
||||||
// La cle du verrouillage d'ecran est morte (schema retire ou reinitialise) :
|
// La cle du verrouillage d'ecran est morte (schema retire ou reinitialise) :
|
||||||
// on ouvre la copie de secours, scellee sous le mot de passe.
|
// on ouvre la copie de secours, scellee sous le mot de passe.
|
||||||
FRecover: Boolean;
|
FRecover: Boolean;
|
||||||
@@ -1665,6 +1671,7 @@ begin
|
|||||||
FUrl := FIRSTRUN_URL;
|
FUrl := FIRSTRUN_URL;
|
||||||
FToken := FIRSTRUN_TOKEN;
|
FToken := FIRSTRUN_TOKEN;
|
||||||
FPwd := TEST_PWD;
|
FPwd := TEST_PWD;
|
||||||
|
FPwdShown := FPwd;
|
||||||
// Ce que l'appareil a retenu l'emporte sur les valeurs de premier lancement.
|
// Ce que l'appareil a retenu l'emporte sur les valeurs de premier lancement.
|
||||||
if LoadDeviceSettings(LUrl, LToken) then
|
if LoadDeviceSettings(LUrl, LToken) then
|
||||||
begin
|
begin
|
||||||
@@ -1789,6 +1796,7 @@ begin
|
|||||||
FUrl := TNetEncoding.URL.Decode(Param('u')).Trim;
|
FUrl := TNetEncoding.URL.Decode(Param('u')).Trim;
|
||||||
FToken := TNetEncoding.URL.Decode(Param('t')).Trim;
|
FToken := TNetEncoding.URL.Decode(Param('t')).Trim;
|
||||||
FPwd := TNetEncoding.URL.Decode(Param('p'));
|
FPwd := TNetEncoding.URL.Decode(Param('p'));
|
||||||
|
if FPwd <> FPwdShown then FPwdUserSet := True;
|
||||||
FPin := TNetEncoding.URL.Decode(Param('c'));
|
FPin := TNetEncoding.URL.Decode(Param('c'));
|
||||||
// L'empreinte du mot de passe AUSSI : si une saisie destinee au jeton
|
// L'empreinte du mot de passe AUSSI : si une saisie destinee au jeton
|
||||||
// atterrit dans le champ voisin - les deux sont masques - c'est celle-ci
|
// atterrit dans le champ voisin - les deux sont masques - c'est celle-ci
|
||||||
@@ -2263,6 +2271,13 @@ begin
|
|||||||
// en boucle, "open vault first" alors que le coffre etait ouvert.
|
// en boucle, "open vault first" alors que le coffre etait ouvert.
|
||||||
if HasLocalContainer then
|
if HasLocalContainer then
|
||||||
FVaultPwd := LPwd
|
FVaultPwd := LPwd
|
||||||
|
else if FPwdUserSet then
|
||||||
|
begin
|
||||||
|
// L'utilisateur a enregistre un autre mot de passe de synchro depuis :
|
||||||
|
// c'est lui qui sert, bon ou mauvais - la synchro le dira.
|
||||||
|
FSyncPwd := FPwd;
|
||||||
|
Log(' sync password set in Settings kept over the cached one');
|
||||||
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
FSyncPwd := LPwd;
|
FSyncPwd := LPwd;
|
||||||
@@ -2271,6 +2286,7 @@ begin
|
|||||||
// fois : PushConfig reposait la valeur de premier lancement au
|
// fois : PushConfig reposait la valeur de premier lancement au
|
||||||
// demarrage, l'ouverture ne la remplacait pas, et DoSync la PREFERE.
|
// demarrage, l'ouverture ne la remplacait pas, et DoSync la PREFERE.
|
||||||
FPwd := LPwd;
|
FPwd := LPwd;
|
||||||
|
FPwdShown := FPwd;
|
||||||
WebCall(Format('PM.setConfig(%s, %s, %s, false)',
|
WebCall(Format('PM.setConfig(%s, %s, %s, false)',
|
||||||
[JsArg(FUrl), JsArg(FToken), JsArg(FPwd)]));
|
[JsArg(FUrl), JsArg(FToken), JsArg(FPwd)]));
|
||||||
end;
|
end;
|
||||||
@@ -2885,6 +2901,9 @@ begin
|
|||||||
procedure
|
procedure
|
||||||
begin
|
begin
|
||||||
FSyncPwd := APwd; // il vient d'ouvrir un conteneur : il est bon
|
FSyncPwd := APwd; // il vient d'ouvrir un conteneur : il est bon
|
||||||
|
// Le cache le porte desormais : il redevient la reference.
|
||||||
|
FPwdUserSet := False;
|
||||||
|
FPwdShown := FPwd;
|
||||||
try
|
try
|
||||||
AdoptVault(LPlain);
|
AdoptVault(LPlain);
|
||||||
except
|
except
|
||||||
|
|||||||
Reference in New Issue
Block a user