[go: nahoru, domu]

pac: Skip parent code validation for re-auth if no valid config.

Detect absence of parent access code config and do not perform
code validation for re-auth in that case. This will allow Family
Link users to do online sign-in and fetch the config as a part of
that process.
User can get into no config state if sign-in is interrupted
for example by crash or reboot.

Bug: 1161741
Change-Id: I1d20310a9d5626b060136f5b76d755ccf627b536
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2771198
Commit-Queue: Aga Wronska <agawronska@chromium.org>
Reviewed-by: Li Lin <llin@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Roman Sorokin [CET] <rsorokin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#865968}
diff --git a/ash/login/login_screen_controller.cc b/ash/login/login_screen_controller.cc
index ec4d0fe..f5847cf 100644
--- a/ash/login/login_screen_controller.cc
+++ b/ash/login/login_screen_controller.cc
@@ -11,6 +11,7 @@
 #include "ash/login/ui/lock_screen.h"
 #include "ash/login/ui/login_data_dispatcher.h"
 #include "ash/public/cpp/ash_pref_names.h"
+#include "ash/public/cpp/child_accounts/parent_access_controller.h"
 #include "ash/public/cpp/login_screen_client.h"
 #include "ash/public/cpp/toast_data.h"
 #include "ash/root_window_controller.h"
@@ -163,14 +164,14 @@
                      weak_factory_.GetWeakPtr(), std::move(callback)));
 }
 
-bool LoginScreenController::ValidateParentAccessCode(
+ParentCodeValidationResult LoginScreenController::ValidateParentAccessCode(
     const AccountId& account_id,
     base::Time validation_time,
     const std::string& code) {
   DCHECK(!validation_time.is_null());
 
   if (!client_)
-    return false;
+    return ParentCodeValidationResult::kInternalError;
 
   return client_->ValidateParentAccessCode(account_id, code, validation_time);
 }