Compare commits

..

No commits in common. "5747e255e95c6b982e5b868c12752e14d1594116" and "47bbdca5af08a59feaf10b2008db00010b45a3a7" have entirely different histories.

4 changed files with 89 additions and 45 deletions

View File

@ -73,11 +73,6 @@ public class NewsService {
public void createNews(NewsRequest request) { public void createNews(NewsRequest request) {
String username = JwtUtil.extractUsername(request.getToken());
UserHS user = userService.getUserByUsername(username);
if (!user.getSuperAdmin() && !user.getTenant().equals(request.getTenant())){
throw new IllegalArgumentException("只能在自己的租户的名下新增新闻!");
}
News news = new News(); News news = new News();
news.setTitle(request.getTitle()); news.setTitle(request.getTitle());
news.setSummary(request.getSummary()); news.setSummary(request.getSummary());
@ -96,9 +91,7 @@ public class NewsService {
news.setContent(request.getContent()); news.setContent(request.getContent());
news.setAuthor(request.getAuthor()); news.setAuthor(request.getAuthor());
news.setImagePath(request.getImagePath()); news.setImagePath(request.getImagePath());
if (userService.getUserByUsername(JwtUtil.extractUsername(request.getToken())).getSuperAdmin()) { news.setTenant(request.getTenant());
news.setTenant(request.getTenant());
}
newsRepository.save(news); newsRepository.save(news);
} }
} }
@ -121,6 +114,26 @@ public class NewsService {
return newsRepository.count(); return newsRepository.count();
} }
// TODO:完善用户权限
// public List<News> searchNews(SearchNewsRequest request) {
// String username = JwtUtil.extractUsername(request.getToken());
// UserHS user = userService.getUserByUsername(username);
// if (user.getSuperAdmin()) {
// return newsRepository.findByTitleContainingOrSummaryContainingOrAuthorContainingOrImagePathContaining(
// request.getTitle(),
// request.getSummary(),
// request.getAuthor(),
// request.getImagePath()
// );
// }
// return newsRepository.findByTitleContainingOrSummaryContainingOrAuthorContainingOrImagePathContainingAndTenantEquals(
// request.getTitle(),
// request.getSummary(),
// request.getAuthor(),
// request.getImagePath(),
// user.getUsername()
// );
// }
public List<News> searchNews(SearchNewsRequest request) { public List<News> searchNews(SearchNewsRequest request) {
String username = JwtUtil.extractUsername(request.getToken()); String username = JwtUtil.extractUsername(request.getToken());
UserHS user = userService.getUserByUsername(username); UserHS user = userService.getUserByUsername(username);

View File

@ -9,7 +9,6 @@ import java.util.stream.Collectors;
public class UserHS2User { public class UserHS2User {
public static User convert(UserHS userHS) { public static User convert(UserHS userHS) {
User user = new User(); User user = new User();
user.setId(userHS.getId());
user.setAccount(userHS.getUsername()); user.setAccount(userHS.getUsername());
user.setPassword(userHS.getPassword()); user.setPassword(userHS.getPassword());
user.setName(userHS.getNickname()); user.setName(userHS.getNickname());

View File

@ -0,0 +1,39 @@
package org.cmh.backend.UserManagement.controller;
import org.cmh.backend.UserManagement.model.User;
import org.cmh.backend.UserManagement.service.UserServiceTemp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import static org.springframework.http.ResponseEntity.ok;
@RestController
public class UserController {
@Autowired
private UserServiceTemp userService;
@CrossOrigin(origins = "http://localhost:5173")
@PostMapping("/checkLogin")
public ResponseEntity<User> login(@RequestBody Map<String,String> credentials) {
String account = credentials.get("account");
String password = credentials.get("password");
User user = userService.getUserByAccountAndPassword(account, password);
return ok(user);
}
@CrossOrigin(origins = "http://localhost:5173")
@PostMapping("/checkRegister")
public String register(@RequestBody User user) {
if(userService.registerUser(user) != null){
return "注册成功";
}else
return "注册错误";
}
}

View File

@ -1,22 +1,22 @@
package org.cmh.backend.UserManagement.controller; package org.cmh.backend.UserManagement.controller;
import io.jsonwebtoken.JwtParser;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import org.cmh.backend.OrganizationManagement.service.OrganizationService; import org.cmh.backend.OrganizationManagement.service.OrganizationService;
import org.cmh.backend.UserManagement.adpter.User2UserHS; import org.cmh.backend.UserManagement.adpter.User2UserHS;
import org.cmh.backend.UserManagement.adpter.UserHS2User; import org.cmh.backend.UserManagement.adpter.UserHS2User;
import org.cmh.backend.UserManagement.model.User;
import org.cmh.backend.UserManagement.service.UserManagementService; import org.cmh.backend.UserManagement.service.UserManagementService;
import org.cmh.backend.UserManagement.model.User;
import org.cmh.backend.Utils.JwtUtil; import org.cmh.backend.Utils.JwtUtil;
import org.cmh.backend.Utils.JwtVerify; import org.cmh.backend.Utils.JwtVerify;
import org.cmh.backend.authentication.dto.UserProfileResponse; import org.cmh.backend.authentication.dto.UserProfileResponse;
import org.cmh.backend.authentication.model.UserHS; import org.cmh.backend.authentication.model.UserHS;
import org.cmh.backend.authentication.repository.UserRepository;
import org.cmh.backend.authentication.service.UserService; import org.cmh.backend.authentication.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@RestController @RestController
@ -28,8 +28,6 @@ public class UserManagementController {
private OrganizationService organizationService; private OrganizationService organizationService;
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired
private UserRepository userRepository;
@PostMapping("/addUser") @PostMapping("/addUser")
public ResponseEntity<UserProfileResponse> addUser(@RequestBody User user) { public ResponseEntity<UserProfileResponse> addUser(@RequestBody User user) {
@ -44,10 +42,10 @@ public class UserManagementController {
newuser.getRole(), newuser.getRole(),
newuser.getCreatedAt() newuser.getCreatedAt()
); );
if (organizationService.getByName(newuser.getDepartment()) != null) { if(organizationService.getByName(newuser.getDepartment()) != null){
userService.addUser(newuser); userService.addUser(newuser);
return new ResponseEntity<>(response, HttpStatus.OK); return new ResponseEntity<>(response, HttpStatus.OK);
} else { }else{
return null; return null;
} }
} }
@ -58,50 +56,45 @@ public class UserManagementController {
public List<User> getAll(@RequestParam String token) { public List<User> getAll(@RequestParam String token) {
String username = JwtUtil.extractUsername(token); String username = JwtUtil.extractUsername(token);
UserHS userHS = userService.getUserByUsername(username); UserHS userHS = userService.getUserByUsername(username);
if (userHS.getSuperAdmin()) { List<UserHS> userHSList = userService.getAllUsers();
return UserHS2User.convertList(userService.getAllUsers()); //这里分权限进行不同请求
} else { //超级管理员
return UserHS2User.convertList(userService.getUsersByTenant(userHS.getTenant())); if(userHS.getSuperAdmin()){
return UserHS2User.convertList(userHSList);
}else{
return null;
} }
} }
@PostMapping("/update") @PostMapping("/update")
public ResponseEntity<UserProfileResponse> update(@RequestBody User user) { public ResponseEntity<UserProfileResponse> update(@RequestBody User user) {
UserHS reqUser = User2UserHS.convert(user); UserHS newuser = User2UserHS.convert(user);
UserHS tarUser = userService.getUserByUsername(reqUser.getUsername()); UserProfileResponse response = new UserProfileResponse(
if (tarUser != null) { newuser.getUsername(),
tarUser.setNickname(reqUser.getNickname()); newuser.getNickname(),
tarUser.setGender(reqUser.getGender()); newuser.getGender(),
tarUser.setPhoneNumber(reqUser.getPhoneNumber()); newuser.getPhoneNumber(),
tarUser.setEmail(reqUser.getEmail()); newuser.getEmail(),
tarUser.setRole(reqUser.getRole()); newuser.getDepartment(),
UserProfileResponse response = new UserProfileResponse( newuser.getRole(),
reqUser.getUsername(), newuser.getCreatedAt()
reqUser.getNickname(), );
reqUser.getGender(), if(organizationService.getByName(newuser.getDepartment()) != null){
reqUser.getPhoneNumber(), userService.addUser(newuser);
reqUser.getEmail(),
reqUser.getDepartment(),
reqUser.getRole(),
reqUser.getCreatedAt()
);
if (organizationService.getByName(reqUser.getDepartment()) != null) {
tarUser.setDepartment(reqUser.getDepartment());
}
userRepository.save(tarUser);
return new ResponseEntity<>(response, HttpStatus.OK); return new ResponseEntity<>(response, HttpStatus.OK);
} else { }else{
return new ResponseEntity<>(null, HttpStatus.OK); return null;
} }
} }
@PostMapping("/delete") @PostMapping("/delete")
@Transactional @Transactional
//不确定这里返回值应该是什么
public void delete(@RequestBody User user) { public void delete(@RequestBody User user) {
UserHS userHS = userService.getUserByUsername(user.getName()); UserHS userHS = userService.getUserByUsername(user.getName());
if (userHS != null) { if(userHS != null){
//根据用户名删除用户 //根据用户名删除用户
userService.deleteUser(userHS.getUsername()); userService.deleteUser(userHS.getUsername());
} }