Skip to content
Snippets Groups Projects
Commit 763d01ac authored by dmz39's avatar dmz39
Browse files

Adding possibility for admins to delete users

parent ef8d7a45
No related branches found
No related tags found
No related merge requests found
package edu.drexel.TrainDemo.controllers.users;
import edu.drexel.TrainDemo.Utils;
import edu.drexel.TrainDemo.configuration.LoggerConfiguration;
import edu.drexel.TrainDemo.models.users.Group;
import edu.drexel.TrainDemo.models.users.UserEntity;
import edu.drexel.TrainDemo.services.users.GroupService;
......@@ -9,10 +11,9 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import org.slf4j.Logger;
import java.util.List;
......@@ -56,6 +57,15 @@ public class AdminController {
this.userService.saveUser(oldUser, newUser);
}
@RequestMapping("admin/removeUser")
@ResponseBody
void removeUser(@AuthenticationPrincipal OAuth2User principal, @RequestParam long userId) {
System.out.println("Removing user with id = " + userId);
if (Utils.intToLong(principal.getAttribute("id")) != userId) {
this.userService.removeUser(userId);
}
}
@GetMapping("admin/groups")
String manageGroups(@AuthenticationPrincipal OAuth2User principal, Model model) {
UserEntity currentUser = this.userService.getUser(principal);
......
......
......@@ -16,7 +16,7 @@ public interface UserService {
UserEntity createUser(long id, String firstName, String lastName, String phoneNumber);
void saveUser(OAuth2User principal, UserEntity newUser);
void saveUser(UserEntity user, UserEntity newUser);
void removeUser(OAuth2User principal);
void removeUser(long id);
boolean isAllowedAdminPanel(UserEntity userEntity);
void changeGroupId(Long userid, Long groupId);
......
......
......@@ -9,9 +9,9 @@ import edu.drexel.TrainDemo.repositories.users.AddressRepository;
import edu.drexel.TrainDemo.repositories.users.GroupRepository;
import edu.drexel.TrainDemo.repositories.users.UserRepository;
import org.apache.catalina.User;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.parameters.P;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Service;
......@@ -104,8 +104,12 @@ public class UserServiceImpl implements UserService {
}
@Override
public void removeUser(OAuth2User principal) {
this.userRepo.delete(getUser(principal));
public void removeUser(long id) {
System.out.println(id);
UserEntity removal = this.userRepo.findById(id);
if (removal != null) {
this.userRepo.delete(removal);
}
}
......
......
......@@ -9,14 +9,13 @@ function showModal(modalid) {
}
function adminEditUser(userid) {
var data = $("#"+userid).find("#userGroup").html();
console.log(data);
$("#editUserModal").find('#externalId').val($("#"+userid).find("#userExternalId").html());
$("#editUserModal").find('#fname').val($("#"+userid).find("#userFirstName").html());
$("#editUserModal").find('#lname').val($("#"+userid).find("#userLastName").html());
$("#editUserModal").find('#phNumber').val($("#"+userid).find("#userPhNumber").html());
$("#editUserModal").find('#group').children("option[value=" + data + "]").attr('selected', 'selected');
$("#editUserModal").modal("show");
var editUserModal = $("#editUserModal");
editUserModal.find('#externalId').val($("#"+userid).find("#userExternalId").html());
editUserModal.find('#fname').val($("#"+userid).find("#userFirstName").html());
editUserModal.find('#lname').val($("#"+userid).find("#userLastName").html());
editUserModal.find('#phNumber').val($("#"+userid).find("#userPhNumber").html());
editUserModal.find('#group').children("option[value=" + data + "]").attr('selected', 'selected');
editUserModal.modal("show");
}
function adminSaveUser() {
......@@ -29,6 +28,14 @@ function adminSaveUser() {
});
}
function adminRemoveUser(userid) {
$.post("/admin/removeUser", {
userId: userid
}, function () {
console.log("done removing user");
});
}
function addGroup() {
var groupName = $('#newGroupModal').find('#gname').val();
var groupType = $('#newGroupModal').find('#gtype').children("option:selected").val();
......
......
......@@ -44,7 +44,7 @@
<td id="userPhNumber" th:text="${user.getPhoneNumber()}"></td>
<td id="userGroup" th:data="${user.getGroupId()}" th:text="${user.getGroupId()}"></td>
<td><button class="btn btn-primary" th:type="button" th:onclick="'adminEditUser(' + ${iter.index + 1} + ')'">Details</button></td>
<td><button class="btn btn-primary" th:type="button">&times;</button></td>
<td><a th:href="@{/admin/users}"><button class="btn btn-primary" th:type="button" th:onclick="'adminRemoveUser(' + ${user.getId()} + ')'">&times;</button></a></td>
</tr>
</tbody>
</table>
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment