23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ |
24 */ |
25 |
25 |
26 package de.uapcore.lightpit.servlet |
26 package de.uapcore.lightpit.servlet |
27 |
27 |
28 import de.uapcore.lightpit.* |
28 import de.uapcore.lightpit.AbstractServlet |
|
29 import de.uapcore.lightpit.HttpRequest |
|
30 import de.uapcore.lightpit.ValidatedValue |
|
31 import de.uapcore.lightpit.ValidationError |
29 import de.uapcore.lightpit.dao.DataAccessObject |
32 import de.uapcore.lightpit.dao.DataAccessObject |
30 import de.uapcore.lightpit.entities.User |
33 import de.uapcore.lightpit.entities.User |
31 import de.uapcore.lightpit.viewmodel.UserEditView |
34 import de.uapcore.lightpit.viewmodel.UserEditView |
32 import de.uapcore.lightpit.viewmodel.UsersView |
35 import de.uapcore.lightpit.viewmodel.UsersView |
33 import javax.servlet.annotation.WebServlet |
36 import javax.servlet.annotation.WebServlet |
34 |
37 |
35 @WebServlet(urlPatterns = ["/users/*"]) |
38 @WebServlet(urlPatterns = ["/users/*"]) |
36 class UsersServlet : AbstractServlet(), LoggingTrait { |
39 class UsersServlet : AbstractServlet() { |
37 |
40 |
38 init { |
41 init { |
39 get("/", this::index) |
42 get("/", this::index) |
40 get("/-/create", this::create) |
43 get("/-/create", this::create) |
41 get("/%userid/edit", this::edit) |
44 get("/%userid/edit", this::edit) |
89 lastname = http.param("lastname") |
92 lastname = http.param("lastname") |
90 mail = http.param("mail") |
93 mail = http.param("mail") |
91 } |
94 } |
92 |
95 |
93 if (user.id > 0) { |
96 if (user.id > 0) { |
94 logger().info("Update user with id ${user.id}.") |
|
95 dao.updateUser(user) |
97 dao.updateUser(user) |
96 http.renderCommit("users/") |
98 http.renderCommit("users/") |
97 } else { |
99 } else { |
98 val errorMessages = mutableListOf<String>() |
100 val errorMessages = mutableListOf<String>() |
99 user.username = http.param("username", { |
101 user.username = http.param("username", { |
101 else if (dao.findUserByName(it) != null) ValidationError("validation.username.unique") |
103 else if (dao.findUserByName(it) != null) ValidationError("validation.username.unique") |
102 else ValidatedValue(it) |
104 else ValidatedValue(it) |
103 }, "", errorMessages) |
105 }, "", errorMessages) |
104 |
106 |
105 if (errorMessages.isEmpty()) { |
107 if (errorMessages.isEmpty()) { |
106 logger().info("Insert user ${user.username}.") |
|
107 dao.insertUser(user) |
108 dao.insertUser(user) |
108 http.renderCommit("users/") |
109 http.renderCommit("users/") |
109 } else { |
110 } else { |
110 http.view = UserEditView(user).apply { this.errorMessages = errorMessages } |
111 http.view = UserEditView(user).apply { this.errorMessages = errorMessages } |
111 http.render(form) |
112 http.render(form) |