fix: unable to create/update project when roles specified (#314)

Crate or Update project with roles association provided under
`projectNamespaceRoles` was failing due to empty group name passed to
Casbin. It fixes minor bug getting group name.

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
This commit is contained in:
Akshay Gaikwad
2024-05-31 14:50:16 +05:30
committed by GitHub
parent 2aec54d232
commit ccec5c3c18
2 changed files with 21 additions and 4 deletions
+1 -2
View File
@@ -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 {
+20 -2
View File
@@ -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 {