diff --git a/changes/clean-up-policy-query-builder b/changes/clean-up-policy-query-builder new file mode 100644 index 0000000000..a340bc793b --- /dev/null +++ b/changes/clean-up-policy-query-builder @@ -0,0 +1 @@ +* Updated conditional access policy query to use parameter binding for platform filter. diff --git a/server/datastore/mysql/policies.go b/server/datastore/mysql/policies.go index 3d2dd8d577..5725853c84 100644 --- a/server/datastore/mysql/policies.go +++ b/server/datastore/mysql/policies.go @@ -2538,9 +2538,9 @@ func (ds *Datastore) GetCalendarPolicies(ctx context.Context, teamID uint) ([]fl func (ds *Datastore) GetPoliciesForConditionalAccess(ctx context.Context, teamID uint, platform string) ([]uint, error) { // Currently, the "Conditional access" feature is for macOS hosts only. - query := `SELECT id FROM policies WHERE team_id = ? AND conditional_access_enabled AND (platforms LIKE '%` + platform + `%' OR platforms = '');` + query := `SELECT id FROM policies WHERE team_id = ? AND conditional_access_enabled AND (platforms LIKE CONCAT('%', ?, '%') OR platforms = '');` var policyIDs []uint - err := sqlx.SelectContext(ctx, ds.reader(ctx), &policyIDs, query, teamID) + err := sqlx.SelectContext(ctx, ds.reader(ctx), &policyIDs, query, teamID, platform) if err != nil { return nil, ctxerr.Wrap(ctx, err, "get policies for conditional access") }