Chromium Code Reviews| 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; |