Skip to content

Commit fa9f010

Browse files
committed
#100 Edit user profiles
1 parent a30cd08 commit fa9f010

File tree

5 files changed

+67
-30
lines changed

5 files changed

+67
-30
lines changed

admin/src/main/java/org/dcsc/admin/constants/ViewNames.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class ViewNames {
88
public static final String ADMIN_EVENT_FORM = "admin/event";
99
public static final String ADMIN_EVENT_EDIT = "admin/event-edit";
1010
public static final String ADMIN_PROFILE = "admin/profile";
11-
public static final String ADMIN_PROFILE_CREATE = "admin/user-create";
11+
public static final String ADMIN_USER_CREATE = "admin/user-create";
1212
public static final String ADMIN_PROFILE_EDIT = "admin/profile-edit";
1313
public static final String LOGIN = "admin/login";
1414
}

admin/src/main/java/org/dcsc/admin/controllers/AdminDirectoryController.java

+33
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,54 @@
22

33
import org.dcsc.admin.constants.AttributeNames;
44
import org.dcsc.admin.constants.ViewNames;
5+
import org.dcsc.admin.profile.ProfileCreateForm;
6+
import org.dcsc.admin.user.AdminUserService;
7+
import org.dcsc.core.activity.ActivityService;
58
import org.dcsc.core.user.DcscUserService;
9+
import org.dcsc.core.user.permission.RolePermissionService;
10+
import org.dcsc.core.user.role.DcscRoleService;
611
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.security.access.prepost.PreAuthorize;
713
import org.springframework.stereotype.Controller;
814
import org.springframework.ui.Model;
15+
import org.springframework.web.bind.annotation.PathVariable;
916
import org.springframework.web.bind.annotation.RequestMapping;
17+
import org.springframework.web.bind.annotation.RequestMethod;
1018

1119
@Controller
1220
public class AdminDirectoryController {
21+
@Autowired
22+
private ActivityService activityService;
1323
@Autowired
1424
private DcscUserService userService;
25+
@Autowired
26+
private RolePermissionService rolePermissionService;
27+
@Autowired
28+
private AdminUserService adminUserService;
29+
@Autowired
30+
private DcscRoleService roleService;
1531

1632
@RequestMapping("/admin/directory")
1733
public String directoryPage(Model model) {
1834
model.addAttribute(AttributeNames.USERS, userService.getAllUsers());
1935

2036
return ViewNames.ADMIN_DIRECTORY;
2137
}
38+
39+
@RequestMapping(value = "/admin/user/create", method = RequestMethod.GET)
40+
@PreAuthorize("hasPermission('user','create')")
41+
public String userCreatePage(Model model) {
42+
model.addAttribute("form", new ProfileCreateForm());
43+
model.addAttribute("roles", roleService.getAllRoles());
44+
45+
return ViewNames.ADMIN_USER_CREATE;
46+
}
47+
48+
@RequestMapping(value = "/admin/user/{user_id}/edit", method = RequestMethod.GET)
49+
public String userEditPage(@PathVariable("user_id") long id, Model model) {
50+
model.addAttribute("form", adminUserService.getAccountForm(id));
51+
model.addAttribute("roles", roleService.getAllRoles());
52+
53+
return "admin/user-edit";
54+
}
2255
}

admin/src/main/java/org/dcsc/admin/controllers/AdminProfileController.java

+15-21
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import org.dcsc.admin.constants.AttributeNames;
44
import org.dcsc.admin.constants.ViewNames;
5-
import org.dcsc.admin.profile.ProfileCreateForm;
65
import org.dcsc.admin.profile.ProfileForm;
76
import org.dcsc.core.activity.Activity;
87
import org.dcsc.core.activity.ActivityService;
@@ -22,17 +21,18 @@
2221
import org.springframework.web.bind.annotation.RequestMethod;
2322

2423
import java.util.List;
24+
import java.util.Optional;
2525

