Skip to content

Commit

Permalink
Corrected comments, consistency, and integration test organization
Browse files Browse the repository at this point in the history
  • Loading branch information
ALCooper12 committed Aug 26, 2024
2 parents 8274d24 + 048d9ad commit 3f884c2
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 26 deletions.
24 changes: 0 additions & 24 deletions cmd/api/src/database/saved_queries_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ import (
"fmt"
"testing"

"github.com/stretchr/testify/assert"

"github.com/gofrs/uuid"
"github.com/specterops/bloodhound/src/model"
"github.com/specterops/bloodhound/src/test/integration"
Expand Down Expand Up @@ -68,25 +66,3 @@ func TestSavedQueries_ListSavedQueries(t *testing.T) {
t.Fatalf("Expected 3 saved queries to be returned")
}
}

func TestSavedQueries_IsSavedQuerySharedToUser(t *testing.T) {
var (
testCtx = context.Background()
dbInst = integration.SetupDB(t)
)

user1, err := dbInst.CreateUser(testCtx, model.User{
PrincipalName: userPrincipal,
})
require.NoError(t, err)

query, err := dbInst.CreateSavedQuery(testCtx, user1.ID, "Test Query", "TESTING", "Example")
require.NoError(t, err)

_, err = dbInst.CreateSavedQueryPermissionsToUsers(testCtx, query.ID, user1.ID)
require.NoError(t, err)

isShared, err := dbInst.IsSavedQuerySharedToUser(testCtx, query.ID, user1.ID)
require.NoError(t, err)
assert.True(t, isShared)
}
4 changes: 2 additions & 2 deletions cmd/api/src/database/savedqueriespermissions.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func (s *BloodhoundDB) CreateSavedQueryPermissionsToUsers(ctx context.Context, q
return newPermissions, CheckError(result)
}

// DeleteSavedQueryPermissionsForUsers batch deletes permissions associated a query id and a list of users
// DeleteSavedQueryPermissionsForUsers batch deletes permissions associated with a query id and a list of users
// If no user ids are supplied, all records for query id are deleted
func (s *BloodhoundDB) DeleteSavedQueryPermissionsForUsers(ctx context.Context, queryID int64, userIDs ...uuid.UUID) error {
result := s.db.WithContext(ctx).Table("saved_queries_permissions").Where("query_id = ?", queryID)
Expand Down Expand Up @@ -125,7 +125,7 @@ func (s *BloodhoundDB) GetScopeForSavedQuery(ctx context.Context, queryID int64,
// IsSavedQueryPublic returns true or false whether a provided saved query is public
func (s *BloodhoundDB) IsSavedQueryPublic(ctx context.Context, queryID int64) (bool, error) {
rows := int64(0)
result := s.db.WithContext(ctx).Select("saved_queries_permissions.*").Where("public = true AND query_id=", queryID).Count(&rows)
result := s.db.WithContext(ctx).Table("saved_queries_permissions").Where("public = true AND query_id = ?", queryID).Count(&rows)

return rows > 0, CheckError(result)
}
Expand Down
45 changes: 45 additions & 0 deletions cmd/api/src/database/savedqueriespermissions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/specterops/bloodhound/src/database"
"github.com/specterops/bloodhound/src/model"
"github.com/specterops/bloodhound/src/test/integration"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

Expand Down Expand Up @@ -291,3 +292,47 @@ func TestSavedQueriesPermissions_DeleteSavedQueryPermissionsForUsers(t *testing.
model.SavedQueryScopeShared: false,
}, scope2)
}

func TestSavedQueriesPermissions_IsSavedQueryPublic(t *testing.T) {
var (
testCtx = context.Background()
dbInst = integration.SetupDB(t)
)

user1, err := dbInst.CreateUser(testCtx, model.User{
PrincipalName: userPrincipal,
})
require.NoError(t, err)

query, err := dbInst.CreateSavedQuery(testCtx, user1.ID, "Test Query", "TESTING", "Example")
require.NoError(t, err)

_, err = dbInst.CreateSavedQueryPermissionToPublic(testCtx, query.ID)
require.NoError(t, err)

isPublic, err := dbInst.IsSavedQueryPublic(testCtx, query.ID)
require.NoError(t, err)
assert.True(t, isPublic)
}

func TestSavedQueriesPermissions_IsSavedQuerySharedToUser(t *testing.T) {
var (
testCtx = context.Background()
dbInst = integration.SetupDB(t)
)

user1, err := dbInst.CreateUser(testCtx, model.User{
PrincipalName: userPrincipal,
})
require.NoError(t, err)

query, err := dbInst.CreateSavedQuery(testCtx, user1.ID, "Test Query", "TESTING", "Example")
require.NoError(t, err)

_, err = dbInst.CreateSavedQueryPermissionsToUsers(testCtx, query.ID, user1.ID)
require.NoError(t, err)

isShared, err := dbInst.IsSavedQuerySharedToUser(testCtx, query.ID, user1.ID)
require.NoError(t, err)
assert.True(t, isShared)
}

0 comments on commit 3f884c2

Please sign in to comment.