Ensure that added group members are unique

refs #4732
This commit is contained in:
Michael Friedrich 2018-05-09 17:15:44 +02:00
parent 6660a45c41
commit 88d99094bf
3 changed files with 18 additions and 12 deletions

View File

@ -37,9 +37,9 @@ INITIALIZE_ONCE([]() {
bool HostGroup::EvaluateObjectRule(const Host::Ptr& host, const ConfigItem::Ptr& group)
{
String group_name = group->GetName();
String groupName = group->GetName();
CONTEXT("Evaluating rule for group '" + group_name + "'");
CONTEXT("Evaluating rule for group '" + groupName + "'");
ScriptFrame frame(true);
if (group->GetScope())
@ -50,10 +50,12 @@ bool HostGroup::EvaluateObjectRule(const Host::Ptr& host, const ConfigItem::Ptr&
return false;
Log(LogDebug, "HostGroup")
<< "Assigning membership for group '" << group_name << "' to host '" << host->GetName() << "'";
<< "Assigning membership for group '" << groupName << "' to host '" << host->GetName() << "'";
Array::Ptr groups = host->GetGroups();
groups->Add(group_name);
if (groups && !groups->Contains(groupName))
groups->Add(groupName);
return true;
}

View File

@ -37,9 +37,9 @@ INITIALIZE_ONCE([]() {
bool ServiceGroup::EvaluateObjectRule(const Service::Ptr& service, const ConfigItem::Ptr& group)
{
String group_name = group->GetName();
String groupName = group->GetName();
CONTEXT("Evaluating rule for group '" + group_name + "'");
CONTEXT("Evaluating rule for group '" + groupName + "'");
Host::Ptr host = service->GetHost();
@ -53,10 +53,12 @@ bool ServiceGroup::EvaluateObjectRule(const Service::Ptr& service, const ConfigI
return false;
Log(LogDebug, "ServiceGroup")
<< "Assigning membership for group '" << group_name << "' to service '" << service->GetName() << "'";
<< "Assigning membership for group '" << groupName << "' to service '" << service->GetName() << "'";
Array::Ptr groups = service->GetGroups();
groups->Add(group_name);
if (groups && !groups->Contains(groupName))
groups->Add(groupName);
return true;
}

View File

@ -37,9 +37,9 @@ INITIALIZE_ONCE([]() {
bool UserGroup::EvaluateObjectRule(const User::Ptr& user, const ConfigItem::Ptr& group)
{
String group_name = group->GetName();
String groupName = group->GetName();
CONTEXT("Evaluating rule for group '" + group_name + "'");
CONTEXT("Evaluating rule for group '" + groupName + "'");
ScriptFrame frame(true);
if (group->GetScope())
@ -50,10 +50,12 @@ bool UserGroup::EvaluateObjectRule(const User::Ptr& user, const ConfigItem::Ptr&
return false;
Log(LogDebug, "UserGroup")
<< "Assigning membership for group '" << group_name << "' to user '" << user->GetName() << "'";
<< "Assigning membership for group '" << groupName << "' to user '" << user->GetName() << "'";
Array::Ptr groups = user->GetGroups();
groups->Add(group_name);
if (groups && !groups->Contains(groupName))
groups->Add(groupName);
return true;
}