]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/user.ti
Hide internal attributes in the API
[icinga2] / lib / icinga / user.ti
index 977d389ad22a505f7e4871f3cc3646812ba6cb0f..0443eca30d95b19087aa37b4fdf06792cd443e26 100644 (file)
@@ -1,24 +1,62 @@
-#include "base/dynamicobject.h"
+/******************************************************************************
+ * Icinga 2                                                                   *
+ * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org)    *
+ *                                                                            *
+ * This program is free software; you can redistribute it and/or              *
+ * modify it under the terms of the GNU General Public License                *
+ * as published by the Free Software Foundation; either version 2             *
+ * of the License, or (at your option) any later version.                     *
+ *                                                                            *
+ * This program is distributed in the hope that it will be useful,            *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
+ * GNU General Public License for more details.                               *
+ *                                                                            *
+ * You should have received a copy of the GNU General Public License          *
+ * along with this program; if not, write to the Free Software Foundation     *
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
+ ******************************************************************************/
+
+#include "icinga/customvarobject.hpp"
+#include "base/array.hpp"
+
+library icinga;
 
 namespace icinga
 {
 
-class User : DynamicObject
+class User : CustomVarObject
 {
        [config] String display_name {
-               default {{{ return GetName(); }}}
+               get {{{
+                       if (m_DisplayName.IsEmpty())
+                               return GetName();
+                       else
+                               return m_DisplayName;
+               }}}
        };
-       [config] Dictionary::Ptr macros;
-       [config] Array::Ptr groups;
-       [config] String notification_period (NotificationPeriodRaw);
-       [config] int notification_type_filter {
-               default {{{ return ~(int)0; }}}
+       [config, no_user_modify] array(name(UserGroup)) groups {
+               default {{{ return new Array(); }}}
        };
-       [config] int notification_state_filter {
-               default {{{ return ~(int)0; }}}
+       [config, navigation] name(TimePeriod) period (PeriodRaw) {
+               navigate {{{
+                       return TimePeriod::GetByName(GetPeriodRaw());
+               }}}
        };
-       [state] bool enable_notifications;
+
+       [config] array(double) types;
+       int type_filter_real (TypeFilter);
+       [config] array(double) states;
+       int state_filter_real (StateFilter);
+
+       [config] String email;
+       [config] String pager;
+
+       [config] bool enable_notifications {
+               default {{{ return true; }}}
+       };
+
        [state] double last_notification;
 };
 
-}
\ No newline at end of file
+}