MCPcopy Create free account
hub / github.com/belak/gitdir / LookupUserFromKey

Method LookupUserFromKey

user.go:51–80  ·  view source on GitHub ↗

LookupUserFromKey looks up a user object given their PublicKey.

(pk models.PublicKey, remoteUser string)

Source from the content-addressed store, hash-verified

49
50// LookupUserFromKey looks up a user object given their PublicKey.
51func (c *Config) LookupUserFromKey(pk models.PublicKey, remoteUser string) (*User, error) {
52 username, ok := c.publicKeys[pk.RawMarshalAuthorizedKey()]
53 if !ok {
54 log.Warn().Msg("key does not exist")
55 return AnonymousUser, ErrUserNotFound
56 }
57
58 userConfig, ok := c.Users[username]
59 if !ok {
60 log.Warn().Msg("key does not match a user")
61 return AnonymousUser, ErrUserNotFound
62 }
63
64 if userConfig.Disabled {
65 log.Warn().Msg("user is disabled")
66 return AnonymousUser, ErrUserNotFound
67 }
68
69 // If they weren't the git user make sure their username matches their key.
70 if remoteUser != c.Options.GitUser && remoteUser != username {
71 log.Warn().Msg("key belongs to different user")
72 return AnonymousUser, ErrUserNotFound
73 }
74
75 return &User{
76 Username: username,
77 IsAnonymous: false,
78 IsAdmin: userConfig.IsAdmin,
79 }, nil
80}
81
82// LookupUserFromInvite looks up a user object given an invite code.
83func (c *Config) LookupUserFromInvite(invite string) (*User, error) {

Callers 3

RunHookMethod · 0.95
TestLookupUserFromKeyFunction · 0.80
handlePublicKeyMethod · 0.80

Calls 1

Tested by 1

TestLookupUserFromKeyFunction · 0.64