1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/sync/supervised_user_signin_manager_wrapper.h"
6
7#include "chrome/browser/profiles/profile.h"
8#include "components/signin/core/browser/signin_manager_base.h"
9#include "google_apis/gaia/gaia_constants.h"
10
11#if defined(ENABLE_MANAGED_USERS)
12#include "chrome/browser/supervised_user/supervised_user_constants.h"
13#endif
14
15SupervisedUserSigninManagerWrapper::SupervisedUserSigninManagerWrapper(
16    Profile* profile,
17    SigninManagerBase* original)
18    : profile_(profile), original_(original) {}
19
20SupervisedUserSigninManagerWrapper::~SupervisedUserSigninManagerWrapper() {
21}
22
23SigninManagerBase* SupervisedUserSigninManagerWrapper::GetOriginal() {
24  return original_;
25}
26
27std::string SupervisedUserSigninManagerWrapper::GetEffectiveUsername() const {
28  const std::string& auth_username = original_->GetAuthenticatedUsername();
29#if defined(ENABLE_MANAGED_USERS)
30  if (auth_username.empty() && profile_->IsSupervised())
31    return supervised_users::kSupervisedUserPseudoEmail;
32#endif
33  return auth_username;
34}
35
36std::string SupervisedUserSigninManagerWrapper::GetAccountIdToUse() const {
37#if defined(ENABLE_MANAGED_USERS)
38  if (!original_->IsAuthenticated() && profile_->IsSupervised())
39    return supervised_users::kSupervisedUserPseudoEmail;
40#endif
41  return original_->GetAuthenticatedAccountId();
42}
43
44std::string SupervisedUserSigninManagerWrapper::GetSyncScopeToUse() const {
45#if defined(ENABLE_MANAGED_USERS)
46  if (!original_->IsAuthenticated() && profile_->IsSupervised())
47    return GaiaConstants::kChromeSyncSupervisedOAuth2Scope;
48#endif
49  return GaiaConstants::kChromeSyncOAuth2Scope;
50}
51