Chromium Code Reviews| Index: components/user_manager/user.cc |
| diff --git a/components/user_manager/user.cc b/components/user_manager/user.cc |
| index 664aa4ba5041bfb84ed780decfb0e281336b1137..795456836101e99f16dda748c60a3cacded453cf 100644 |
| --- a/components/user_manager/user.cc |
| +++ b/components/user_manager/user.cc |
| @@ -28,14 +28,32 @@ std::string GetUserName(const std::string& email) { |
| } // namespace |
| -bool User::IsSupervised() const { |
| - return false; |
| -} |
| - |
| void User::SetIsSupervised(bool is_supervised) { |
|
bartfab (slow)
2014/11/11 19:42:07
The definition order does not match the declaratio
merkulova
2014/11/12 10:01:01
Done.
|
| VLOG(1) << "Ignoring SetIsSupervised call with param " << is_supervised; |
| + NOTREACHED() << "Calling SetIsSupervised for base User class."; |
| +} |
| + |
| +// static |
| +bool User::TypeIsRegular(UserType user_type) { |
| + return user_type == USER_TYPE_REGULAR || |
| + user_type == USER_TYPE_REGULAR_SUPERVISED; |
| +} |
| + |
| +// static |
| +bool User::TypeIsSupervised(UserType user_type) { |
|
Daniel Erat
2014/11/11 16:02:49
i don't see this static method getting called anyw
bartfab (slow)
2014/11/11 19:42:07
The definition order does not match the declaratio
merkulova
2014/11/12 10:01:01
Done.
merkulova
2014/11/12 10:01:02
Done.
|
| + return user_type == USER_TYPE_SUPERVISED || |
| + user_type == USER_TYPE_REGULAR_SUPERVISED; |
| +} |
| + |
| +bool User::IsRegular() const { |
|
bartfab (slow)
2014/11/11 19:42:07
1: This should be implemented in the same way as t
merkulova
2014/11/12 10:01:02
Why would you prefer that approach? That would lea
bartfab (slow)
2014/11/12 16:20:25
The idea is that you have a class which encapsulat
|
| + return TypeIsRegular(GetType()); |
| } |
| +bool User::IsSupervised() const { |
|
bartfab (slow)
2014/11/11 19:42:06
The definition order does not match the declaratio
merkulova
2014/11/12 10:01:01
Done.
|
| + return TypeIsSupervised(GetType()); |
| +} |
| + |
| +// Also used for regular supervised users. |
| class RegularUser : public User { |
| public: |
| explicit RegularUser(const std::string& email); |
| @@ -44,13 +62,7 @@ class RegularUser : public User { |
| // Overridden from User: |
| virtual UserType GetType() const override; |
| virtual bool CanSyncImage() const override; |
| - virtual void SetIsSupervised(bool is_supervised) override { |
| - VLOG(1) << "Setting user is supervised to " << is_supervised; |
| - is_supervised_ = is_supervised; |
| - } |
| - virtual bool IsSupervised() const override { |
|
bartfab (slow)
2014/11/11 19:42:07
This was the right way of doing things. Why did yo
merkulova
2014/11/12 10:01:01
Because new user type was introduced. Before there
|
| - return is_supervised_; |
| - } |
| + virtual void SetIsSupervised(bool is_supervised) override; |
| private: |
| bool is_supervised_; |
| @@ -89,7 +101,6 @@ class SupervisedUser : public User { |
| // Overridden from User: |
| virtual UserType GetType() const override; |
| - virtual bool IsSupervised() const override; |
| virtual std::string display_email() const override; |
| private: |
| @@ -252,13 +263,19 @@ RegularUser::~RegularUser() { |
| } |
| UserType RegularUser::GetType() const { |
| - return user_manager::USER_TYPE_REGULAR; |
| + return is_supervised_ ? user_manager::USER_TYPE_REGULAR_SUPERVISED : |
| + user_manager::USER_TYPE_REGULAR; |
| } |
| bool RegularUser::CanSyncImage() const { |
| return true; |
| } |
| +void RegularUser::SetIsSupervised(bool is_supervised) { |
| + VLOG(1) << "Setting user is supervised to " << is_supervised; |
| + is_supervised_ = is_supervised; |
| +} |
| + |
| GuestUser::GuestUser() : User(chromeos::login::kGuestUserName) { |
| set_display_email(std::string()); |
| } |
| @@ -297,10 +314,6 @@ std::string SupervisedUser::display_email() const { |
| return base::UTF16ToUTF8(display_name()); |
| } |
| -bool SupervisedUser::IsSupervised() const { |
| - return true; |
| -} |
| - |
| RetailModeUser::RetailModeUser() : User(chromeos::login::kRetailModeUserName) { |
| set_display_email(std::string()); |
| } |
| @@ -323,9 +336,10 @@ UserType PublicAccountUser::GetType() const { |
| } |
| bool User::has_gaia_account() const { |
| - COMPILE_ASSERT(user_manager::NUM_USER_TYPES == 6, num_user_types_unexpected); |
| + COMPILE_ASSERT(user_manager::NUM_USER_TYPES == 7, num_user_types_unexpected); |
| switch (GetType()) { |
| case user_manager::USER_TYPE_REGULAR: |
| + case user_manager::USER_TYPE_REGULAR_SUPERVISED: |
| return true; |
| case user_manager::USER_TYPE_GUEST: |
| case user_manager::USER_TYPE_RETAIL_MODE: |