@@ -75,7 +75,7 @@ func (api *api) userOAuth2Github(rw http.ResponseWriter, r *http.Request) {
75
75
// Search for existing users with matching and verified emails.
76
76
// If a verified GitHub email matches a Coder user, we will return.
77
77
for _ , email := range emails {
78
- if email .Verified == nil {
78
+ if ! email .GetVerified () {
79
79
continue
80
80
}
81
81
user , err = api .Database .GetUserByEmailOrUsername (r .Context (), database.GetUserByEmailOrUsernameParams {
@@ -123,8 +123,22 @@ func (api *api) userOAuth2Github(rw http.ResponseWriter, r *http.Request) {
123
123
})
124
124
return
125
125
}
126
+ var verifiedEmail * github.UserEmail
127
+ for _ , email := range emails {
128
+ if ! email .GetPrimary () || ! email .GetVerified () {
129
+ continue
130
+ }
131
+ verifiedEmail = email
132
+ break
133
+ }
134
+ if verifiedEmail == nil {
135
+ httpapi .Write (rw , http .StatusPreconditionRequired , httpapi.Response {
136
+ Message : "Your primary email must be verified on GitHub!" ,
137
+ })
138
+ return
139
+ }
126
140
user , _ , err = api .createUser (r .Context (), codersdk.CreateUserRequest {
127
- Email : * ghUser .Email ,
141
+ Email : * verifiedEmail .Email ,
128
142
Username : * ghUser .Login ,
129
143
OrganizationID : organizationID ,
130
144
})
0 commit comments