Commit 55abdc7d authored by phweiss's avatar phweiss Committed by Commit bot

Make GetPolicies() return null for unmanaged users

BUG=b/28338159

Review-Url: https://codereview.chromium.org/1923363002
Cr-Commit-Position: refs/heads/master@{#390329}
parent 0542e380
......@@ -152,6 +152,10 @@ ArcPolicyBridge::~ArcPolicyBridge() {
arc_bridge_service()->RemoveObserver(this);
}
void ArcPolicyBridge::OverrideIsManagedForTesting(bool is_managed) {
is_managed_ = is_managed;
}
void ArcPolicyBridge::OnPolicyInstanceReady() {
VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady";
if (policy_service_ == nullptr) {
......@@ -177,6 +181,10 @@ void ArcPolicyBridge::OnPolicyInstanceClosed() {
void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) {
VLOG(1) << "ArcPolicyBridge::GetPolicies";
if (!is_managed_) {
callback.Run(mojo::String(nullptr));
return;
}
const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME,
std::string());
const policy::PolicyMap& policy_map =
......@@ -198,9 +206,10 @@ void ArcPolicyBridge::InitializePolicyService() {
user_manager::UserManager::Get()->GetPrimaryUser();
Profile* const profile =
chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user);
policy_service_ =
policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile)
->policy_service();
auto profile_policy_connector =
policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile);
policy_service_ = profile_policy_connector->policy_service();
is_managed_ = profile_policy_connector->IsManaged();
}
} // namespace arc
......@@ -27,6 +27,8 @@ class ArcPolicyBridge : public ArcService,
policy::PolicyService* policy_service);
~ArcPolicyBridge() override;
void OverrideIsManagedForTesting(bool is_managed);
// ArcBridgeService::Observer overrides.
void OnPolicyInstanceReady() override;
void OnPolicyInstanceClosed() override;
......@@ -44,6 +46,7 @@ class ArcPolicyBridge : public ArcService,
mojo::Binding<PolicyHost> binding_;
policy::PolicyService* policy_service_ = nullptr;
bool is_managed_ = false;
DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridge);
};
......
......@@ -30,6 +30,7 @@ class ArcPolicyBridgeTest : public testing::Test {
bridge_service_.reset(new FakeArcBridgeService());
policy_bridge_.reset(
new ArcPolicyBridge(bridge_service_.get(), &policy_service_));
policy_bridge_->OverrideIsManagedForTesting(true);
EXPECT_CALL(policy_service_,
GetPolicies(policy::PolicyNamespace(
......@@ -70,6 +71,11 @@ class ArcPolicyBridgeTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest);
};
TEST_F(ArcPolicyBridgeTest, UnmanagedTest) {
policy_bridge()->OverrideIsManagedForTesting(false);
policy_bridge()->GetPolicies(PolicyStringCallback(nullptr));
}
TEST_F(ArcPolicyBridgeTest, EmptyPolicyTest) {
// No policy is set, result should be empty.
policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
......
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