Unindent session updates on finalizeLogin
This commit is contained in:
		@@ -505,42 +505,45 @@ func (s *Server) finalizeLogin(identity connector.Identity, authReq storage.Auth
 | 
			
		||||
	s.logger.Infof("login successful: connector %q, username=%q, preferred_username=%q, email=%q, groups=%q",
 | 
			
		||||
		authReq.ConnectorID, claims.Username, claims.PreferredUsername, email, claims.Groups)
 | 
			
		||||
 | 
			
		||||
	if _, ok := conn.(connector.RefreshConnector); ok {
 | 
			
		||||
		// Try to retrieve an existing OfflineSession object for the corresponding user.
 | 
			
		||||
		if session, err := s.storage.GetOfflineSessions(identity.UserID, authReq.ConnectorID); err != nil {
 | 
			
		||||
			if err != storage.ErrNotFound {
 | 
			
		||||
				s.logger.Errorf("failed to get offline session: %v", err)
 | 
			
		||||
				return "", err
 | 
			
		||||
			}
 | 
			
		||||
			offlineSessions := storage.OfflineSessions{
 | 
			
		||||
				UserID:        identity.UserID,
 | 
			
		||||
				ConnID:        authReq.ConnectorID,
 | 
			
		||||
				Refresh:       make(map[string]*storage.RefreshTokenRef),
 | 
			
		||||
				ConnectorData: identity.ConnectorData,
 | 
			
		||||
			}
 | 
			
		||||
	returnURL := path.Join(s.issuerURL.Path, "/approval") + "?req=" + authReq.ID
 | 
			
		||||
	_, ok := conn.(connector.RefreshConnector)
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return returnURL, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
			// Create a new OfflineSession object for the user and add a reference object for
 | 
			
		||||
			// the newly received refreshtoken.
 | 
			
		||||
			if err := s.storage.CreateOfflineSessions(offlineSessions); err != nil {
 | 
			
		||||
				s.logger.Errorf("failed to create offline session: %v", err)
 | 
			
		||||
				return "", err
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Update existing OfflineSession obj with new RefreshTokenRef.
 | 
			
		||||
			if err := s.storage.UpdateOfflineSessions(session.UserID, session.ConnID, func(old storage.OfflineSessions) (storage.OfflineSessions, error) {
 | 
			
		||||
				if len(identity.ConnectorData) > 0 {
 | 
			
		||||
					old.ConnectorData = identity.ConnectorData
 | 
			
		||||
				}
 | 
			
		||||
				return old, nil
 | 
			
		||||
			}); err != nil {
 | 
			
		||||
				s.logger.Errorf("failed to update offline session: %v", err)
 | 
			
		||||
				return "", err
 | 
			
		||||
			}
 | 
			
		||||
	// Try to retrieve an existing OfflineSession object for the corresponding user.
 | 
			
		||||
	if session, err := s.storage.GetOfflineSessions(identity.UserID, authReq.ConnectorID); err != nil {
 | 
			
		||||
		if err != storage.ErrNotFound {
 | 
			
		||||
			s.logger.Errorf("failed to get offline session: %v", err)
 | 
			
		||||
			return "", err
 | 
			
		||||
		}
 | 
			
		||||
		offlineSessions := storage.OfflineSessions{
 | 
			
		||||
			UserID:        identity.UserID,
 | 
			
		||||
			ConnID:        authReq.ConnectorID,
 | 
			
		||||
			Refresh:       make(map[string]*storage.RefreshTokenRef),
 | 
			
		||||
			ConnectorData: identity.ConnectorData,
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Create a new OfflineSession object for the user and add a reference object for
 | 
			
		||||
		// the newly received refreshtoken.
 | 
			
		||||
		if err := s.storage.CreateOfflineSessions(offlineSessions); err != nil {
 | 
			
		||||
			s.logger.Errorf("failed to create offline session: %v", err)
 | 
			
		||||
			return "", err
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Update existing OfflineSession obj with new RefreshTokenRef.
 | 
			
		||||
		if err := s.storage.UpdateOfflineSessions(session.UserID, session.ConnID, func(old storage.OfflineSessions) (storage.OfflineSessions, error) {
 | 
			
		||||
			if len(identity.ConnectorData) > 0 {
 | 
			
		||||
				old.ConnectorData = identity.ConnectorData
 | 
			
		||||
			}
 | 
			
		||||
			return old, nil
 | 
			
		||||
		}); err != nil {
 | 
			
		||||
			s.logger.Errorf("failed to update offline session: %v", err)
 | 
			
		||||
			return "", err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return path.Join(s.issuerURL.Path, "/approval") + "?req=" + authReq.ID, nil
 | 
			
		||||
	return returnURL, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *Server) handleApproval(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user