Wtx ~ Wt Extension Library
WtxLib
Template.h
1 /**************************************************************************
2 ###########################################################################
3 ##
4 ## $SHOWOFFDB_BEGIN_LICENSE$
5 ## Copyright (C) 2011 Lorimark Solutions, LLC and/or its subsidiary(-ies).
6 ## All rights reserved.
7 ## Contact: Lorimark Solutions, LLC (info@showoff-db.org)
8 ##
9 ## This file is part of the Showoff Database Application Framework.
10 ##
11 ## Commercial Usage
12 ## Licensees holding valid ShowoffDB Commercial licenses may use this file in
13 ## accordance with the ShowoffDB Commercial License Agreement provided with the
14 ## Software or, alternatively, in accordance with the terms contained in
15 ## a written agreement between you and Lorimark Solutions, LLC.
16 ##
17 ## GNU Lesser General Public License Usage
18 ## Alternatively, this file may be used under the terms of the GNU Lesser
19 ## General Public License version 2.1 as published by the Free Software
20 ## Foundation and appearing in the file LICENSE.LGPL included in the
21 ## packaging of this file. Please review the following information to
22 ## ensure the GNU Lesser General Public License version 2.1 requirements
23 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ##
25 ## In addition, as a special exception, Lorimark Solutions, LLC gives
26 ## you certain additional rights. These rights are described in the
27 ## Lorimark Solutions, LLC ShowoffDB LGPL Exception version 1.0, included in
28 ## the file LGPL_EXCEPTION.txt in this package.
29 ##
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
37 ##
38 ## If you have questions regarding the use of this file, please contact
39 ## Lorimark Solutions, LLC at info@showoff-db.org.
40 ## $SHOWOFFDB_END_LICENSE$
41 ##
42 #############################################################################
43 ****************************************************************************/
44 
45 
46 #ifndef __WTX_SYS_USER_TEMPLATE_H_234e0174_6b7d_11e8_b503_fb1ef3651ec0__
47 #define __WTX_SYS_USER_TEMPLATE_H_234e0174_6b7d_11e8_b503_fb1ef3651ec0__
48 
49 #include <Wt/Auth/Dbo/AuthInfo.h>
50 
51 #include <Wtx/Dbo/PermissionItemTpl.h>
52 #include <Wtx/Sys/Group/Item.h>
53 #include "Definition.h"
54 
55 namespace Wtx {
56  namespace Sys {
57  namespace User {
58 
59 template <class C> class Template
60 : public Wtx::Dbo::BaseItemTpl<C>
61 {
62  public:
63 
64  Template( const std::string & key = "", const std::string & cfy = "" )
65  : Wtx::Dbo::BaseItemTpl<C>( key, cfy )
66  {
67  }
68 
69  virtual ~Template()
70  {
71  }
72 
73  static Definition & TableDef()
74  {
75  return C::TableDef();
76  }
77 
78  Wtx::Dbo::Field<std::string> & firstName() { return m_firstName; }
79  const Wtx::Dbo::Field<std::string> & firstName() const { return m_firstName; }
80 
81  Wtx::Dbo::Field<std::string> & lastName() { return m_lastName; }
82  const Wtx::Dbo::Field<std::string> & lastName() const { return m_lastName; }
83 
84  Wtx::Dbo::Field<std::string> & middleName() { return m_middleName; }
85  const Wtx::Dbo::Field<std::string> & middleName() const { return m_middleName; }
86 
87  Wtx::Dbo::Field<std::string> & abbreviation() { return m_abbreviation; }
88  const Wtx::Dbo::Field<std::string> & abbreviation() const { return m_abbreviation; }
89 
90  Wtx::Dbo::Field<std::string> & alias() { return m_alias; }
91  const Wtx::Dbo::Field<std::string> & alias() const { return m_alias; }
92 
93  Wtx::Dbo::Field<std::string> & phone() { return m_phone; }
94  const Wtx::Dbo::Field<std::string> & phone() const { return m_phone; }
95 
96  Wtx::Dbo::Field<std::string> & mobile() { return m_mobile; }
97  const Wtx::Dbo::Field<std::string> & mobile() const { return m_mobile; }
98 
99  Wtx::Dbo::Field<std::string> & email() { return m_email; }
100  const Wtx::Dbo::Field<std::string> & email() const { return m_email; }
101 
102  Wtx::Dbo::Field<std::string> & alert() { return m_alert; }
103  const Wtx::Dbo::Field<std::string> & alert() const { return m_alert; }
104 
105  Wtx::Dbo::Field<std::string> & groups() { return m_groups; }
106  const Wtx::Dbo::Field<std::string> & groups() const { return m_groups; }
107 
108  Wtx::Dbo::Field<std::string> & storage() { return m_storage; }
109  const Wtx::Dbo::Field<std::string> & storage() const { return m_storage; }
110 
111  Wtx::Dbo::Field<std::string> & notes() { return m_notes; }
112  const Wtx::Dbo::Field<std::string> & notes() const { return m_notes; }
113 
114  Wtx::Dbo::Field<std::string> & nickName() { return m_nickName; }
115  const Wtx::Dbo::Field<std::string> & nickName() const { return m_nickName; }
116 
117  Wt::Dbo::collection< Wt::Dbo::ptr<Wtx::Sys::Group::Item> > & inGroup() { return m_inGroup; }
118  const Wt::Dbo::collection< Wt::Dbo::ptr<Wtx::Sys::Group::Item> > & inGroup() const { return m_inGroup; }
119 
120 #ifdef WTX_USING_USERAUTH
121  Wt::Dbo::weak_ptr< Wt::Auth::Dbo::AuthInfo<C> > authInfo() { return m_authInfo; }
122  const Wt::Dbo::weak_ptr< Wt::Auth::Dbo::AuthInfo<C> > authInfo() const { return m_authInfo; }
123 #endif
124 
125  template<class Action> void persist( Action &a )
126  {
128  m_firstName .persist( a, &TableDef(). FirstNameFieldDef );
129  m_lastName .persist( a, &TableDef(). LastNameFieldDef );
130  m_middleName .persist( a, &TableDef(). MiddleNameFieldDef );
131  m_nickName .persist( a, &TableDef(). NicknameFieldDef );
132  m_abbreviation .persist( a, &TableDef(). AbbreviationFieldDef );
133  m_alias .persist( a, &TableDef(). AliasFieldDef );
134  m_phone .persist( a, &TableDef(). PhoneFieldDef );
135  m_mobile .persist( a, &TableDef(). MobileFieldDef );
136  m_email .persist( a, &TableDef(). EmailFieldDef );
137  m_alert .persist( a, &TableDef(). AlertFieldDef );
138  m_groups .persist( a, &TableDef(). GroupsFieldDef );
139  m_storage .persist( a, &TableDef(). StorageFieldDef );
140  m_notes .persist( a, &TableDef(). NotesFieldDef );
141 
142 #ifdef WTX_USING_USERAUTH
143  Wt::Dbo::hasOne( a, m_authInfo, "user" );
144 #endif
145 
146  Wt::Dbo::hasMany( a, m_inGroup, Wt::Dbo::RelationType::ManyToMany, "zcUserGroup" );
147 
148  }
149 
150  private:
151 
152  Wtx::Dbo::Field<std::string> m_firstName;
153  Wtx::Dbo::Field<std::string> m_lastName;
154  Wtx::Dbo::Field<std::string> m_middleName;
155  Wtx::Dbo::Field<std::string> m_nickName;
156  Wtx::Dbo::Field<std::string> m_abbreviation;
165  Wt::Dbo::collection< Wt::Dbo::ptr<Wtx::Sys::Group::Item> > m_inGroup;
166 
167 #ifdef WTX_USING_USERAUTH
168  Wt::Dbo::weak_ptr< Wt::Auth::Dbo::AuthInfo<C> > m_authInfo;
169 #endif
170 
171 };
172 
173  } // endnamespace User
174  } // endnamespace Sys
175 } // endnamespace Wtx
176 
177 
178 #endif
179 
witty extension library
Definition: Activity.h:51