14 qRegisterMetaType<DBT_USERS>();
15 connect(
this, SIGNAL(saveUser(
DBT_USERS)),
17 Qt::QueuedConnection);
18 connect(
this, SIGNAL(deleteUser(QString)),
19 Static::db, SLOT(deleteUser(QString)),
20 Qt::QueuedConnection);
24 QByteArray action = request.getParameter(
"action");
25 if (action.startsWith(
"add")) {
27 }
else if(action.startsWith(
"edit")) {
29 }
else if(action.startsWith(
"delete")) {
35 QList<DBT_USERS> users = Static::db->
users();
36 write(QString(
"<h2>%1</h2>\n").arg(tr(
"Users")));
37 write(QString(
"<a href=\"/users?action=add\">%1</a>\n").arg(tr(
"Add an user")));
39 write(QString(
"<tr>"));
40 write(QString(
"<th></th>"));
41 write(QString(
"<th>%1</th>").arg(
"Username"));
42 write(QString(
"<th>%1</th>").arg(
"Can acess data"));
43 write(QString(
"<th>%1</th>").arg(
"Can change settings"));
44 write(QString(
"</tr>"));
46 QList<DBT_USERS>::const_iterator i;
47 for(i = users.constBegin(); i != users.constEnd(); ++i) {
49 write(QString(
"<tr>"));
51 "<a href=\"/users?action=edit&user=%1\">%2</a> "
52 "<a href=\"/users?action=delete&user=%1\">%3</a>"
58 write(QString(
"<td>%1</td>").arg( (l.user) ));
59 write(QString(
"<td>%1</td>").arg( (l.can_access_data) ?
"✓" :
""));
60 write(QString(
"<td>%2</td>").arg( (l.can_change_settings) ?
"✓" :
""));
61 write(QString(
"</td>\n"));
69 s += QString(
"<input type=\"hidden\" name=\"id\" value=\"%1\" />\n").arg(user.user);
71 s += QString(
" <td><label for=\"user\">%1</td>").arg(tr(
"Username"));
72 s += QString(
" <td><input type=\"text\" name=\"user\" id=\"user\" value=\"%1\"></td>").arg(user.user);
73 s += QString(
" </tr>");
76 s += QString(
" <td><label for=\"password\">%1</td>").arg(tr(
"Password"));
77 s += QString(
" <td><input type=\"text\" name=\"password\" id=\"password\"></td>");
78 s += QString(
" </tr>");
81 s += QString(
" <td><label for=\"can_access_data\">%1</td>").arg(tr(
"Can access data"));
82 s += QString(
" <td><input type=\"checkbox\" name=\"can_access_data\" id=\"can_access_data\" %1></td>").arg((user.can_access_data) ?
"checked=\"checked\"" :
"");
83 s += QString(
" </tr>");
86 s += QString(
" <td><label for=\"can_change_settings\">%1</td>").arg(tr(
"Can change settings"));
87 s += QString(
" <td><input type=\"checkbox\" name=\"can_change_settings\" id=\"can_change_settings\" %1></td>").arg((user.can_change_settings) ?
"checked=\"checked\"" :
"");
88 s += QString(
" </tr>");
94 user.id = request.getParameter(
"id");
95 user.user = request.getParameter(
"user");
96 user.password = request.getParameter(
"password");
97 user.can_access_data = !request.getParameter(
"can_access_data").isEmpty();
98 user.can_change_settings = !request.getParameter(
"can_change_settings").isEmpty();
106 QByteArray action = request.getParameter(
"action");
107 write(QString(
"<h3>%1</h3>\n").arg(tr(
"Add an user")));
108 write(
"<form method=\"post\">\n"
109 "<input type=\"hidden\" name=\"action\" value=\"add2\" />\n");
112 write(
"<table class=\"formTable\">");
115 write(QString(
"<input type=\"submit\" value=\"%1\">\n"
116 "</form>\n").arg(tr(
"Add")));
117 if (action ==
"add2") {
121 QString location = QString(
"/users?message=%1").arg(percentEncode(tr(
"User added.")));
131 QByteArray action = request.getParameter(
"action");
134 write(QString(
"<h3>%1</h3>\n").arg(tr(
"Edit an user")));
135 write(
"<form method=\"post\">\n"
136 "<input type=\"hidden\" name=\"action\" value=\"edit2\" />\n");
137 if (action ==
"edit") {
138 QByteArray userid = request.getParameter(
"user");
139 if(userid.isEmpty()) {
140 redirect(QString(
"/user?message=%1").arg(percentEncode(tr(
"Error: Invalid user ID."))));
143 QList<DBT_USERS> users = Static::db->
users(userid);
145 redirect(QString(
"/users?message=%1").arg(percentEncode(tr(
"Error: no such user found."))));
148 write(
"<table class=\"formTable\">");
153 write(
"<table class=\"formTable\">");
157 write(QString(
"<input type=\"submit\" value=\"%1\"></form>\n").arg(tr(
"Save")));
158 if (action ==
"edit2") {
160 if(!user.id.isEmpty()) {
162 QString location = QString(
"/users?message=%1").arg(percentEncode(tr(
"User edited.")));
165 write(QString(
"<p>%1</p>").arg(tr(
"Error: User definition invalid.")));
174 write(QString(
"<h3>%1</h3>\n").arg(tr(
"Delete an user ")));
176 QByteArray userid = request.getParameter(
"user");
177 if(!userid.isEmpty()) {
178 emit deleteUser(userid);
179 location = QString(
"/users?message=%1").arg(percentEncode(tr(
"User deleted.")));
181 location = QString(
"/users?message=%1").arg(percentEncode(tr(
"Error: Invalid user ID. User not deleted.")));
QList< DBT_USERS > users(const QString &user=QString())
Returs list of users or selected user.
static void readForm(DBT_USERS &user, HttpRequest &request)
void actionAdd(HttpRequest &request)
void actionEdit(HttpRequest &request)
void actionDelete(HttpRequest &request)
static QString getEditFormContents(const DBT_USERS &line=DBT_USERS())
Class describing database table USERS.
void servicePrivate(HttpRequest &request)