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
|
||||
/// qu'il est : un remplacement.
|
||||
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) :
|
||||
// on ouvre la copie de secours, scellee sous le mot de passe.
|
||||
FRecover: Boolean;
|
||||
@@ -1665,6 +1671,7 @@ begin
|
||||
FUrl := FIRSTRUN_URL;
|
||||
FToken := FIRSTRUN_TOKEN;
|
||||
FPwd := TEST_PWD;
|
||||
FPwdShown := FPwd;
|
||||
// Ce que l'appareil a retenu l'emporte sur les valeurs de premier lancement.
|
||||
if LoadDeviceSettings(LUrl, LToken) then
|
||||
begin
|
||||
@@ -1789,6 +1796,7 @@ begin
|
||||
FUrl := TNetEncoding.URL.Decode(Param('u')).Trim;
|
||||
FToken := TNetEncoding.URL.Decode(Param('t')).Trim;
|
||||
FPwd := TNetEncoding.URL.Decode(Param('p'));
|
||||
if FPwd <> FPwdShown then FPwdUserSet := True;
|
||||
FPin := TNetEncoding.URL.Decode(Param('c'));
|
||||
// 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
|
||||
@@ -2263,6 +2271,13 @@ begin
|
||||
// en boucle, "open vault first" alors que le coffre etait ouvert.
|
||||
if HasLocalContainer then
|
||||
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
|
||||
begin
|
||||
FSyncPwd := LPwd;
|
||||
@@ -2271,6 +2286,7 @@ begin
|
||||
// fois : PushConfig reposait la valeur de premier lancement au
|
||||
// demarrage, l'ouverture ne la remplacait pas, et DoSync la PREFERE.
|
||||
FPwd := LPwd;
|
||||
FPwdShown := FPwd;
|
||||
WebCall(Format('PM.setConfig(%s, %s, %s, false)',
|
||||
[JsArg(FUrl), JsArg(FToken), JsArg(FPwd)]));
|
||||
end;
|
||||
@@ -2885,6 +2901,9 @@ begin
|
||||
procedure
|
||||
begin
|
||||
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
|
||||
AdoptVault(LPlain);
|
||||
except
|
||||
|
||||
Reference in New Issue
Block a user