...

Source file src/edge-infra.dev/pkg/sds/emergencyaccess/rules/storage/database/validation.go

Documentation: edge-infra.dev/pkg/sds/emergencyaccess/rules/storage/database

     1  package database
     2  
     3  import (
     4  	"context"
     5  	"database/sql"
     6  	"fmt"
     7  
     8  	rulesengine "edge-infra.dev/pkg/sds/emergencyaccess/rules"
     9  	datasql "edge-infra.dev/pkg/sds/emergencyaccess/rules/storage/database/sql"
    10  )
    11  
    12  // EARoles implements rulesengine.Dataset.
    13  func (ds Dataset) EARoles(ctx context.Context, bannerID string, command rulesengine.Command) ([]string, error) {
    14  	rows, err := ds.db.QueryContext(ctx, datasql.SelectPrivNamesForCommandAndBanner, command.Name, command.Type, bannerID)
    15  	if err != nil {
    16  		return nil, err
    17  	}
    18  	defer rows.Close()
    19  
    20  	return scanPrivRows(rows)
    21  }
    22  
    23  func scanPrivRows(rows *sql.Rows) ([]string, error) {
    24  	var res []string
    25  	for rows.Next() {
    26  		var privilege string
    27  		err := rows.Scan(&privilege)
    28  		if err != nil {
    29  			return nil, fmt.Errorf("error in data:scanPrivRows: %v", err)
    30  		}
    31  		res = append(res, privilege)
    32  	}
    33  	err := rows.Err()
    34  	if err != nil {
    35  		err = fmt.Errorf("error in data:scanPrivRows on rows.Err: %v", err)
    36  	}
    37  	return res, err
    38  }
    39  

View as plain text