]> git.argeo.org Git - lgpl/argeo-commons.git/blob - UsersRolesController.java
0366096aa6fcfa35a2d90fcc06b371c6f672d4b3
[lgpl/argeo-commons.git] / UsersRolesController.java
1 package org.argeo.security.mvc;
2
3 import java.io.Reader;
4 import java.util.List;
5
6 import org.argeo.security.ArgeoSecurityService;
7 import org.argeo.security.ArgeoUser;
8 import org.argeo.security.SimpleArgeoUser;
9 import org.argeo.server.BooleanAnswer;
10 import org.argeo.server.Deserializer;
11 import org.argeo.server.ServerAnswer;
12 import org.argeo.server.mvc.MvcConstants;
13 import org.springframework.stereotype.Controller;
14 import org.springframework.web.bind.annotation.ModelAttribute;
15 import org.springframework.web.bind.annotation.RequestMapping;
16 import org.springframework.web.bind.annotation.RequestParam;
17
18 @Controller
19 public class UsersRolesController implements MvcConstants {
20 // private final static Log log = LogFactory
21 // .getLog(UsersRolesController.class);
22
23 private ArgeoSecurityService securityService;
24
25 private Deserializer userDeserializer = null;
26
27 /* USER */
28
29 @RequestMapping("/getCredentials.ria")
30 @ModelAttribute(ANSWER_MODEL_KEY)
31 public ArgeoUser getCredentials() {
32 ArgeoUser argeoUser = securityService.getSecurityDao().getCurrentUser();
33 if (argeoUser == null)
34 return new SimpleArgeoUser();
35 else
36 return argeoUser;
37 }
38
39 @RequestMapping("/getUsersList.security")
40 @ModelAttribute(ANSWER_MODEL_KEY)
41 public List<ArgeoUser> getUsersList() {
42 return securityService.getSecurityDao().listUsers();
43 }
44
45 @RequestMapping("/userExists.security")
46 @ModelAttribute(ANSWER_MODEL_KEY)
47 public BooleanAnswer userExists(@RequestParam("username") String username) {
48 return new BooleanAnswer(securityService.getSecurityDao().userExists(
49 username));
50 }
51
52 @RequestMapping("/createUser.security")
53 @ModelAttribute(ANSWER_MODEL_KEY)
54 public ArgeoUser createUser(Reader reader) {
55 ArgeoUser user = userDeserializer.deserialize(reader,
56 SimpleArgeoUser.class);
57 // cleanUserBeforeCreate(user);
58 securityService.newUser(user);
59 return securityService.getSecurityDao().getUser(user.getUsername());
60 }
61
62 @RequestMapping("/updateUser.security")
63 @ModelAttribute(ANSWER_MODEL_KEY)
64 public ArgeoUser updateUser(Reader reader) {
65 ArgeoUser user = userDeserializer.deserialize(reader,
66 SimpleArgeoUser.class);
67 securityService.updateUser(user);
68 return securityService.getSecurityDao().getUser(user.getUsername());
69 }
70
71 @RequestMapping("/updateUserSelf.security")
72 @ModelAttribute(ANSWER_MODEL_KEY)
73 /** Will only update the user natures.*/
74 public ArgeoUser updateUserSelf(Reader reader) {
75 ArgeoUser user = securityService.getSecurityDao().getCurrentUser();
76 ArgeoUser userForNatures = userDeserializer.deserialize(reader,
77 SimpleArgeoUser.class);
78 user.updateUserNatures(userForNatures.getUserNatures());
79 securityService.updateUser(user);
80 return securityService.getSecurityDao().getUser(user.getUsername());
81 }
82
83 @RequestMapping("/deleteUser.security")
84 @ModelAttribute(ANSWER_MODEL_KEY)
85 public ServerAnswer deleteUser(@RequestParam("username") String username) {
86 securityService.getSecurityDao().delete(username);
87 return ServerAnswer.ok("User " + username + " deleted");
88 }
89
90 @RequestMapping("/getUserDetails.security")
91 @ModelAttribute(ANSWER_MODEL_KEY)
92 public ArgeoUser getUserDetails(@RequestParam("username") String username) {
93 return securityService.getSecurityDao().getUser(username);
94 }
95
96 /* ROLE */
97 @RequestMapping("/getRolesList.security")
98 @ModelAttribute(ANSWER_MODEL_KEY)
99 public List<String> getEditableRolesList() {
100 return securityService.getSecurityDao().listEditableRoles();
101 }
102
103 @RequestMapping("/createRole.security")
104 @ModelAttribute(ANSWER_MODEL_KEY)
105 public ServerAnswer createRole(@RequestParam("role") String role) {
106 securityService.newRole(role);
107 return ServerAnswer.ok("Role " + role + " created");
108 }
109
110 @RequestMapping("/deleteRole.security")
111 @ModelAttribute(ANSWER_MODEL_KEY)
112 public ServerAnswer deleteRole(@RequestParam("role") String role) {
113 securityService.getSecurityDao().deleteRole(role);
114 return ServerAnswer.ok("Role " + role + " deleted");
115 }
116
117 @RequestMapping("/updateUserPassword.security")
118 @ModelAttribute(ANSWER_MODEL_KEY)
119 public ServerAnswer updateUserPassword(
120 @RequestParam("username") String username,
121 @RequestParam("password") String password) {
122 securityService.updateUserPassword(username, password);
123 return ServerAnswer.ok("Password updated for user " + username);
124 }
125
126 @RequestMapping("/updatePassword.security")
127 @ModelAttribute(ANSWER_MODEL_KEY)
128 public ServerAnswer updatePassword(
129 @RequestParam("oldPassword") String oldPassword,
130 @RequestParam("password") String password) {
131 securityService.updateCurrentUserPassword(oldPassword, password);
132 return ServerAnswer.ok("Password updated");
133 }
134
135 public void setUserDeserializer(Deserializer userDeserializer) {
136 this.userDeserializer = userDeserializer;
137 }
138
139 public void setSecurityService(ArgeoSecurityService securityService) {
140 this.securityService = securityService;
141 }
142
143 }