本文整理汇总了Golang中github.com/keybase/client/go/libkb.NewLoadUserForceArg函数的典型用法代码示例。如果您正苦于以下问题:Golang NewLoadUserForceArg函数的具体用法?Golang NewLoadUserForceArg怎么用?Golang NewLoadUserForceArg使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewLoadUserForceArg函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getFakeUsersBundlesList
func getFakeUsersBundlesList(tc libkb.TestContext, fu *FakeUser) []string {
arg := libkb.NewLoadUserForceArg(tc.G)
arg.Name = fu.Username
user, err := libkb.LoadUser(arg)
if err != nil {
tc.T.Fatal("Failed loading user", err)
}
return user.GetKeyFamily().BundlesForTesting
}
示例2: paperDevs
func paperDevs(tc libkb.TestContext, fu *FakeUser) (*libkb.User, []*libkb.Device) {
arg := libkb.NewLoadUserForceArg(tc.G)
arg.Name = fu.Username
u, err := libkb.LoadUser(arg)
if err != nil {
tc.T.Fatal(err)
}
cki := u.GetComputedKeyInfos()
if cki == nil {
tc.T.Fatal("no computed key infos")
}
return u, cki.PaperDevices()
}
示例3: getFakeUsersKeyBundleFromServer
func getFakeUsersKeyBundleFromServer(tc libkb.TestContext, fu *FakeUser) *libkb.PGPKeyBundle {
arg := libkb.NewLoadUserForceArg(tc.G)
arg.Name = fu.Username
user, err := libkb.LoadUser(arg)
if err != nil {
tc.T.Fatal("Failed loading user", err)
}
ckf := user.GetComputedKeyFamily()
keys := ckf.GetActivePGPKeys(true /* sibkeys */)
if len(keys) != 1 {
tc.T.Fatal("Expected only one key.")
}
return keys[0]
}
示例4: loadMe
func (c *PassphraseChange) loadMe() (err error) {
c.me, err = libkb.LoadMe(libkb.NewLoadUserForceArg(c.G()))
return
}
示例5: TestPassphraseChangePGP3SecMultiple
// test pp change when user has multiple 3sec encrypted pgp keys.
func TestPassphraseChangePGP3SecMultiple(t *testing.T) {
tc := SetupEngineTest(t, "PassphraseChange")
defer tc.Cleanup()
u := createFakeUserWithPGPSibkeyPushed(tc)
// create/push another pgp key
parg := PGPKeyImportEngineArg{
Gen: &libkb.PGPGenArg{
PrimaryBits: 768,
SubkeyBits: 768,
},
PushSecret: true,
NoSave: true,
AllowMulti: true,
}
parg.Gen.MakeAllIds()
pctx := &Context{
LogUI: tc.G.UI.GetLogUI(),
SecretUI: u.NewSecretUI(),
}
peng := NewPGPKeyImportEngine(parg)
err := RunEngine(peng, pctx)
if err != nil {
t.Fatal(err)
}
// clear the passphrase stream cache to force a prompt
// for the existing passphrase.
tc.G.LoginState().Account(func(a *libkb.Account) {
a.ClearStreamCache()
}, "clear stream cache")
newPassphrase := "password1234"
arg := &keybase1.PassphraseChangeArg{
Passphrase: newPassphrase,
}
secui := u.NewSecretUI()
ctx := &Context{
SecretUI: secui,
}
eng := NewPassphraseChange(arg, tc.G)
if err := RunEngine(eng, ctx); err != nil {
t.Fatal(err)
}
verifyPassphraseChange(tc, u, newPassphrase)
if !secui.CalledGetKBPassphrase {
t.Errorf("get kb passphrase not called")
}
u.Passphrase = newPassphrase
assertLoadSecretKeys(tc, u, "passphrase change pgp")
assertLoadPGPKeys(tc, u)
me, err := libkb.LoadMe(libkb.NewLoadUserForceArg(tc.G))
if err != nil {
t.Fatal(err)
}
syncKeys, err := me.AllSyncedSecretKeys(nil)
if err != nil {
t.Fatal(err)
}
if len(syncKeys) != 2 {
t.Errorf("num pgp sync keys: %d, expected 2", len(syncKeys))
}
for _, key := range syncKeys {
unlocked, err := key.PromptAndUnlock(nil, "", "", nil, u.NewSecretUI(), nil, me)
if err != nil {
t.Fatal(err)
}
if unlocked == nil {
t.Fatal("failed to unlock key")
}
}
}
示例6: postLogin
func (e *LoginEngine) postLogin(ctx *Context, lctx libkb.LoginContext) error {
// We might need to ID ourselves, so load us in here
var err error
arg := libkb.NewLoadUserForceArg(e.G())
arg.LoginContext = lctx
e.user, err = libkb.LoadMe(arg)
if err != nil {
_, ok := err.(libkb.NoKeyError)
if !ok {
return err
}
}
if e.SkipLocksmith {
ctx.LogUI.Debug("skipping locksmith as requested by LoginArg")
return nil
}
// create a locksmith engine to check the account
ctx.LoginContext = lctx
larg := &LocksmithArg{
User: e.user,
CheckOnly: true,
}
e.locksmith = NewLocksmith(larg, e.G())
if err := RunEngine(e.locksmith, ctx); err != nil {
return err
}
if e.locksmith.Status().CurrentDeviceOk {
if err := lctx.LocalSession().SetDeviceProvisioned(e.G().Env.GetDeviceID()); err != nil {
// not a fatal error, session will stay in memory
e.G().Log.Warning("error saving session file: %s", err)
}
return nil
}
// need to provision this device
// need to have passphrase stream cached in order to provision a device
if lctx.PassphraseStreamCache() == nil {
// this can happen if:
// 1. The user is logging in for the first time on a device.
// 2. Before the device is provisioned, the login is canceled or
// interrupted.
// 3. The daemon restarts (`ctl stop`, machine reboot, bug, etc.)
// 4. The login session is still valid, so the next login attempt
// does not require passphrase.
//
// (Note that pubkey login isn't an option until the device is
// provisioned.)
//
// 5. So they get to here without entering their passphrase
// and without a cached passphrase stream.
// Locksmith won't be able to provision the device without
// the passphrase stream, and we can't do
// LoginState.verifyPassphraseWithServer since that creates
// a new login request and we are in the middle of a login
// request.
//
// The best we can do here is to logout and tell the user to
// login again. This should be a rare scenario.
//
lctx.Logout()
ctx.LogUI.Info("Please run `keybase login` again. There was an unexpected error since your previous login.")
return libkb.ReloginRequiredError{}
}
larg.CheckOnly = false
e.locksmith = NewLocksmith(larg, e.G())
if err := RunEngine(e.locksmith, ctx); err != nil {
if _, canceled := err.(libkb.CanceledError); canceled {
lctx.Logout()
}
return err
}
if err := lctx.LocalSession().SetDeviceProvisioned(e.G().Env.GetDeviceID()); err != nil {
// not a fatal error, session will stay in memory
e.G().Log.Warning("error saving session file: %s", err)
}
return nil
}
示例7: loadMe
func (p *Prove) loadMe() (err error) {
p.me, err = libkb.LoadMe(libkb.NewLoadUserForceArg(p.G()))
return
}
示例8: login
func (e *Doctor) login(ctx *Context) {
if e.runErr != nil {
return
}
ok, err := IsLoggedIn(e, ctx)
if err != nil {
e.runErr = err
return
}
if ok {
e.G().Log.Debug("logged in already")
e.user, err = libkb.LoadMe(libkb.NewLoadUserForceArg(e.G()))
if err != nil {
e.runErr = err
}
return
}
e.G().Log.Debug("login necessary")
c := e.G().Env.GetConfig()
if c == nil {
e.runErr = libkb.NoUserConfigError{}
return
}
current, other, err := c.GetAllUsernames()
if err != nil {
e.runErr = err
return
}
e.G().Log.Debug("current: %s", current)
e.G().Log.Debug("others: %v", other)
if len(current) == 0 && len(other) == 0 {
e.G().Log.Debug("no user accounts found on this device")
e.runErr = errors.New("No user accounts were found on this device. Run 'keybase signup' if you need an account or 'keybase login' if you already have one.")
return
}
// Export the NormalizedUsernames to regular strings
othersExp := []string{}
for _, o := range other {
othersExp = append(othersExp, o.String())
}
selected, err := ctx.DoctorUI.LoginSelect(context.TODO(), current.String(), othersExp)
if err != nil {
e.runErr = err
return
}
if len(selected) == 0 {
e.runErr = errors.New("no user selected for login")
return
}
e.G().Log.Debug("selected account %q for login", selected)
eng := NewLoginWithPromptEngineSkipLocksmith(selected, e.G())
if err := RunEngine(eng, ctx); err != nil {
e.runErr = err
return
}
e.G().Log.Debug("login as %q successful.", selected)
e.user = eng.User()
}