2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 06:47:20 +08:00

feat: 添加软链接返回

This commit is contained in:
耗子
2024-05-19 04:27:17 +08:00
parent 9412b31279
commit 00b4153a28
2 changed files with 17 additions and 8 deletions

View File

@@ -481,12 +481,7 @@ func (r *FileController) List(ctx http.Context) http.Response {
var paths []any
for _, fileInfo := range fileInfoList {
info, _ := fileInfo.Info()
var owner, group string
stat, ok := info.Sys().(*syscall.Stat_t)
if ok {
owner = tools.GetUser(stat.Uid)
group = tools.GetGroup(stat.Gid)
}
stat := info.Sys().(*syscall.Stat_t)
paths = append(paths, map[string]any{
"name": info.Name(),
@@ -494,8 +489,13 @@ func (r *FileController) List(ctx http.Context) http.Response {
"size": tools.FormatBytes(float64(info.Size())),
"mode_str": info.Mode().String(),
"mode": fmt.Sprintf("%04o", info.Mode().Perm()),
"owner": owner,
"group": group,
"owner": tools.GetUser(stat.Uid),
"group": tools.GetGroup(stat.Gid),
"uid": stat.Uid,
"gid": stat.Gid,
"hidden": tools.IsHidden(info.Name()),
"symlink": tools.IsSymlink(info.Mode()),
"link": tools.GetSymlink(filepath.Join(request.Path, info.Name())),
"dir": info.IsDir(),
"modify": carbon.FromStdTime(info.ModTime()).ToDateTimeString(),
})

View File

@@ -272,6 +272,15 @@ func IsHidden(path string) bool {
return strings.HasPrefix(file, ".")
}
// GetSymlink 获取软链接目标
func GetSymlink(path string) string {
linkPath, err := os.Readlink(path)
if err != nil {
return ""
}
return linkPath
}
// GetUser 通过 uid 获取用户名
func GetUser(uid uint32) string {
usr, err := user.LookupId(cast.ToString(uid))