MCPcopy Create free account
hub / github.com/gogs/gogs / AfterFind

Method AfterFind

internal/database/login_sources.go:68–127  ·  view source on GitHub ↗

AfterFind implements the GORM query hook.

(_ *gorm.DB)

Source from the content-addressed store, hash-verified

66
67// AfterFind implements the GORM query hook.
68func (s *LoginSource) AfterFind(_ *gorm.DB) error {
69 s.Created = time.Unix(s.CreatedUnix, 0).Local()
70 s.Updated = time.Unix(s.UpdatedUnix, 0).Local()
71
72 switch s.Type {
73 case auth.LDAP:
74 var cfg ldap.Config
75 err := jsoniter.UnmarshalFromString(s.Config, &cfg)
76 if err != nil {
77 return err
78 }
79 s.Provider = ldap.NewProvider(false, &cfg)
80
81 case auth.DLDAP:
82 var cfg ldap.Config
83 err := jsoniter.UnmarshalFromString(s.Config, &cfg)
84 if err != nil {
85 return err
86 }
87 s.Provider = ldap.NewProvider(true, &cfg)
88
89 case auth.SMTP:
90 var cfg smtp.Config
91 err := jsoniter.UnmarshalFromString(s.Config, &cfg)
92 if err != nil {
93 return err
94 }
95 s.Provider = smtp.NewProvider(&cfg)
96
97 case auth.PAM:
98 var cfg pam.Config
99 err := jsoniter.UnmarshalFromString(s.Config, &cfg)
100 if err != nil {
101 return err
102 }
103 s.Provider = pam.NewProvider(&cfg)
104
105 case auth.GitHub:
106 var cfg github.Config
107 err := jsoniter.UnmarshalFromString(s.Config, &cfg)
108 if err != nil {
109 return err
110 }
111 s.Provider = github.NewProvider(&cfg)
112
113 case auth.Mock:
114 var cfg mockProviderConfig
115 err := jsoniter.UnmarshalFromString(s.Config, &cfg)
116 if err != nil {
117 return err
118 }
119 mockProvider := NewMockProvider()
120 mockProvider.AuthenticateFunc.SetDefaultReturn(cfg.ExternalAccount, nil)
121 s.Provider = mockProvider
122
123 default:
124 return errors.Newf("unrecognized login source type: %v", s.Type)
125 }

Callers 1

Calls 6

NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewMockProviderFunction · 0.85
SetDefaultReturnMethod · 0.45

Tested by 1