1// Copyright 2015 Keybase, Inc. All rights reserved. Use of 2// this source code is governed by the included BSD license. 3 4package client 5 6import ( 7 "github.com/keybase/client/go/libkb" 8 keybase1 "github.com/keybase/client/go/protocol/keybase1" 9 "github.com/keybase/go-framed-msgpack-rpc/rpc" 10 "golang.org/x/net/context" 11) 12 13type IdentifyUIServer struct { 14 libkb.Contextified 15 ui libkb.IdentifyUI 16} 17 18func NewIdentifyUIProtocol(g *libkb.GlobalContext) rpc.Protocol { 19 return keybase1.IdentifyUiProtocol(&IdentifyUIServer{ 20 Contextified: libkb.NewContextified(g), 21 ui: g.UI.GetIdentifyUI(), 22 }) 23} 24 25func NewIdentifyTrackUIProtocol(g *libkb.GlobalContext) rpc.Protocol { 26 ui := g.UI.GetIdentifyTrackUI() 27 return keybase1.IdentifyUiProtocol(&IdentifyUIServer{ 28 Contextified: libkb.NewContextified(g), 29 ui: ui, 30 }) 31} 32 33func (i *IdentifyUIServer) newMetaContext(ctx context.Context) libkb.MetaContext { 34 return libkb.NewMetaContext(ctx, i.G()) 35} 36 37func (i *IdentifyUIServer) DelegateIdentifyUI(_ context.Context) (int, error) { 38 return 0, libkb.UIDelegationUnavailableError{} 39} 40 41func (i *IdentifyUIServer) Confirm(ctx context.Context, arg keybase1.ConfirmArg) (keybase1.ConfirmResult, error) { 42 return i.ui.Confirm(i.newMetaContext(ctx), &arg.Outcome) 43} 44 45func (i *IdentifyUIServer) FinishWebProofCheck(ctx context.Context, arg keybase1.FinishWebProofCheckArg) error { 46 return i.ui.FinishWebProofCheck(i.newMetaContext(ctx), arg.Rp, arg.Lcr) 47} 48 49func (i *IdentifyUIServer) FinishSocialProofCheck(ctx context.Context, arg keybase1.FinishSocialProofCheckArg) error { 50 return i.ui.FinishSocialProofCheck(i.newMetaContext(ctx), arg.Rp, arg.Lcr) 51} 52 53func (i *IdentifyUIServer) DisplayCryptocurrency(ctx context.Context, arg keybase1.DisplayCryptocurrencyArg) error { 54 return i.ui.DisplayCryptocurrency(i.newMetaContext(ctx), arg.C) 55} 56 57func (i *IdentifyUIServer) DisplayStellarAccount(ctx context.Context, arg keybase1.DisplayStellarAccountArg) error { 58 return i.ui.DisplayStellarAccount(i.newMetaContext(ctx), arg.A) 59} 60 61func (i *IdentifyUIServer) DisplayKey(ctx context.Context, arg keybase1.DisplayKeyArg) error { 62 return i.ui.DisplayKey(i.newMetaContext(ctx), arg.Key) 63} 64 65func (i *IdentifyUIServer) ReportLastTrack(ctx context.Context, arg keybase1.ReportLastTrackArg) error { 66 return i.ui.ReportLastTrack(i.newMetaContext(ctx), arg.Track) 67} 68 69func (i *IdentifyUIServer) LaunchNetworkChecks(ctx context.Context, arg keybase1.LaunchNetworkChecksArg) error { 70 return nil 71} 72 73func (i *IdentifyUIServer) DisplayTrackStatement(ctx context.Context, arg keybase1.DisplayTrackStatementArg) error { 74 return i.ui.DisplayTrackStatement(i.newMetaContext(ctx), arg.Stmt) 75} 76 77func (i *IdentifyUIServer) ReportTrackToken(ctx context.Context, arg keybase1.ReportTrackTokenArg) error { 78 return i.ui.ReportTrackToken(i.newMetaContext(ctx), arg.TrackToken) 79} 80 81func (i *IdentifyUIServer) DisplayUserCard(ctx context.Context, arg keybase1.DisplayUserCardArg) error { 82 return i.ui.DisplayUserCard(i.newMetaContext(ctx), arg.Card) 83} 84 85func (i *IdentifyUIServer) Start(ctx context.Context, arg keybase1.StartArg) error { 86 return i.ui.Start(i.newMetaContext(ctx), arg.Username, arg.Reason, arg.ForceDisplay) 87} 88 89func (i *IdentifyUIServer) Cancel(ctx context.Context, sessionID int) error { 90 return i.ui.Cancel(i.newMetaContext(ctx)) 91} 92 93func (i *IdentifyUIServer) Finish(ctx context.Context, sessionID int) error { 94 return i.ui.Finish(i.newMetaContext(ctx)) 95} 96 97func (i *IdentifyUIServer) Dismiss(ctx context.Context, arg keybase1.DismissArg) error { 98 return i.ui.Dismiss(i.newMetaContext(ctx), arg.Username, arg.Reason) 99} 100 101func (i *IdentifyUIServer) DisplayTLFCreateWithInvite(ctx context.Context, arg keybase1.DisplayTLFCreateWithInviteArg) error { 102 return i.ui.DisplayTLFCreateWithInvite(i.newMetaContext(ctx), arg) 103} 104 105func NewNullIdentifyUIProtocol() rpc.Protocol { 106 return keybase1.IdentifyUiProtocol(&nullIdentifyUI{}) 107} 108 109type nullIdentifyUI struct{} 110 111func (c nullIdentifyUI) Start(context.Context, keybase1.StartArg) error { 112 return nil 113} 114func (c nullIdentifyUI) FinishWebProofCheck(context.Context, keybase1.FinishWebProofCheckArg) error { 115 return nil 116} 117func (c nullIdentifyUI) FinishSocialProofCheck(context.Context, keybase1.FinishSocialProofCheckArg) error { 118 return nil 119} 120func (c nullIdentifyUI) Confirm(context.Context, keybase1.ConfirmArg) (keybase1.ConfirmResult, error) { 121 return keybase1.ConfirmResult{}, nil 122} 123func (c nullIdentifyUI) DisplayCryptocurrency(context.Context, keybase1.DisplayCryptocurrencyArg) error { 124 return nil 125} 126func (c nullIdentifyUI) DisplayStellarAccount(context.Context, keybase1.DisplayStellarAccountArg) error { 127 return nil 128} 129func (c nullIdentifyUI) DisplayKey(context.Context, keybase1.DisplayKeyArg) error { return nil } 130func (c nullIdentifyUI) ReportLastTrack(context.Context, keybase1.ReportLastTrackArg) error { 131 return nil 132} 133func (c nullIdentifyUI) LaunchNetworkChecks(context.Context, keybase1.LaunchNetworkChecksArg) error { 134 return nil 135} 136func (c nullIdentifyUI) DisplayTrackStatement(context.Context, keybase1.DisplayTrackStatementArg) error { 137 return nil 138} 139func (c nullIdentifyUI) DisplayUserCard(context.Context, keybase1.DisplayUserCardArg) error { 140 return nil 141} 142func (c nullIdentifyUI) ReportTrackToken(context.Context, keybase1.ReportTrackTokenArg) error { 143 return nil 144} 145func (c nullIdentifyUI) Cancel(context.Context, int) error { return nil } 146func (c nullIdentifyUI) Finish(context.Context, int) error { return nil } 147func (c nullIdentifyUI) DisplayTLFCreateWithInvite(context.Context, keybase1.DisplayTLFCreateWithInviteArg) error { 148 return nil 149} 150func (c nullIdentifyUI) Dismiss(context.Context, keybase1.DismissArg) error { return nil } 151func (c nullIdentifyUI) DelegateIdentifyUI(context.Context) (int, error) { return 0, nil } 152