Implement some MFA endpoints for APIv4 (#5864)

Этот коммит содержится в:
Joram Wilander
2017-03-27 09:21:48 -04:00
коммит произвёл GitHub
родитель a0d5c01dfd
Коммит 58397f853a
7 изменённых файлов: 238 добавлений и 21 удалений

Просмотреть файл

@@ -5,6 +5,7 @@ package app
import (
"bytes"
b64 "encoding/base64"
"fmt"
"hash/fnv"
"image"
@@ -554,6 +555,27 @@ func GetUsersByIds(userIds []string, asAdmin bool) ([]*model.User, *model.AppErr
}
}
func GenerateMfaSecret(userId string) (*model.MfaSecret, *model.AppError) {
mfaInterface := einterfaces.GetMfaInterface()
if mfaInterface == nil {
return nil, model.NewAppError("generateMfaSecret", "api.user.generate_mfa_qr.not_available.app_error", nil, "", http.StatusNotImplemented)
}
var user *model.User
var err *model.AppError
if user, err = GetUser(userId); err != nil {
return nil, err
}
secret, img, err := mfaInterface.GenerateSecret(user)
if err != nil {
return nil, err
}
mfaSecret := &model.MfaSecret{Secret: secret, QRCode: b64.StdEncoding.EncodeToString(img)}
return mfaSecret, nil
}
func ActivateMfa(userId, token string) *model.AppError {
mfaInterface := einterfaces.GetMfaInterface()
if mfaInterface == nil {