Index: chromeos/dbus/session_manager_client.cc |
diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc |
index dd5c642a9b2fa1548a9358e1137be26f35e37b5c..a21b5a9770b2c6a4381e45071b4b596c6b84b630 100644 |
--- a/chromeos/dbus/session_manager_client.cc |
+++ b/chromeos/dbus/session_manager_client.cc |
@@ -208,6 +208,17 @@ class SessionManagerClientImpl : public SessionManagerClient { |
callback)); |
} |
+ std::string BlockingRetrieveDevicePolicy() override { |
+ dbus::MethodCall method_call(login_manager::kSessionManagerInterface, |
+ login_manager::kSessionManagerRetrievePolicy); |
+ std::unique_ptr<dbus::Response> response = |
+ blocking_method_caller_->CallMethodAndBlock(&method_call); |
+ std::string policy; |
+ ExtractString(login_manager::kSessionManagerRetrievePolicy, response.get(), |
+ &policy); |
+ return policy; |
+ } |
+ |
void RetrievePolicyForUser(const cryptohome::Identification& cryptohome_id, |
const RetrievePolicyCallback& callback) override { |
CallRetrievePolicyByUsername( |
@@ -240,6 +251,22 @@ class SessionManagerClientImpl : public SessionManagerClient { |
callback); |
} |
+ std::string BlockingRetrieveDeviceLocalAccountPolicy( |
+ const std::string& account_name) override { |
+ dbus::MethodCall method_call( |
+ login_manager::kSessionManagerInterface, |
+ login_manager::kSessionManagerRetrieveDeviceLocalAccountPolicy); |
+ dbus::MessageWriter writer(&method_call); |
+ writer.AppendString(account_name); |
+ std::unique_ptr<dbus::Response> response = |
+ blocking_method_caller_->CallMethodAndBlock(&method_call); |
+ std::string policy; |
+ ExtractString( |
+ login_manager::kSessionManagerRetrieveDeviceLocalAccountPolicy, |
+ response.get(), &policy); |
+ return policy; |
+ } |
+ |
void StoreDevicePolicy(const std::string& policy_blob, |
const StorePolicyCallback& callback) override { |
dbus::MethodCall method_call(login_manager::kSessionManagerInterface, |
@@ -843,6 +870,15 @@ class SessionManagerClientStubImpl : public SessionManagerClient { |
.MayBlock(), |
base::Bind(&GetFileContent, device_policy_path), callback); |
} |
+ std::string BlockingRetrieveDevicePolicy() override { |
+ base::FilePath owner_key_path; |
+ if (!PathService::Get(chromeos::FILE_OWNER_KEY, &owner_key_path)) { |
+ return ""; |
+ } |
+ base::FilePath device_policy_path = |
+ owner_key_path.DirName().AppendASCII("stub_device_policy"); |
emaxx
2017/02/22 17:24:34
nit: Maybe define a constant for this string? Or e
Sergey Poromov
2017/02/28 14:01:17
Done.
|
+ return GetFileContent(device_policy_path); |
+ } |
void RetrievePolicyForUser(const cryptohome::Identification& cryptohome_id, |
const RetrievePolicyCallback& callback) override { |
base::PostTaskWithTraitsAndReplyWithResult( |
@@ -864,6 +900,11 @@ class SessionManagerClientStubImpl : public SessionManagerClient { |
RetrievePolicyForUser(cryptohome::Identification::FromString(account_id), |
callback); |
} |
+ std::string BlockingRetrieveDeviceLocalAccountPolicy( |
+ const std::string& account_id) override { |
+ return BlockingRetrievePolicyForUser( |
+ cryptohome::Identification::FromString(account_id)); |
+ } |
void StoreDevicePolicy(const std::string& policy_blob, |
const StorePolicyCallback& callback) override { |
enterprise_management::PolicyFetchResponse response; |