summaryrefslogtreecommitdiffstats
path: root/chrome/browser/managed_mode/managed_user_service.cc
diff options
context:
space:
mode:
authorakuegel@chromium.org <akuegel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 23:47:19 +0000
committerakuegel@chromium.org <akuegel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 23:47:19 +0000
commitf252df2e3c3cc046b4624d905a999b74111cf5bf (patch)
treecace77d393ee7251faa2f099b5ad0a59b58c7ec0 /chrome/browser/managed_mode/managed_user_service.cc
parent16465ec641d4332ae4265e81e96bce91460757d1 (diff)
downloadchromium_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.cc22
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);
}