package lib

import (
	"context"
	resourcemanager "google.golang.org/api/cloudresourcemanager/v3"
)

// GetUserRoles gets the roles of a user in the project.
func GetUserRoles(ctx context.Context, service *resourcemanager.Service, projectID, userEmail string) ([]string, error) {
	resource := "projects/" + projectID
	policy, err := service.Projects.GetIamPolicy(resource, &resourcemanager.GetIamPolicyRequest{}).Do()
	if err != nil {
		return nil, err
	}

	var roles []string
	userPrefix := "user:" + userEmail
	for _, binding := range policy.Bindings {
		for _, member := range binding.Members {
			if member == userPrefix {
				roles = append(roles, binding.Role)
			}
		}
	}

	return roles, nil
}
