feat(bookmark): 添加 Authorization 请求头支持
为 CORS 配置添加 `Authorization` 请求头,以支持携带认证信息的跨域请求。 feat(user-np): 改进错误信息和用户注册流程 - 在注册 VFS 服务失败时返回更详细的错误信息,包括状态码和响应体内容。 - 用户创建失败时返回具体的错误详情,并确保数据库记录被正确回滚。 - 注销用户时先尝试删除 VFS 服务中的相关资源,再执行数据库删除操作。 - 使用 `Unscoped().Delete()` 确保物理删除用户数据。 feat(vfs): 完善用户目录结构及节点创建逻辑 - 创建用户主目录 `/home/username` 及其子目录 `.Recycle_Bin`。 - 调整 `CreateVFSNode` 方法参数类型为值传递。 - 修复创建用户目录时传参不一致的问题。 - 删除用户时递归清理其在 VFS 中的所有节点,并通过代理删除关联的服务节点。 feat(mage): 新增生成 TypeScript 类型定义的任务 新增 `Gen_TS` Mage 任务用于将 OpenAPI 配置文件转换为 TypeScript 类型定义文件, 支持 `vfs`、`bookmark` 和 `user_np` 模块。
This commit is contained in:
@ -152,14 +152,14 @@ func (v *Vfs) CreateUser(username string) (string, error) {
|
||||
ParentID: 0,
|
||||
Type: VfsNodeTypeDirectory,
|
||||
}
|
||||
if createHomeErr := v.CreateVFSNode(homeDir); createHomeErr != nil {
|
||||
if createHomeErr := v.CreateVFSNode(*homeDir); createHomeErr != nil {
|
||||
err = createHomeErr
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
// 创建用户目录 /home/username
|
||||
userDir := &VfsNode{
|
||||
userDir := VfsNode{
|
||||
Name: username,
|
||||
ParentID: homeDir.ID,
|
||||
Type: VfsNodeTypeDirectory,
|
||||
@ -171,6 +171,22 @@ func (v *Vfs) CreateUser(username string) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if userDir, getUserErr := v.GetNodeByParentIDAndName(homeDir.ID, username); getUserErr != nil {
|
||||
panic(getUserErr)
|
||||
} else {
|
||||
dotDir := VfsNode{
|
||||
Name: ".Recycle_Bin",
|
||||
ParentID: userDir.ID,
|
||||
Type: VfsNodeTypeDirectory,
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
if createDirErr := v.CreateVFSNode(dotDir); createDirErr != nil {
|
||||
err = createDirErr
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
return token, nil
|
||||
}
|
||||
|
||||
@ -540,7 +556,7 @@ func (v *Vfs) CheckNameValid(name string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *Vfs) CreateVFSNode(p *VfsNode) error {
|
||||
func (v *Vfs) CreateVFSNode(p VfsNode) error {
|
||||
_, err := v.DB.Exec(`
|
||||
INSERT INTO vfs_nodes (name, parent_id, type, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?)`,
|
||||
|
Reference in New Issue
Block a user