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:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user