1 package org
.argeo
.security
.mvc
;
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
;
19 public class UsersRolesController
implements MvcConstants
{
20 // private final static Log log = LogFactory
21 // .getLog(UsersRolesController.class);
23 private ArgeoSecurityService securityService
;
25 private Deserializer userDeserializer
= null;
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();
39 @RequestMapping("/getUsersList.security")
40 @ModelAttribute(ANSWER_MODEL_KEY
)
41 public List
<ArgeoUser
> getUsersList() {
42 return securityService
.getSecurityDao().listUsers();
45 @RequestMapping("/userExists.security")
46 @ModelAttribute(ANSWER_MODEL_KEY
)
47 public BooleanAnswer
userExists(@RequestParam("username") String username
) {
48 return new BooleanAnswer(securityService
.getSecurityDao().userExists(
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());
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());
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());
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");
90 @RequestMapping("/getUserDetails.security")
91 @ModelAttribute(ANSWER_MODEL_KEY
)
92 public ArgeoUser
getUserDetails(@RequestParam("username") String username
) {
93 return securityService
.getSecurityDao().getUser(username
);
97 @RequestMapping("/getRolesList.security")
98 @ModelAttribute(ANSWER_MODEL_KEY
)
99 public List
<String
> getEditableRolesList() {
100 return securityService
.getSecurityDao().listEditableRoles();
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");
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");
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
);
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");
135 public void setUserDeserializer(Deserializer userDeserializer
) {
136 this.userDeserializer
= userDeserializer
;
139 public void setSecurityService(ArgeoSecurityService securityService
) {
140 this.securityService
= securityService
;