1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-09 03:08:57 +00:00

get nickname from seahub database (#663)

* Add parse seahub database config

* Get nickname from seahub database

* Go get nickname from seahub database

* Save output of script to memory and fix some errors

* Add exec permission and free child_output

---------

Co-authored-by: 杨赫然 <heran.yang@seafile.com>
This commit is contained in:
feiniks
2024-07-10 16:34:33 +08:00
committed by GitHub
parent 49168a140c
commit d51591d8f7
15 changed files with 311 additions and 24 deletions

View File

@@ -12,10 +12,11 @@ import (
)
type mergeOptions struct {
remoteRepoID string
remoteHead string
mergedRoot string
conflict bool
remoteRepoID string
remoteHead string
mergedRoot string
conflict bool
emailToNickname map[string]string
}
func mergeTrees(storeID string, roots []string, opt *mergeOptions) error {
@@ -24,6 +25,8 @@ func mergeTrees(storeID string, roots []string, opt *mergeOptions) error {
return err
}
opt.emailToNickname = make(map[string]string)
var trees []*fsmgr.SeafDir
for i := 0; i < 3; i++ {
dir, err := fsmgr.GetSeafdir(storeID, roots[i])
@@ -335,7 +338,9 @@ func mergeConflictFileName(storeID string, opt *mergeOptions, baseDir, fileName
mtime = time.Now().Unix()
}
conflictName := genConflictPath(fileName, modifier, mtime)
nickname := getNickNameByModifier(opt.emailToNickname, modifier)
conflictName := genConflictPath(fileName, nickname, mtime)
return conflictName, nil
}
@@ -366,6 +371,29 @@ func genConflictPath(originPath, modifier string, mtime int64) string {
return conflictPath
}
func getNickNameByModifier(emailToNickname map[string]string, modifier string) string {
if modifier == "" {
return ""
}
nickname, ok := emailToNickname[modifier]
if ok {
return nickname
}
if seahubDB != nil {
sqlStr := "SELECT nickname from profile_profile WHERE user = ?"
row := seahubDB.QueryRow(sqlStr, modifier)
row.Scan(&nickname)
}
if nickname == "" {
nickname = modifier
}
emailToNickname[modifier] = nickname
return nickname
}
func getFileModifierMtime(repoID, storeID, head, filePath string) (string, int64, error) {
commit, err := commitmgr.Load(repoID, head)
if err != nil {