More robust handling for missing email
This commit is contained in:
		
							parent
							
								
									c1bf1ad167
								
							
						
					
					
						commit
						0692c3763f
					
				|  | @ -15,6 +15,7 @@ func testOptions() *Options { | |||
| 	o.CookieSecret = "foobar" | ||||
| 	o.ClientID = "bazquux" | ||||
| 	o.ClientSecret = "xyzzyplugh" | ||||
| 	o.EmailDomains = []string{"*"} | ||||
| 	return o | ||||
| } | ||||
| 
 | ||||
|  | @ -27,6 +28,7 @@ func errorMsg(msgs []string) string { | |||
| 
 | ||||
| func TestNewOptions(t *testing.T) { | ||||
| 	o := NewOptions() | ||||
| 	o.EmailDomains = []string{"*"} | ||||
| 	err := o.Validate() | ||||
| 	assert.NotEqual(t, nil, err) | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,7 +2,6 @@ package providers | |||
| 
 | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
|  | @ -211,5 +210,5 @@ func (p *GitHubProvider) GetEmailAddress(s *SessionState) (string, error) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return "", errors.New("no email address found") | ||||
| 	return "", nil | ||||
| } | ||||
|  |  | |||
|  | @ -3,7 +3,6 @@ package providers | |||
| import ( | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 
 | ||||
|  | @ -60,13 +59,11 @@ func (p *LinkedInProvider) GetEmailAddress(s *SessionState) (string, error) { | |||
| 
 | ||||
| 	json, err := api.Request(req) | ||||
| 	if err != nil { | ||||
| 		log.Printf("failed making request %s", err) | ||||
| 		return "", err | ||||
| 	} | ||||
| 
 | ||||
| 	email, err := json.String() | ||||
| 	if err != nil { | ||||
| 		log.Printf("failed making request %s", err) | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return email, nil | ||||
|  |  | |||
|  | @ -71,9 +71,11 @@ func newValidatorImpl(domains []string, usersFile string, | |||
| 		domains[i] = fmt.Sprintf("@%s", strings.ToLower(domain)) | ||||
| 	} | ||||
| 
 | ||||
| 	validator := func(email string) bool { | ||||
| 	validator := func(email string) (valid bool) { | ||||
| 		if email == "" { | ||||
| 			return | ||||
| 		} | ||||
| 		email = strings.ToLower(email) | ||||
| 		valid := false | ||||
| 		for _, domain := range domains { | ||||
| 			valid = valid || strings.HasSuffix(email, domain) | ||||
| 		} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue