diff --git a/pkg/service/project.go b/pkg/service/project.go index 8532f3e..205b99b 100644 --- a/pkg/service/project.go +++ b/pkg/service/project.go @@ -493,13 +493,12 @@ func (s *projectService) createGroupRoleRelations(ctx context.Context, db bun.ID return &systemv3.Project{}, fmt.Errorf("unable to find group '%v'", grp) } var grpId uuid.UUID - var grpName string if g, ok := entity.(*models.Group); ok { grpId = g.ID - grpName = g.Name } else { return &systemv3.Project{}, fmt.Errorf("unable to find group '%v'", grp) } + grpName := *grp org := project.Metadata.Organization switch scope { diff --git a/pkg/service/project_test.go b/pkg/service/project_test.go index 8ce69b1..856cd86 100644 --- a/pkg/service/project_test.go +++ b/pkg/service/project_test.go @@ -32,11 +32,29 @@ func TestCreateProject(t *testing.T) { mock.ExpectBegin() mock.ExpectQuery(`INSERT INTO "authsrv_project"`). WithArgs().WillReturnRows(sqlmock.NewRows([]string{"id"}).AddRow(puuid)) + mock.ExpectQuery(`SELECT (.+) FROM "authsrv_resourcerole"`). + WithArgs().WillReturnRows(sqlmock.NewRows([]string{"id", "scope", "name"}). + AddRow(puuid, "project", "PROJECT_READ_ONLY")) + mock.ExpectQuery(`SELECT (.+) FROM "authsrv_group"`). + WithArgs().WillReturnRows(sqlmock.NewRows([]string{"id"}).AddRow(puuid)) + mock.ExpectQuery(`INSERT INTO "authsrv_projectgrouprole"`). + WithArgs().WillReturnRows(sqlmock.NewRows([]string{"id"}).AddRow(puuid)) mock.ExpectCommit() + name := "project-" + puuid + group := "group1" + project := &systemv3.Project{ - Metadata: &v3.Metadata{Id: puuid, Name: "project-" + puuid, Organization: "orgname"}, - Spec: &systemv3.ProjectSpec{}, + Metadata: &v3.Metadata{Id: puuid, Name: name, Organization: "orgname"}, + Spec: &systemv3.ProjectSpec{ + ProjectNamespaceRoles: []*userv3.ProjectNamespaceRole{ + { + Role: "PROJECT_READ_ONLY", + Project: &name, + Group: &group, + }, + }, + }, } project, err := ps.Create(context.Background(), project) if err != nil {