REGISTER_TYPE(User);
REGISTER_SCRIPTFUNCTION(ValidateUserFilters, &User::ValidateFilters);
+boost::signals2::signal<void (const User::Ptr&, bool, const MessageOrigin&)> User::OnEnableNotificationsChanged;
+
void User::OnConfigLoaded(void)
{
SetTypeFilter(FilterArrayToInt(GetTypes(), ~0));
}
}
-
void User::Stop(void)
{
DynamicObject::Stop();
OnVarsChanged(GetSelf(), origin);
}
}
+
+bool User::GetEnableNotifications(void) const
+{
+ if (!GetOverrideEnableNotifications().IsEmpty())
+ return GetOverrideEnableNotifications();
+ else
+ return GetEnableNotificationsRaw();
+}
+
+void User::SetEnableNotifications(bool enabled, const MessageOrigin& origin)
+{
+ SetOverrideEnableNotifications(enabled);
+
+ OnEnableNotificationsChanged(GetSelf(), enabled, origin);
+}
+
static void ValidateFilters(const String& location, const Dictionary::Ptr& attrs);
+ bool GetEnableNotifications(void) const;
+ void SetEnableNotifications(bool enabled, const MessageOrigin& origin = MessageOrigin());
+
int GetModifiedAttributes(void) const;
void SetModifiedAttributes(int flags, const MessageOrigin& origin = MessageOrigin());
+ static boost::signals2::signal<void (const User::Ptr&, bool, const MessageOrigin&)> OnEnableNotificationsChanged;
+
protected:
virtual void Stop(void);
[config] String email;
[config] String pager;
- [state] bool enable_notifications {
+ [config] bool enable_notifications (EnableNotificationsRaw) {
default {{{ return true; }}}
};
+
+ [state] Value override_enable_notifications;
[state] double last_notification;
};