/[H9]/trunk/tntnet/dynamic/adm_user_edit.ecpp
ViewVC logotype

Contents of /trunk/tntnet/dynamic/adm_user_edit.ecpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 190 - (show annotations) (download)
Fri Dec 7 16:34:10 2007 UTC (16 years, 5 months ago) by torben
File size: 5194 byte(s)
Add more space between main form and delete button

1 <%pre>
2 #include <tntdb/connect.h>
3 #include <tntdb/connection.h>
4 #include <tntdb/result.h>
5 #include <tntdb/row.h>
6
7 #include <sstream>
8
9 #include "common.h"
10 </%pre>
11
12 <%config>
13 dburl;
14 </%config>
15
16 <%session scope="global">
17 std::string userName;
18 bool isAdmin;
19 </%session>
20
21 <%args>
22 int id;
23 </%args>
24
25 <{
26 if (userName.size() == 0)
27 {
28 reply.setHeader("Location", "index");
29 return HTTP_MOVED_TEMPORARILY;
30 }
31 if (!isAdmin)
32 {
33 reply.setHeader("Location", "index");
34 return HTTP_MOVED_TEMPORARILY;
35 }
36 }>
37
38
39 <&header title="User Administration">
40 </&header>
41
42
43 <{
44
45 if (id == -1)
46 reply.out() << "<h2>New User</h2>\n";
47 else
48 reply.out() << "<h2>Modify User</h2>\n";
49
50 reply.out() << "<a href='adm_user_list'>";
51 reply.sout() << "<< back to user list";
52 reply.out() << "</a><br><br>";
53
54 tntdb::Connection conn = tntdb::connect(dburl);
55
56
57 std::string submit = qparam.param("submit");
58 if (submit == "1")
59 {
60 std::string form_username = trim(qparam.param("username"));
61 std::string form_realname = trim(qparam.param("realname"));
62 bool form_enabled = qparam.param("enabled") == "on";
63 bool form_useradmin= qparam.param("useradmin") == "on";
64 std::string form_password = trim(qparam.param("password"));
65
66
67 if (id == -1)
68 {
69 tntdb::Statement st = conn.prepare("INSERT INTO users (username,realname,password,enabled,useradmin) values (:v1, :v2, :v3, :v4, :v5)");
70 st.setString("v1", form_username).setString("v2", form_realname).setString("v3",form_password);
71 st.setBool("v4", form_enabled).setBool("v5", form_useradmin);
72 st.execute();
73
74
75 reply.setHeader("Location", "adm_user_list");
76 return HTTP_MOVED_TEMPORARILY;
77 }
78 else
79 {
80 tntdb::Statement st = conn.prepare("UPDATE users SET username=:v1, realname=:v2, enabled=:v3, useradmin=:v4 WHERE id=:v5");
81 st.setString("v1", form_username).setString("v2", form_realname).setBool("v3", form_enabled).setBool("v4", form_useradmin).setInt("v5", id);
82 st.execute();
83
84 if (form_password.size() > 0)
85 {
86 st = conn.prepare("UPDATE users SET password=:v1 WHERE id=:v2");
87 st.setString("v1", form_password).setInt("v2", id);
88 st.execute();
89 }
90
91 reply.out() << "<i>User updated</i><br>\n";
92 }
93
94 }
95
96
97 std::string username;
98 std::string realname;
99 bool enabled = true;
100 bool useradmin = false;
101
102 bool showForm = true;
103
104 if (id != -1)
105 {
106 std::stringstream query;
107 query << "SELECT username,realname,enabled,useradmin FROM users WHERE id = " << id;
108 tntdb::Result res = conn.select(query.str());
109
110 if (res.size() > 0)
111 {
112 username = res[0].getString(0);
113 realname = res[0].getString(1);
114 enabled = res[0].getBool(2);
115 useradmin = res[0].getBool(3);
116 }
117
118 else
119 {
120 reply.out() << "<p><i>Invalid user ID !</i></p>\n";
121 showForm = false;
122 }
123 }
124
125 if (showForm)
126 {
127 }>
128
129 <script type="text/javascript" language="JavaScript" src="/md5.js"></script>
130 <script type="text/javascript" language="JavaScript" src="/trim.js"></script>
131 <script type="text/javascript">
132
133 function validateForm()
134 {
135 document.userform.username.value = trim(document.userform.username.value);
136 document.userform.password.value = trim(document.userform.password.value);
137 document.userform.password2.value = trim(document.userform.password2.value);
138
139 if (document.userform.username.value == "")
140 {
141 alert('Username may not be blank');
142 document.userform.username.focus();
143 return false;
144 }
145
146 if (document.userform.id.value == "-1" && document.userform.password.value == "")
147 {
148 alert('You must enter a password when creating a new user');
149 document.userform.password.focus();
150 return false;
151 }
152
153 if (document.userform.password.value != "" && document.userform.password.value != document.userform.password2.value)
154 {
155 alert('You must enter the exact same password twice');
156 document.userform.password.focus();
157 return false;
158 }
159
160 if (document.userform.password.value != "")
161 {
162 document.userform.password.value = hex_md5(document.userform.password.value);
163 document.userform.password2.value = "";
164 }
165
166 return true;
167 }
168
169 </script>
170
171 <form method="post" action="adm_user_edit" name="userform" onsubmit="return validateForm();">
172 <table border="0">
173 <tr>
174 <td>Username: </td>
175 <td><input type="text" name="username" size="40" value="<$ username $>"></td>
176 </tr>
177 <tr>
178 <td>Realname: </td>
179 <td><input type="text" name="realname" size="40" value="<$ realname $>"></td>
180 </tr>
181 </tr>
182 <td>Enabled:</td>
183 <td><input type="checkbox" name="enabled" <$ enabled ? "checked" : "" $>></td>
184 </tr>
185 <tr>
186 <td>Useradmin:</td>
187 <td><input type="checkbox" name="useradmin" <$ useradmin ? "checked" : ""$>></td>
188 </tr>
189 <tr>
190 <td>Password:</td>
191 <td><input type="password" name="password" size="40"></td>
192 </tr>
193 <tr>
194 <td>Re-type password:</td>
195 <td><input type="password" name="password2" size="40"></td>
196 </tr>
197 <tr>
198 <td>&nbsp;</td>
199 <td><input type="submit"><input type="reset"></td>
200 </tr>
201 </table>
202 <input type="hidden" name="id" value="<$ id $>">
203 <input type="hidden" name="submit" value="1">
204 </form>
205
206 <{
207 if (id != -1)
208 {
209 }>
210
211 <br>
212 <br>
213 <form method="post" action="adm_user_delete" onsubmit="return confirm('Are you sure','Delete user');">
214 <input type="hidden" name="id" value="<$ id $>">
215 <input type="submit" value="Delete this user">
216 </form>
217
218 <{
219 } //fi (id != -1)
220 } //fi (showForm)
221 }>
222
223 <&footer>
224 </&footer>

  ViewVC Help
Powered by ViewVC 1.1.20