MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / handleUserOAuthCallback

Function handleUserOAuthCallback

cmd/cql-proxy/api/user_oauth.go:122–196  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

120}
121
122func handleUserOAuthCallback(c *gin.Context) (res gin.H, status int, err error) {
123 r := struct {
124 Provider string `json:"provider" form:"provider" uri:"provider" binding:"required"`
125 }{}
126
127 _ = c.ShouldBindUri(&r)
128
129 err = c.ShouldBind(&r)
130 if err != nil {
131 status = http.StatusBadRequest
132 return
133 }
134
135 var projectDB *gorp.DbMap
136 projectDB, err = getCurrentProjectDB(c)
137 if err != nil {
138 err = errors.Wrapf(err, "get project database failed")
139 status = http.StatusBadRequest
140 return
141 }
142
143 var miscConfig *model.ProjectMiscConfig
144 _, miscConfig, err = model.GetProjectMiscConfig(projectDB)
145 if err != nil || !miscConfig.IsEnabled() {
146 err = errors.Wrapf(err, "project is disabled for service")
147 status = http.StatusForbidden
148 return
149 }
150
151 var oauthConfig *model.ProjectOAuthConfig
152 _, oauthConfig, err = model.GetProjectOAuthConfig(projectDB, r.Provider)
153 if err != nil {
154 _ = c.Error(err)
155 err = ErrGetProjectConfigFailed
156 status = http.StatusForbidden
157 return
158 }
159
160 if !oauthConfig.IsEnabled() {
161 status = http.StatusForbidden
162 err = errors.New("oauth provider disabled")
163 return
164 }
165
166 ch := make(chan *userOAuthCallbackPayload, 1)
167
168 auth.HandleUserCallback(
169 c,
170 r.Provider,
171 oauthConfig.ClientID,
172 oauthConfig.ClientSecret,
173 handleUserOAuthCallbackSuccess(c, miscConfig, projectDB, r.Provider, ch),
174 func(err error) {
175 resp := &userOAuthCallbackPayload{
176 err: err,
177 status: http.StatusBadRequest,
178 }
179 select {

Callers 2

userOAuthCallbackFunction · 0.85
userOAuthAPICallbackFunction · 0.85

Calls 9

IsEnabledMethod · 0.95
IsEnabledMethod · 0.95
GetProjectMiscConfigFunction · 0.92
GetProjectOAuthConfigFunction · 0.92
HandleUserCallbackFunction · 0.92
getCurrentProjectDBFunction · 0.85
ErrorMethod · 0.80
NewMethod · 0.65

Tested by

no test coverage detected