Commit d7bb8d3a authored by Aga Wronska's avatar Aga Wronska Committed by Commit Bot

Include time zone for child user in session status report.

Bug: 835436
Change-Id: Ie7d07234197b0159a429a69de84e1e3c1724c1c0
Reviewed-on: https://chromium-review.googlesource.com/1025395
Commit-Queue: Aga Wronska <agawronska@chromium.org>
Reviewed-by: default avatarMaksim Ivanov <emaxx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561327}
parent c1b72383
......@@ -25,6 +25,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/sys_info.h"
#include "base/task_scheduler/post_task.h"
#include "base/threading/sequenced_task_runner_handle.h"
......@@ -54,6 +55,7 @@
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
#include "chromeos/settings/cros_settings_names.h"
#include "chromeos/settings/timezone_settings.h"
#include "chromeos/system/statistics_provider.h"
#include "components/arc/arc_bridge_service.h"
#include "components/arc/arc_service_manager.h"
......@@ -1487,6 +1489,16 @@ bool DeviceStatusCollector::GetSessionStatusForUser(
anything_reported_user |= GetAndroidStatus(status, state);
if (anything_reported_user && !user->IsDeviceLocalAccount())
status->set_user_dm_token(GetDMTokenForProfile(profile));
// Time zone is not reported in enterprise reports.
if (!is_enterprise_reporting_) {
const std::string current_timezone =
base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance()
->GetCurrentTimezoneID());
status->set_time_zone(current_timezone);
anything_reported_user = true;
}
return anything_reported_user;
}
......
......@@ -19,6 +19,7 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
#include "base/strings/utf_string_conversions.h"
#include "base/sys_info.h"
#include "base/test/scoped_path_override.h"
#include "base/threading/thread_task_runner_handle.h"
......@@ -52,6 +53,7 @@
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
#include "chromeos/settings/cros_settings_names.h"
#include "chromeos/settings/timezone_settings.h"
#include "chromeos/system/fake_statistics_provider.h"
#include "components/account_id/account_id.h"
#include "components/policy/proto/device_management_backend.pb.h"
......@@ -1323,6 +1325,16 @@ TEST_F(DeviceStatusCollectorTest,
EXPECT_FALSE(got_session_status_);
}
TEST_F(DeviceStatusCollectorTest, NoTimeZoneReporting) {
// Time zone is not reported in enterprise reports.
const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
MockRegularUserWithAffiliation(account_id, true);
GetStatus();
EXPECT_FALSE(session_status_.has_time_zone());
}
TEST_F(DeviceStatusCollectorTest, NoSessionStatusIfNoSession) {
// Should not report session status if we don't have an active kiosk app or an
// active user session.
......@@ -2073,4 +2085,15 @@ TEST_F(ConsumerDeviceStatusCollectorTest, NotReportingDeviceHardwareStatus) {
EXPECT_FALSE(device_status_.has_system_ram_total());
}
TEST_F(ConsumerDeviceStatusCollectorTest, TimeZoneReporting) {
const std::string timezone =
base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance()
->GetCurrentTimezoneID());
GetStatus();
EXPECT_TRUE(session_status_.has_time_zone());
EXPECT_EQ(timezone, session_status_.time_zone());
}
} // namespace policy
......@@ -1124,6 +1124,11 @@ message SessionStatusReportRequest {
// If this is a regular user session, this is the user's DMToken.
optional string user_dm_token = 8;
// Time zone id of the active user. Not set for enterprise users.
// Format of the id is as specified in tz database e.g. Pacific/Honolulu. For
// more details check third_party/icu/source/i18n/unicode/timezone.h.
optional string time_zone = 9;
}
// Response from DMServer to update devices' status.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment