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#ifndef CHROME_BROWSER_SYNC_MANAGED_USER_SIGNIN_MANAGER_WRAPPER_H_
6#define CHROME_BROWSER_SYNC_MANAGED_USER_SIGNIN_MANAGER_WRAPPER_H_
7
8#include <string>
9
10#include "base/basictypes.h"
11
12class Profile;
13class SigninManagerBase;
14
15// Some chrome cloud services support managed users as well as normally
16// authenticated users that sign in through SigninManager.  To facilitate
17// getting the "effective" username and account identifiers, services can
18// use this class to wrap the SigninManager and return managed user account
19// information when appropriate.
20class ManagedUserSigninManagerWrapper {
21 public:
22  ManagedUserSigninManagerWrapper(Profile* profile,
23                                  SigninManagerBase* original);
24  virtual ~ManagedUserSigninManagerWrapper();
25
26  virtual std::string GetEffectiveUsername() const;
27  virtual std::string GetAccountIdToUse() const;
28
29  virtual std::string GetSyncScopeToUse() const;
30
31  SigninManagerBase* GetOriginal();
32
33 private:
34  Profile* profile_;
35  SigninManagerBase* original_;
36  DISALLOW_COPY_AND_ASSIGN(ManagedUserSigninManagerWrapper);
37};
38
39#endif  // CHROME_BROWSER_SYNC_MANAGED_USER_SIGNIN_MANAGER_WRAPPER_H_
40