parent
							
								
									ac05f88641
								
							
						
					
					
						commit
						8b35c194ec
					
				| @ -280,6 +280,18 @@ func (err ErrAccessTokenNotExist) Error() string { | ||||
| 	return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA) | ||||
| } | ||||
| 
 | ||||
| type ErrAccessTokenEmpty struct { | ||||
| } | ||||
| 
 | ||||
| func IsErrAccessTokenEmpty(err error) bool { | ||||
| 	_, ok := err.(ErrAccessTokenEmpty) | ||||
| 	return ok | ||||
| } | ||||
| 
 | ||||
| func (err ErrAccessTokenEmpty) Error() string { | ||||
| 	return fmt.Sprintf("access token is empty") | ||||
| } | ||||
| 
 | ||||
| // ________                            .__                __  .__
 | ||||
| // \_____  \_______  _________    ____ |__|____________ _/  |_|__| ____   ____
 | ||||
| //  /   |   \_  __ \/ ___\__  \  /    \|  \___   /\__  \\   __\  |/  _ \ /    \
 | ||||
|  | ||||
| @ -56,6 +56,9 @@ func NewAccessToken(t *AccessToken) error { | ||||
| 
 | ||||
| // GetAccessTokenBySHA returns access token by given sha1.
 | ||||
| func GetAccessTokenBySHA(sha string) (*AccessToken, error) { | ||||
| 	if sha == "" { | ||||
| 		return nil, ErrAccessTokenEmpty{} | ||||
| 	} | ||||
| 	t := &AccessToken{Sha1: sha} | ||||
| 	has, err := x.Get(t) | ||||
| 	if err != nil { | ||||
|  | ||||
| @ -49,7 +49,7 @@ func SignedInID(ctx *macaron.Context, sess session.Store) int64 { | ||||
| 		if len(tokenSHA) > 0 { | ||||
| 			t, err := models.GetAccessTokenBySHA(tokenSHA) | ||||
| 			if err != nil { | ||||
| 				if models.IsErrAccessTokenNotExist(err) { | ||||
| 				if models.IsErrAccessTokenNotExist(err) || models.IsErrAccessTokenEmpty(err) { | ||||
| 					log.Error(4, "GetAccessTokenBySHA: %v", err) | ||||
| 				} | ||||
| 				return 0 | ||||
|  | ||||
| @ -112,7 +112,7 @@ func HTTP(ctx *context.Context) { | ||||
| 			// Assume username now is a token.
 | ||||
| 			token, err := models.GetAccessTokenBySHA(authUsername) | ||||
| 			if err != nil { | ||||
| 				if models.IsErrAccessTokenNotExist(err) { | ||||
| 				if models.IsErrAccessTokenNotExist(err) || models.IsErrAccessTokenEmpty(err) { | ||||
| 					ctx.HandleText(http.StatusUnauthorized, "invalid token") | ||||
| 				} else { | ||||
| 					ctx.Handle(http.StatusInternalServerError, "GetAccessTokenBySha", err) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user