This commit is contained in:
Liang Ding 2022-06-13 21:06:48 +08:00
parent 39d0a9b08f
commit 851483c5d2
No known key found for this signature in database
GPG Key ID: 136F30F901A2231D
3 changed files with 52 additions and 11 deletions

View File

@ -17,8 +17,8 @@
package api
import (
"encoding/hex"
"net/http"
"os"
"time"
"github.com/88250/gulu"
@ -44,21 +44,31 @@ func indexRepo(c *gin.Context) {
}
}
func importRepoKey(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
util.PushMsg(model.Conf.Language(136), 1000*7)
hexKey := arg["key"].(string)
if err := model.IndexRepo(hexKey); nil != err {
ret.Code = -1
ret.Msg = model.Conf.Language(137)
return
}
time.Sleep(1 * time.Second)
util.PushMsg(model.Conf.Language(138), 3000)
}
func initRepoKey(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
util.PushMsg(model.Conf.Language(136), 1000*7)
if err := os.RemoveAll(model.Conf.Repo.GetSaveDir()); nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
if err := os.MkdirAll(model.Conf.Repo.GetSaveDir(), 0755); nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
if err := model.InitRepoKey(); nil != err {
ret.Code = -1
ret.Msg = model.Conf.Language(137)
@ -67,4 +77,8 @@ func initRepoKey(c *gin.Context) {
time.Sleep(1 * time.Second)
util.PushMsg(model.Conf.Language(138), 3000)
ret.Data = map[string]interface{}{
"key": hex.EncodeToString(model.Conf.Repo.Key),
}
}

View File

@ -247,6 +247,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/bazaar/getBazaarPackageREAME", model.CheckAuth, getBazaarPackageREAME)
ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey)
ginServer.Handle("POST", "/api/repo/importRepoKey", model.CheckAuth, importRepoKey)
ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo)
ginServer.Handle("POST", "/api/notification/pushMsg", model.CheckAuth, pushMsg)

View File

@ -18,14 +18,40 @@ package model
import (
"crypto/rand"
"encoding/hex"
"errors"
"os"
"github.com/siyuan-note/dejavu"
"github.com/siyuan-note/encryption"
"github.com/siyuan-note/siyuan/kernel/util"
)
func ImportRepoKey(hexKey string) (err error) {
key, err := hex.DecodeString(hexKey)
if nil != err {
return
}
Conf.Repo.Key = key
Conf.Save()
if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err {
return
}
if err = os.MkdirAll(Conf.Repo.GetSaveDir(), 0755); nil != err {
return
}
return
}
func InitRepoKey() (err error) {
if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err {
return
}
if err = os.MkdirAll(Conf.Repo.GetSaveDir(), 0755); nil != err {
return
}
randomBytes := make([]byte, 16)
_, err = rand.Read(randomBytes)
if nil != err {