1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-22 17:10:10 +00:00

Matrix: Fix user storage

This commit is contained in:
Harvey Tindall 2021-05-29 19:50:16 +01:00
parent 4e826f4167
commit 9bd6abadf4
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 10 additions and 3 deletions

9
api.go
View File

@ -361,7 +361,7 @@ func (app *appContext) newUser(req newUserDTO, confirmed bool) (f errorFunc, suc
if app.config.Section("matrix").Key("required").MustBool(false) { if app.config.Section("matrix").Key("required").MustBool(false) {
f = func(gc *gin.Context) { f = func(gc *gin.Context) {
app.debug.Printf("%s: New user failed: Matrix verification not completed", req.Code) app.debug.Printf("%s: New user failed: Matrix verification not completed", req.Code)
respond(401, "errorMatrixVerification") respond(401, "errorMatrixVerification", gc)
} }
success = false success = false
return return
@ -565,12 +565,13 @@ func (app *appContext) newUser(req newUserDTO, confirmed bool) (f errorFunc, suc
} }
} }
if matrixVerified { if matrixVerified {
matrixUser.Contact = req.MatrixContact
delete(app.matrix.tokens, req.MatrixPIN) delete(app.matrix.tokens, req.MatrixPIN)
if app.storage.matrix == nil { if app.storage.matrix == nil {
app.storage.matrix = map[string]MatrixUser{} app.storage.matrix = map[string]MatrixUser{}
} }
app.storage.matrix[user.ID] = matrixUser app.storage.matrix[user.ID] = matrixUser
if err := app.storage.storeMatrixUsers; err != nil { if err := app.storage.storeMatrixUsers(); err != nil {
app.err.Printf("Failed to store Matrix users: %v", err) app.err.Printf("Failed to store Matrix users: %v", err)
} }
} }
@ -2300,7 +2301,7 @@ func (app *appContext) MatrixSendPIN(gc *gin.Context) {
respondBool(200, true, gc) respondBool(200, true, gc)
} }
// @Summary Check whether a matrix PIN is valid. Requires invite code. // @Summary Check whether a matrix PIN is valid, and mark the token as verified if so. Requires invite code.
// @Produce json // @Produce json
// @Success 200 {object} boolResponse // @Success 200 {object} boolResponse
// @Failure 401 {object} boolResponse // @Failure 401 {object} boolResponse
@ -2329,6 +2330,8 @@ func (app *appContext) MatrixCheckPIN(gc *gin.Context) {
respondBool(200, false, gc) respondBool(200, false, gc)
return return
} }
user.Verified = true
app.matrix.tokens[pin] = user
respondBool(200, true, gc) respondBool(200, true, gc)
} }

View File

@ -354,6 +354,10 @@ func start(asDaemon, firstCall bool) {
if err := app.storage.loadDiscordUsers(); err != nil { if err := app.storage.loadDiscordUsers(); err != nil {
app.err.Printf("Failed to load Discord users: %v", err) app.err.Printf("Failed to load Discord users: %v", err)
} }
app.storage.matrix_path = app.config.Section("files").Key("matrix_users").String()
if err := app.storage.loadMatrixUsers(); err != nil {
app.err.Printf("Failed to load Matrix users: %v", err)
}
app.storage.profiles_path = app.config.Section("files").Key("user_profiles").String() app.storage.profiles_path = app.config.Section("files").Key("user_profiles").String()
app.storage.loadProfiles() app.storage.loadProfiles()