func CreateAndSignupFakeUser(prefix string, g *libkb.GlobalContext) (*FakeUser, error) { fu, err := NewFakeUser(prefix) if err != nil { return nil, err } arg := engine.SignupEngineRunArg{ Username: fu.Username, Email: fu.Email, InviteCode: testInviteCode, Passphrase: fu.Passphrase, DeviceName: "my device", SkipGPG: true, SkipMail: true, } ctx := &engine.Context{ LogUI: g.UI.GetLogUI(), GPGUI: &gpgtestui{}, SecretUI: fu.NewSecretUI(), LoginUI: libkb.TestLoginUI{Username: fu.Username}, } s := engine.NewSignupEngine(&arg, g) if err := engine.RunEngine(s, ctx); err != nil { return nil, err } return fu, nil }
func (h *SignupHandler) Signup(_ context.Context, arg keybase1.SignupArg) (res keybase1.SignupRes, err error) { ctx := &engine.Context{ LogUI: h.getLogUI(arg.SessionID), GPGUI: h.getGPGUI(arg.SessionID), SecretUI: h.getSecretUI(arg.SessionID, h.G()), LoginUI: h.getLoginUI(arg.SessionID), SessionID: arg.SessionID, } runarg := engine.SignupEngineRunArg{ Username: arg.Username, Email: arg.Email, InviteCode: arg.InviteCode, Passphrase: arg.Passphrase, StoreSecret: arg.StoreSecret, DeviceName: arg.DeviceName, SkipMail: arg.SkipMail, GenPGPBatch: arg.GenPGPBatch, } eng := engine.NewSignupEngine(&runarg, h.G()) err = engine.RunEngine(eng, ctx) if err == nil { // everything succeeded // these don't really matter as they aren't checked with nil err, // but just to make sure: res.PassphraseOk = true res.PostOk = true res.WriteOk = true return res, nil } // check to see if the error is a join engine run result: if e, ok := err.(engine.SignupJoinEngineRunRes); ok { res.PassphraseOk = e.PassphraseOk res.PostOk = e.PostOk res.WriteOk = e.WriteOk err = e.Err return res, err } // not a join engine error: return res, err }