Index: ash/system/user/user_view.cc |
diff --git a/ash/system/user/user_view.cc b/ash/system/user/user_view.cc |
index f3646a7a7aa3ca238418c8b359c03101a1c49cd0..5fc06c48adb2da15d4386b37f3624925f4d69d10 100644 |
--- a/ash/system/user/user_view.cc |
+++ b/ash/system/user/user_view.cc |
@@ -493,8 +493,13 @@ void UserView::ToggleAddUserMenuOption() { |
const SessionStateDelegate* delegate = |
Shell::GetInstance()->session_state_delegate(); |
- add_user_disabled_ = delegate->NumberOfLoggedInUsers() >= |
- delegate->GetMaximumNumberOfLoggedInUsers(); |
+ SessionStateDelegate::PrimaryUserPolicy primary_user_policy = |
+ delegate->GetPrimaryUserPolicy(); |
+ add_user_disabled_ = |
+ (delegate->NumberOfLoggedInUsers() >= |
+ delegate->GetMaximumNumberOfLoggedInUsers()) || |
+ (primary_user_policy != SessionStateDelegate::PRIMARY_USER_POLICY_ALLOW); |
+ |
ButtonFromView* button = new ButtonFromView( |
add_user_view, |
add_user_disabled_ ? NULL : this, |
@@ -508,9 +513,19 @@ void UserView::ToggleAddUserMenuOption() { |
if (add_user_disabled_) { |
ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
+ int messageId; |
+ switch (primary_user_policy) { |
+ case SessionStateDelegate::PRIMARY_USER_POLICY_FORBIDS: |
+ case SessionStateDelegate::PRIMARY_USER_POLICY_CERT_TAINTED: |
+ messageId = IDS_ASH_STATUS_TRAY_MESSAGE_NOT_ALLOWED_PRIMARY_USER; |
+ break; |
+ default: |
+ messageId = IDS_ASH_STATUS_TRAY_MESSAGE_CANNOT_ADD_USER; |
+ } |
+ |
popup_message_.reset(new PopupMessage( |
bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_CAPTION_CANNOT_ADD_USER), |
- bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_MESSAGE_CANNOT_ADD_USER), |
+ bundle.GetLocalizedString(messageId), |
PopupMessage::ICON_WARNING, |
add_user_view->anchor(), |
views::BubbleBorder::TOP_LEFT, |