X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.mvc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fmvc%2FUsersRolesController.java;h=1f9ae609be4037aa4e4b76c3e0142e5c8bccd6c5;hb=490d9907457c43acfa965e7979ce5974bc1ba6ca;hp=31d2d0581797c1377edd3361a34e34dbec7f1f1d;hpb=51cdd7c0883f0ccd756f0f5d0dc2ac97b327d25d;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/mvc/UsersRolesController.java b/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/mvc/UsersRolesController.java index 31d2d0581..1f9ae609b 100644 --- a/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/mvc/UsersRolesController.java +++ b/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/mvc/UsersRolesController.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.argeo.security.mvc; import java.io.Reader; @@ -7,10 +23,9 @@ import org.argeo.security.ArgeoSecurityService; import org.argeo.security.ArgeoUser; import org.argeo.security.SimpleArgeoUser; import org.argeo.server.BooleanAnswer; +import org.argeo.server.Deserializer; import org.argeo.server.ServerAnswer; -import org.argeo.server.ServerDeserializer; import org.argeo.server.mvc.MvcConstants; -import org.springframework.security.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; @@ -23,7 +38,7 @@ public class UsersRolesController implements MvcConstants { private ArgeoSecurityService securityService; - private ServerDeserializer userDeserializer = null; + private Deserializer userDeserializer = null; /* USER */ @@ -37,20 +52,6 @@ public class UsersRolesController implements MvcConstants { return argeoUser; } - // @RequestMapping("/login.security") - // @ModelAttribute(ANSWER_MODEL_KEY) - // public ArgeoUser login(@RequestParam("username") String username, - // @RequestParam("password") String password) { - // //SecurityContextHolder.getContext().getAuthentication(). - // return securityService.getSecurityDao().getCurrentUser(); - // } - // - // @RequestMapping("/logout.security") - // @ModelAttribute(ANSWER_MODEL_KEY) - // public ServerAnswer logout() { - // return ServerAnswer.ok("Logged out"); - // } - @RequestMapping("/getUsersList.security") @ModelAttribute(ANSWER_MODEL_KEY) public List getUsersList() { @@ -67,7 +68,8 @@ public class UsersRolesController implements MvcConstants { @RequestMapping("/createUser.security") @ModelAttribute(ANSWER_MODEL_KEY) public ArgeoUser createUser(Reader reader) { - ArgeoUser user = (ArgeoUser) userDeserializer.deserialize(reader); + ArgeoUser user = userDeserializer.deserialize(reader, + SimpleArgeoUser.class); // cleanUserBeforeCreate(user); securityService.newUser(user); return securityService.getSecurityDao().getUser(user.getUsername()); @@ -76,23 +78,23 @@ public class UsersRolesController implements MvcConstants { @RequestMapping("/updateUser.security") @ModelAttribute(ANSWER_MODEL_KEY) public ArgeoUser updateUser(Reader reader) { - ArgeoUser user = (ArgeoUser) userDeserializer.deserialize(reader); + ArgeoUser user = userDeserializer.deserialize(reader, + SimpleArgeoUser.class); securityService.updateUser(user); return securityService.getSecurityDao().getUser(user.getUsername()); } - /* - * @RequestMapping("/createUser2.security") - * - * @ModelAttribute(ANSWER_MODEL_KEY) public ArgeoUser - * createUser(@RequestParam("body") String body) { if (log.isDebugEnabled()) - * log.debug("body:\n" + body); StringReader reader = new - * StringReader(body); ArgeoUser user = null; try { user = (ArgeoUser) - * userDeserializer.deserialize(reader); } finally { - * IOUtils.closeQuietly(reader); } cleanUserBeforeCreate(user); - * securityService.newUser(user); return - * securityService.getSecurityDao().getUser(user.getUsername()); } - */ + @RequestMapping("/updateUserSelf.security") + @ModelAttribute(ANSWER_MODEL_KEY) + /** Will only update the user natures.*/ + public ArgeoUser updateUserSelf(Reader reader) { + ArgeoUser user = securityService.getSecurityDao().getCurrentUser(); + ArgeoUser userForNatures = userDeserializer.deserialize(reader, + SimpleArgeoUser.class); + user.updateUserNatures(userForNatures.getUserNatures()); + securityService.updateUser(user); + return securityService.getSecurityDao().getUser(user.getUsername()); + } @RequestMapping("/deleteUser.security") @ModelAttribute(ANSWER_MODEL_KEY) @@ -140,17 +142,13 @@ public class UsersRolesController implements MvcConstants { @RequestMapping("/updatePassword.security") @ModelAttribute(ANSWER_MODEL_KEY) public ServerAnswer updatePassword( - @RequestParam("password") String password, - @RequestParam("oldPassword") String oldPassword) { - securityService.getSecurityDao().updatePassword(oldPassword, password); + @RequestParam("oldPassword") String oldPassword, + @RequestParam("password") String password) { + securityService.updateCurrentUserPassword(oldPassword, password); return ServerAnswer.ok("Password updated"); } - // protected void cleanUserBeforeCreate(ArgeoUser user) { - // user.getUserNatures().clear(); - // } - - public void setUserDeserializer(ServerDeserializer userDeserializer) { + public void setUserDeserializer(Deserializer userDeserializer) { this.userDeserializer = userDeserializer; }