diff options
author | akuegel@chromium.org <akuegel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-06 23:47:19 +0000 |
---|---|---|
committer | akuegel@chromium.org <akuegel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-06 23:47:19 +0000 |
commit | f252df2e3c3cc046b4624d905a999b74111cf5bf (patch) | |
tree | cace77d393ee7251faa2f099b5ad0a59b58c7ec0 /chrome/browser/managed_mode/managed_user_service.cc | |
parent | 16465ec641d4332ae4265e81e96bce91460757d1 (diff) | |
download | chromium_src-f252df2e3c3cc046b4624d905a999b74111cf5bf.zip chromium_src-f252df2e3c3cc046b4624d905a999b74111cf5bf.tar.gz chromium_src-f252df2e3c3cc046b4624d905a999b74111cf5bf.tar.bz2 |
Store the username of the custodian of the managed user.
To create a managed user, someone has to be signed in. We
store the username immediately after the new managed profile
has been created as a profile preference.
BUG=241387
Review URL: https://chromiumcodereview.appspot.com/15907009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204660 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/managed_mode/managed_user_service.cc')
-rw-r--r-- | chrome/browser/managed_mode/managed_user_service.cc | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/chrome/browser/managed_mode/managed_user_service.cc b/chrome/browser/managed_mode/managed_user_service.cc index c9da4d7..13305e8 100644 --- a/chrome/browser/managed_mode/managed_user_service.cc +++ b/chrome/browser/managed_mode/managed_user_service.cc @@ -14,11 +14,15 @@ #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/managed_mode/managed_mode_site_list.h" #include "chrome/browser/managed_mode/managed_user_registration_service.h" +#include "chrome/browser/managed_mode/managed_user_registration_service_factory.h" #include "chrome/browser/policy/managed_mode_policy_provider.h" #include "chrome/browser/policy/profile_policy_connector.h" #include "chrome/browser/policy/profile_policy_connector_factory.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/signin/signin_manager.h" +#include "chrome/browser/signin/signin_manager_base.h" +#include "chrome/browser/signin/signin_manager_factory.h" #include "chrome/browser/signin/token_service.h" #include "chrome/browser/signin/token_service_factory.h" #include "chrome/browser/sync/glue/session_model_associator.h" @@ -157,6 +161,9 @@ void ManagedUserService::RegisterUserPrefs( registry->RegisterIntegerPref( prefs::kDefaultManagedModeFilteringBehavior, ManagedModeURLFilter::ALLOW, user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref( + prefs::kManagedUserCustodian, std::string(), + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); } // static @@ -197,9 +204,7 @@ void ManagedUserService::GetCategoryNames(CategoryList* list) { } std::string ManagedUserService::GetCustodianEmailAddress() const { - DCHECK(ProfileIsManaged()); - // TODO(akuegel): Replace the dummy value by the real value. - return "custodian@gmail.com"; + return profile_->GetPrefs()->GetString(prefs::kManagedUserCustodian); } std::string ManagedUserService::GetDebugPolicyProviderName() const { @@ -520,18 +525,21 @@ void ManagedUserService::Init() { } void ManagedUserService::RegisterAndInitSync( - ManagedUserRegistrationService* registration_service, + Profile* custodian_profile, const ProfileManager::CreateCallback& callback) { + ManagedUserRegistrationService* registration_service = + ManagedUserRegistrationServiceFactory::GetForProfile(custodian_profile); string16 name = UTF8ToUTF16( profile_->GetPrefs()->GetString(prefs::kProfileName)); registration_service->Register( name, base::Bind(&ManagedUserService::OnManagedUserRegistered, - weak_ptr_factory_.GetWeakPtr(), callback)); + weak_ptr_factory_.GetWeakPtr(), callback, custodian_profile)); } void ManagedUserService::OnManagedUserRegistered( const ProfileManager::CreateCallback& callback, + Profile* custodian_profile, const GoogleServiceAuthError& auth_error, const std::string& token) { if (auth_error.state() == GoogleServiceAuthError::REQUEST_CANCELED) { @@ -545,6 +553,10 @@ void ManagedUserService::OnManagedUserRegistered( } InitSync(token); + SigninManagerBase* signin = + SigninManagerFactory::GetForProfile(custodian_profile); + profile_->GetPrefs()->SetString(prefs::kManagedUserCustodian, + signin->GetAuthenticatedUsername()); callback.Run(profile_, Profile::CREATE_STATUS_INITIALIZED); } |