本文整理汇总了Golang中github.com/keybase/client/go/libkb.LoadUser函数的典型用法代码示例。如果您正苦于以下问题:Golang LoadUser函数的具体用法?Golang LoadUser怎么用?Golang LoadUser使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LoadUser函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: assertUntracked
func assertUntracked(tc libkb.TestContext, username string) {
me, err := libkb.LoadMe(libkb.NewLoadUserArg(tc.G))
if err != nil {
tc.T.Fatal(err)
}
them, err := libkb.LoadUser(libkb.NewLoadUserByNameArg(tc.G, username))
if err != nil {
tc.T.Fatal(err)
}
s, err := me.TrackChainLinkFor(them.GetName(), them.GetUID())
if err != nil {
tc.T.Fatal(err)
}
if s != nil {
tc.T.Fatal("expected not to get a tracking statement; but got one")
}
s, err = libkb.LocalTrackChainLinkFor(me.GetUID(), them.GetUID(), tc.G)
if err != nil {
tc.T.Fatal(err)
}
if s != nil {
tc.T.Fatal("expected not to get a local tracking statement; but got one")
}
}
示例2: join
func (s *SignupEngine) join(a libkb.LoginContext, username, email, inviteCode string, skipMail bool) error {
joinEngine := NewSignupJoinEngine(s.G())
arg := SignupJoinEngineRunArg{
Username: username,
Email: email,
InviteCode: inviteCode,
PWHash: s.ppStream.PWHash(),
PWSalt: s.pwsalt,
SkipMail: skipMail,
}
res := joinEngine.Run(a, arg)
if res.Err != nil {
return res
}
s.ppStream.SetGeneration(res.PpGen)
a.CreateStreamCache(s.tsec, s.ppStream)
s.uid = res.UID
s.G().Log.Debug("contextified: %v\n", s.G())
user, err := libkb.LoadUser(libkb.LoadUserArg{Self: true, UID: res.UID, PublicKeyOptional: true, Contextified: libkb.NewContextified(s.G())})
if err != nil {
return err
}
s.me = user
return nil
}
示例3: Run
func (e *ListTrackingEngine) Run(ctx *Context) (err error) {
var user *libkb.User
if len(e.arg.ForAssertion) > 0 {
user, err = libkb.LoadUser(libkb.NewLoadUserByNameArg(e.G(), e.arg.ForAssertion))
} else {
user, err = libkb.LoadMe(libkb.NewLoadUserArg(e.G()))
}
if err != nil {
return
}
var trackList TrackList
trackList = user.IDTable().GetTrackList()
trackList, err = filterRxx(trackList, e.arg.Filter)
if err != nil {
return
}
sort.Sort(trackList)
if e.arg.JSON {
err = e.runJSON(trackList, e.arg.Verbose)
} else {
err = e.runTable(trackList)
}
return
}
示例4: CreateAndSignupFakeUser
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
}
fu.User, err = libkb.LoadUser(libkb.NewLoadUserByNameArg(g, fu.Username))
if err != nil {
return nil, err
}
return fu, nil
}
示例5: runLoggedIn
func (e *PGPPullEngine) runLoggedIn(ctx *Context, summaries []keybase1.UserSummary) error {
// Loop over the list of all users we track.
for _, userSummary := range summaries {
// Compute the set of tracked pgp fingerprints. LoadUser will fetch key
// data from the server, and we will compare it against this.
trackedFingerprints := make(map[string]bool)
for _, pubKey := range userSummary.Proofs.PublicKeys {
if pubKey.PGPFingerprint != "" {
trackedFingerprints[pubKey.PGPFingerprint] = true
}
}
// Get user data from the server.
user, err := libkb.LoadUser(libkb.NewLoadUserByNameArg(e.G(), userSummary.Username))
if err != nil {
ctx.LogUI.Errorf("Failed to load user %s: %s", userSummary.Username, err)
continue
}
if err = e.exportKeysToGPG(ctx, user, trackedFingerprints); err != nil {
return err
}
}
return nil
}
示例6: loadThem
func (e *TrackToken) loadThem(username string) error {
them, err := libkb.LoadUser(libkb.NewLoadUserByNameArg(e.G(), username))
if err != nil {
return err
}
e.them = them
return nil
}
示例7: getNumKeys
func getNumKeys(tc libkb.TestContext, fu FakeUser) int {
loaded, err := libkb.LoadUser(libkb.LoadUserArg{Name: fu.Username, ForceReload: true})
if err != nil {
tc.T.Fatal(err)
}
ckf := loaded.GetComputedKeyFamily()
return len(ckf.GetAllActiveSibkeys()) + len(ckf.GetAllActiveSubkeys())
}
示例8: 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
}
示例9: LoadUser
func (h *UserHandler) LoadUser(_ context.Context, arg keybase1.LoadUserArg) (user keybase1.User, err error) {
u, err := libkb.LoadUser(libkb.LoadUserArg{UID: arg.Uid, Contextified: libkb.NewContextified(h.G())})
if err != nil {
return
}
exportedUser := u.Export()
user = *exportedUser
return
}
示例10: TestSelectEngine
func TestSelectEngine(t *testing.T) {
tc := SetupEngineTest(t, "select")
defer tc.Cleanup()
fu := NewFakeUserOrBust(t, "se")
if err := tc.GenerateGPGKeyring(fu.Email); err != nil {
t.Fatal(err)
}
arg := MakeTestSignupEngineRunArg(fu)
arg.SkipGPG = false
s := NewSignupEngine(&arg, tc.G)
testui := &gpgtestui{}
ctx := &Context{
LogUI: tc.G.UI.GetLogUI(),
GPGUI: testui,
SecretUI: fu.NewSecretUI(),
LoginUI: &libkb.TestLoginUI{Username: fu.Username},
}
if err := RunEngine(s, ctx); err != nil {
t.Fatal(err)
}
fuUser, err := libkb.LoadUser(libkb.NewLoadUserByNameArg(tc.G, fu.Username))
if err != nil {
tc.T.Fatal(err)
}
publicKeys := fuUser.GetActivePGPKeys(false)
if len(publicKeys) != 1 {
tc.T.Fatal("There should be one generated PGP key")
}
key := publicKeys[0]
fp := fmt.Sprintf("%s", key.GetFingerprint())
garg := GPGImportKeyArg{
Query: fp,
AllowMulti: true,
SkipImport: false,
OnlyImport: false,
}
gpg := NewGPGImportKeyEngine(&garg, tc.G)
err = RunEngine(gpg, ctx)
// The GPGImportKeyEngine converts a multi select on the same key into
// an update, so our test checks that the update code ran, by counting
// on the test version of the update key prompt.
if testui.keyChosenCount != 1 {
tc.T.Fatal("Selected the same key twice and no update happened")
}
if len(gpg.duplicatedFingerprints) != 1 {
tc.T.Fatal("Server didn't return an error while updating")
}
if !key.GetFingerprint().Eq(gpg.duplicatedFingerprints[0]) {
tc.T.Fatal("Our fingerprint ID wasn't returned as up to date")
}
return
}
示例11: loadUser
// loadUser will load the user by name specified in e.username.
func (e *LoginProvision) loadUser(ctx *Context) (*libkb.User, error) {
if len(e.username) == 0 {
return nil, libkb.NoUsernameError{}
}
e.G().Log.Debug("LoginProvision: loading user %s", e.username)
arg := libkb.NewLoadUserByNameArg(e.G(), e.username)
arg.PublicKeyOptional = true
return libkb.LoadUser(arg)
}
示例12: FakeTrackingChanged
func (h *TrackHandler) FakeTrackingChanged(_ context.Context, arg keybase1.FakeTrackingChangedArg) error {
user, err := libkb.LoadUser(libkb.LoadUserArg{
Name: arg.Username,
})
if err != nil {
return err
}
h.G().NotifyRouter.HandleTrackingChanged(user.GetUID(), user.GetName())
return nil
}
示例13: loadThem
func (e *Identify2WithUID) loadThem(ctx *Context) (err error) {
arg := libkb.NewLoadUserArg(e.G())
arg.UID = e.arg.Uid
arg.ResolveBody = e.ResolveBody
e.them, err = libkb.LoadUser(arg)
if e.them == nil {
return libkb.UserNotFoundError{UID: arg.UID, Msg: "in Identify2WithUID"}
}
return err
}
示例14: LoadPublicKeys
func (h *UserHandler) LoadPublicKeys(_ context.Context, arg keybase1.LoadPublicKeysArg) (keys []keybase1.PublicKey, err error) {
u, err := libkb.LoadUser(libkb.LoadUserArg{UID: arg.Uid, Contextified: libkb.NewContextified(h.G())})
if err != nil {
return
}
var publicKeys []keybase1.PublicKey
if u.GetComputedKeyFamily() != nil {
publicKeys = u.GetComputedKeyFamily().Export()
}
return publicKeys, nil
}
示例15: LoadUser
func (h *UserHandler) LoadUser(_ context.Context, arg keybase1.LoadUserArg) (user keybase1.User, err error) {
loadUserArg := libkb.NewLoadUserByUIDArg(h.G(), arg.Uid)
loadUserArg.PublicKeyOptional = true
u, err := libkb.LoadUser(loadUserArg)
if err != nil {
return
}
exportedUser := u.Export()
user = *exportedUser
return
}