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