DB IDO: Fix user notification type filters

fixes #10766
This commit is contained in:
Michael Friedrich 2016-03-15 14:41:24 +01:00
parent ed4378e521
commit 307498e71f
1 changed files with 14 additions and 10 deletions

View File

@ -49,16 +49,20 @@ Dictionary::Ptr UserDbObject::GetConfigFields(void) const
fields->Set("host_notifications_enabled", user->GetEnableNotifications());
fields->Set("service_notifications_enabled", user->GetEnableNotifications());
fields->Set("can_submit_commands", 1);
fields->Set("notify_service_recovery", (user->GetTypeFilter() & NotificationRecovery) != 0);
fields->Set("notify_service_warning", (user->GetStateFilter() & StateFilterWarning) != 0);
fields->Set("notify_service_unknown", (user->GetStateFilter() & StateFilterUnknown) != 0);
fields->Set("notify_service_critical", (user->GetStateFilter() & StateFilterCritical) != 0);
fields->Set("notify_service_flapping", (user->GetTypeFilter() & (NotificationFlappingStart | NotificationFlappingEnd)) != 0);
fields->Set("notify_service_downtime", (user->GetTypeFilter() & (NotificationDowntimeStart | NotificationDowntimeEnd | NotificationDowntimeRemoved)) != 0);
fields->Set("notify_host_recovery", (user->GetTypeFilter() & NotificationRecovery) != 0);
fields->Set("notify_host_down", (user->GetStateFilter() & StateFilterDown) != 0);
fields->Set("notify_host_flapping", (user->GetTypeFilter() & (NotificationFlappingStart | NotificationFlappingEnd)) != 0);
fields->Set("notify_host_downtime", (user->GetTypeFilter() & (NotificationDowntimeStart | NotificationDowntimeEnd | NotificationDowntimeRemoved)) != 0);
int typeFilter = user->GetTypeFilter();
int stateFilter = user->GetStateFilter();
fields->Set("notify_service_recovery", (typeFilter & (1 << NotificationRecovery)) != 0);
fields->Set("notify_service_warning", (stateFilter & StateFilterWarning) != 0);
fields->Set("notify_service_unknown", (stateFilter & StateFilterUnknown) != 0);
fields->Set("notify_service_critical", (stateFilter & StateFilterCritical) != 0);
fields->Set("notify_service_flapping", (typeFilter & ((1 << NotificationFlappingStart) | (1 << NotificationFlappingEnd))) != 0);
fields->Set("notify_service_downtime", (typeFilter & ((1 << NotificationDowntimeStart) | (1 << NotificationDowntimeEnd) | (1 << NotificationDowntimeRemoved))) != 0);
fields->Set("notify_host_recovery", (typeFilter & (1 << NotificationRecovery)) != 0);
fields->Set("notify_host_down", (stateFilter & StateFilterDown) != 0);
fields->Set("notify_host_flapping", (typeFilter & ((1 << NotificationFlappingStart) | (1 << NotificationFlappingEnd))) != 0);
fields->Set("notify_host_downtime", (typeFilter & ((1 << NotificationDowntimeStart) | (1 << NotificationDowntimeEnd) | (1 << NotificationDowntimeRemoved))) != 0);
return fields;
}