mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 02:46:56 +00:00
[opt](headless)Deletion of chat model and database should record user.
This commit is contained in:
@@ -15,5 +15,5 @@ public interface ChatModelService {
|
||||
|
||||
ChatModel updateChatModel(ChatModel chatModel, User user);
|
||||
|
||||
void deleteChatModel(Integer id);
|
||||
void deleteChatModel(Integer id, User user);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,12 @@ public class ChatModelServiceImpl extends ServiceImpl<ChatModelMapper, ChatModel
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteChatModel(Integer id) {
|
||||
public void deleteChatModel(Integer id, User user) {
|
||||
ChatModel chatModel = getChatModel(id);
|
||||
if (!checkAdminPermission(user, chatModel)) {
|
||||
throw new RuntimeException("没有权限删除该大模型");
|
||||
}
|
||||
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
@@ -103,4 +108,13 @@ public class ChatModelServiceImpl extends ServiceImpl<ChatModelMapper, ChatModel
|
||||
chatModelDO.setConfig(JsonUtil.toString(chatModel.getConfig()));
|
||||
return chatModelDO;
|
||||
}
|
||||
|
||||
private boolean checkAdminPermission(User user, ChatModel chatModel) {
|
||||
String admin = chatModel.getAdmin();
|
||||
if (user.isSuperAdmin()) {
|
||||
return true;
|
||||
}
|
||||
return admin != null && admin.equals(user.getName())
|
||||
|| chatModel.getCreatedBy().equals(user.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,8 +46,10 @@ public class ChatModelController {
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
public boolean deleteModel(@PathVariable("id") Integer id) {
|
||||
chatModelService.deleteChatModel(id);
|
||||
public boolean deleteModel(@PathVariable("id") Integer id,
|
||||
HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
User user = UserHolder.findUser(httpServletRequest, httpServletResponse);
|
||||
chatModelService.deleteChatModel(id, user);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,8 +64,10 @@ public class DatabaseController {
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
public boolean deleteDatabase(@PathVariable("id") Long id) {
|
||||
databaseService.deleteDatabase(id);
|
||||
public boolean deleteDatabase(@PathVariable("id") Long id, HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
User user = UserHolder.findUser(request, response);
|
||||
databaseService.deleteDatabase(id, user);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ public interface DatabaseService {
|
||||
|
||||
List<DatabaseResp> getDatabaseList(User user);
|
||||
|
||||
void deleteDatabase(Long databaseId);
|
||||
void deleteDatabase(Long databaseId, User user);
|
||||
|
||||
List<String> getCatalogs(Long id) throws SQLException;
|
||||
|
||||
|
||||
@@ -138,7 +138,12 @@ public class DatabaseServiceImpl extends ServiceImpl<DatabaseDOMapper, DatabaseD
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteDatabase(Long databaseId) {
|
||||
public void deleteDatabase(Long databaseId, User user) {
|
||||
DatabaseResp databaseResp = getDatabase(databaseId);
|
||||
if (!checkAdminPermission(user, databaseResp)) {
|
||||
throw new RuntimeException("没有权限删除该数据库");
|
||||
}
|
||||
|
||||
ModelFilter modelFilter = new ModelFilter();
|
||||
modelFilter.setDatabaseId(databaseId);
|
||||
modelFilter.setIncludesDetail(false);
|
||||
|
||||
Reference in New Issue
Block a user