2626
@Controller
2727
public class AdminProfileController {
2828
@Autowired
2929
private ActivityService activityService;
3030
@Autowired
31-
private DcscUserService dcscUserService;
31+
private DcscUserService userService;
3232
@Autowired
3333
private RolePermissionService rolePermissionService;
3434

35-
@RequestMapping(value = "/admin/profile", method = RequestMethod.GET)
35+
@RequestMapping(value = "/admin/user", method = RequestMethod.GET)
3636
public String profile(Authentication authentication, Model model) {
3737
DcscUserDetails userDetails = ((DcscUserDetails) authentication.getPrincipal());
3838
DcscUser user = userDetails.getUser();
@@ -46,17 +46,16 @@ public String profile(Authentication authentication, Model model) {
4646
return ViewNames.ADMIN_PROFILE;
4747
}
4848

49-
@RequestMapping(value = "/admin/profile/edit", method = RequestMethod.GET)
50-
public String profileEdit(Model model) {
51-
model.addAttribute("profileForm", new ProfileForm());
52-
53-
return ViewNames.ADMIN_PROFILE_EDIT;
54-
}
55-
5649
@RequestMapping(value = "/admin/user/{user_id}", method = RequestMethod.GET)
5750
@PreAuthorize("hasPermission('user','read')")
5851
public String profileView(@PathVariable("user_id") long id, Model model) {
59-
DcscUser user = dcscUserService.getUserById(id).get();
52+
Optional<DcscUser> dcscUser = userService.getUserById(id);
53+
54+
if (!dcscUser.isPresent()) {
55+
return "redirect:/admin/user";
56+
}
57+
58+
DcscUser user = dcscUser.get();
6059

6160
List<Activity> list = activityService.getAllActivities(user.getId());
6261

@@ -67,18 +66,13 @@ public String profileView(@PathVariable("user_id") long id, Model model) {
6766
return ViewNames.ADMIN_PROFILE;
6867
}
6968

70-
@RequestMapping(value = "/admin/user/create", method = RequestMethod.GET)
71-
@PreAuthorize("hasPermission('user','create')")
72-
public String userCreatePage(Model model) {
73-
model.addAttribute("profileForm", new ProfileCreateForm());
74-
75-
return ViewNames.ADMIN_PROFILE_CREATE;
76-
}
7769

78-
@RequestMapping(value = "/admin/user/{user_id}/edit", method = RequestMethod.GET)
79-
public String userEditPage(@PathVariable("user_id") long id, Model model) {
70+
@RequestMapping(value = "/admin/user/edit", method = RequestMethod.GET)
71+
@PreAuthorize("hasPermission('user','update')")
72+
public String profileEdit(Model model) {
73+
model.addAttribute("profileForm", new ProfileForm());
8074

81-
return ViewNames.ADMIN_PROFILE_CREATE;
75+
return ViewNames.ADMIN_PROFILE_EDIT;
8276
}
8377

8478
@ExceptionHandler(TypeMismatchException.class)

admin/src/main/java/org/dcsc/admin/user/AdminUserService.java

+17-7
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,36 @@
44
import org.dcsc.core.user.DcscUser;
55
import org.dcsc.core.user.DcscUserService;
66
import org.dcsc.core.user.profile.UserProfile;
7+
import org.dcsc.core.user.role.DcscRoleService;
78
import org.springframework.beans.factory.annotation.Autowired;
89
import org.springframework.stereotype.Service;
910

11+
import java.util.Optional;
12+
1013
@Service
1114
public class AdminUserService {
1215
@Autowired
1316
private DcscUserService userService;
17+
@Autowired
18+
private DcscRoleService dcscRoleService;
1419

1520
public AccountForm getAccountForm(long id) {
16-
DcscUser dcscUser = userService.getUserById(id).get();
17-
UserProfile userProfile = dcscUser.getUserProfile();
1821
AccountForm form = new AccountForm();
1922

20-
form.setUsername(dcscUser.getUsername());
21-
form.setIsActive(dcscUser.isEnabled());
22-
form.setIsUnlocked(!dcscUser.isLocked());
23+
Optional<DcscUser> userWrapper = userService.getUserById(id);
24+
25+
if (userWrapper.isPresent()) {
26+
DcscUser user = userWrapper.get();
27+
UserProfile userProfile = user.getUserProfile();
2328

24-
form.setName(userProfile.getName());
25-
form.setTitle(userProfile.getTitle());
29+
form.setUsername(user.getUsername());
30+
form.setIsActive(user.isEnabled());
31+
form.setIsUnlocked(!user.isLocked());
2632

33+
form.setName(userProfile.getName());
34+
form.setRole(dcscRoleService.getRole(user.getRoleId()).getName());
35+
form.setTitle(userProfile.getTitle());
36+
}
2737

2838
return form;
2939
}

src/main/resources

Submodule resources updated from 49ab7f1 to f1bdf01

0 commit comments

Comments
 (0)