/
wax_boy
/
semaphore_custom
Обзор
Документация
Войти
/
wax_boy
/
semaphore_custom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
services/export/User.go
59 строк
1 KB
Michael Gukov
fix(be): migration tool
05 мар 2026, 19:24
05 мар 2026, 19:24
cea5bc8
Код
Авторство
О чём код?
package export import ( "github.com/semaphoreui/semaphore/db" ) type UserExporter struct { ValueMap[db.User] MergeExisting bool } func (a *UserExporter) load(store db.Store, exporter DataExporter, progress Progress) error { users, err := store.GetUsers(db.RetrieveQueryParams{}) if err != nil { return err } return a.appendValues(users, GlobalScope) } func (a *UserExporter) restore(store db.Store, exporter DataExporter, progress Progress) error { var userMap = make(map[string]*db.User) if a.MergeExisting { users, err := store.GetUsers(db.RetrieveQueryParams{}) if err != nil { return err } for _, user := range users { userMap[user.Username] = &user } } for _, val := range a.values { var err error old := val.value var obj db.User if u, ok := userMap[old.Username]; ok && a.MergeExisting { obj = *u } else { obj, err = store.ImportUser(db.UserWithPwd{Pwd: old.Password, User: old}) if err != nil { return err } } err = exporter.mapKeys(a.getName(), GlobalScope, old.GetDbKey(), obj.GetDbKey()) if err != nil { return err } } return nil } func (a *UserExporter) getName() string { return User }