Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Unified Diff: components/user_manager/user.cc

Issue 2519823006: Chromad: Add authentication flow (Closed)
Patch Set: Rename HandleAdAuth. Use system_api enums Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/user_manager/user.h ('k') | components/user_manager/user_manager_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/user_manager/user.cc
diff --git a/components/user_manager/user.cc b/components/user_manager/user.cc
index 3cd2d49c3d550e6b5ffe81fe1446b479e7eb8188..19fe85c87a3e8c7a2e10b6852a9b40a0c3fb3f2e 100644
--- a/components/user_manager/user.cc
+++ b/components/user_manager/user.cc
@@ -53,6 +53,14 @@ class RegularUser : public User {
DISALLOW_COPY_AND_ASSIGN(RegularUser);
};
+class ActiveDirectoryUser : public RegularUser {
+ public:
+ explicit ActiveDirectoryUser(const AccountId& account_id);
+ ~ActiveDirectoryUser() override;
+ // Overridden from User:
+ UserType GetType() const override;
+};
+
class GuestUser : public User {
public:
explicit GuestUser(const AccountId& guest_account_id);
@@ -169,6 +177,10 @@ bool User::HasGaiaAccount() const {
return TypeHasGaiaAccount(GetType());
}
+bool User::IsActiveDirectoryUser() const {
+ return GetType() == user_manager::USER_TYPE_ACTIVE_DIRECTORY;
+}
+
bool User::IsSupervised() const {
UserType type = GetType();
return type == USER_TYPE_SUPERVISED ||
@@ -223,6 +235,8 @@ bool User::IsDeviceLocalAccount() const {
}
User* User::CreateRegularUser(const AccountId& account_id) {
+ if (account_id.GetAccountType() == AccountType::ACTIVE_DIRECTORY)
+ return new ActiveDirectoryUser(account_id);
return new RegularUser(account_id);
}
@@ -271,14 +285,23 @@ void User::SetStubImage(std::unique_ptr<UserImage> stub_user_image,
image_is_loading_ = is_loading;
}
+UserType ActiveDirectoryUser::GetType() const {
+ return user_manager::USER_TYPE_ACTIVE_DIRECTORY;
+}
+
RegularUser::RegularUser(const AccountId& account_id) : User(account_id) {
set_can_lock(true);
set_display_email(account_id.GetUserEmail());
}
+ActiveDirectoryUser::ActiveDirectoryUser(const AccountId& account_id)
+ : RegularUser(account_id) {}
+
RegularUser::~RegularUser() {
}
+ActiveDirectoryUser::~ActiveDirectoryUser() {}
+
UserType RegularUser::GetType() const {
return is_child_ ? user_manager::USER_TYPE_CHILD :
user_manager::USER_TYPE_REGULAR;
@@ -376,8 +399,8 @@ UserType PublicAccountUser::GetType() const {
}
bool User::has_gaia_account() const {
- static_assert(user_manager::NUM_USER_TYPES == 8,
- "NUM_USER_TYPES should equal 8");
+ static_assert(user_manager::NUM_USER_TYPES == 9,
+ "NUM_USER_TYPES should equal 9");
switch (GetType()) {
case user_manager::USER_TYPE_REGULAR:
case user_manager::USER_TYPE_CHILD:
@@ -387,6 +410,7 @@ bool User::has_gaia_account() const {
case user_manager::USER_TYPE_SUPERVISED:
case user_manager::USER_TYPE_KIOSK_APP:
case user_manager::USER_TYPE_ARC_KIOSK_APP:
+ case user_manager::USER_TYPE_ACTIVE_DIRECTORY:
return false;
default:
NOTREACHED();
« no previous file with comments | « components/user_manager/user.h ('k') | components/user_manager/user_manager_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698