// 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. #include "chromeos/login/user_names.h" #include "base/macros.h" #include "base/memory/singleton.h" #include "components/signin/core/account_id/account_id.h" #include "google_apis/gaia/gaia_auth_util.h" class AccountId; namespace { // Username for Demo session user. constexpr const char kDemoUserName[] = "demouser@demo.app.local"; // Username for Signin account id. constexpr const char kSignInUser[] = "sign-in-user-id"; // This is a singleton object that is used to store several // global AccountIds for special accounts. class FixedAccountManager { public: static FixedAccountManager* GetInstance() { return base::Singleton::get(); } const AccountId& stub_account_id() const { return stub_account_id_; } const AccountId& signin_account_id() const { return signin_account_id_; } const AccountId& guest_account_id() const { return guest_account_id_; } const AccountId& demo_account_id() const { return demo_account_id_; } private: friend struct base::DefaultSingletonTraits; FixedAccountManager(); const AccountId stub_account_id_; const AccountId signin_account_id_; const AccountId guest_account_id_; const AccountId demo_account_id_; DISALLOW_COPY_AND_ASSIGN(FixedAccountManager); }; FixedAccountManager::FixedAccountManager() : stub_account_id_(AccountId::FromUserEmail(chromeos::login::kStubUser)), signin_account_id_(AccountId::FromUserEmail(kSignInUser)), guest_account_id_( AccountId::FromUserEmail(chromeos::login::kGuestUserName)), demo_account_id_(AccountId::FromUserEmail(kDemoUserName)) {} } // namespace namespace chromeos { namespace login { constexpr const char kStubUser[] = "stub-user@example.com"; // Should match cros constant in platform/libchromeos/chromeos/cryptohome.h constexpr const char kGuestUserName[] = "$guest"; constexpr const char kSupervisedUserDomain[] = "locally-managed.localhost"; std::string CanonicalizeUserID(const std::string& user_id) { if (user_id == chromeos::login::kGuestUserName) return user_id; return gaia::CanonicalizeEmail(user_id); } const AccountId& StubAccountId() { return FixedAccountManager::GetInstance()->stub_account_id(); } const AccountId& SignInAccountId() { return FixedAccountManager::GetInstance()->signin_account_id(); } const AccountId& GuestAccountId() { return FixedAccountManager::GetInstance()->guest_account_id(); } const AccountId& DemoAccountId() { return FixedAccountManager::GetInstance()->demo_account_id(); } } // namespace login } // namespace chromeos