// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_SYNC_SUPERVISED_USER_SIGNIN_MANAGER_WRAPPER_H_
#define CHROME_BROWSER_SYNC_SUPERVISED_USER_SIGNIN_MANAGER_WRAPPER_H_

#include <string>

#include "base/basictypes.h"
#include "components/sync_driver/signin_manager_wrapper.h"

class Profile;
class SigninManagerBase;

// Some chrome cloud services support supervised users as well as normally
// authenticated users that sign in through SigninManager.  To facilitate
// getting the "effective" username and account identifiers, services can
// use this class to wrap the SigninManager and return supervised user account
// information when appropriate.
class SupervisedUserSigninManagerWrapper : public SigninManagerWrapper {
 public:
  SupervisedUserSigninManagerWrapper(Profile* profile,
                                     SigninManagerBase* original);
  ~SupervisedUserSigninManagerWrapper() override;

  // SigninManagerWrapper implementation
  std::string GetEffectiveUsername() const override;
  std::string GetAccountIdToUse() const override;
  std::string GetSyncScopeToUse() const override;

 private:
  Profile* profile_;

  DISALLOW_COPY_AND_ASSIGN(SupervisedUserSigninManagerWrapper);
};

#endif  // CHROME_BROWSER_SYNC_SUPERVISED_USER_SIGNIN_MANAGER_WRAPPER_H_
