@@ -327,7 +327,7 @@ public function getIdentitySegments(string $identifier, ?object $traits = null):
327327 }
328328
329329 $ traits = $ traits ?? (object )[];
330- $ identityModel = $ this ->buildIdentityModel ($ identifier , $ traits );
330+ $ identityModel = $ this ->getIdentityModel ($ identifier , $ traits );
331331 $ segmentModels = SegmentEvaluator::getIdentitySegments ($ this ->environment , $ identityModel );
332332
333333 return array_map (fn ($ segment ) => (new Segment ())
@@ -384,7 +384,7 @@ private function getEnvironmentFlagsFromDocument(): Flags
384384 */
385385 private function getIdentityFlagsFromDocument (string $ identifier , object $ traits ): Flags
386386 {
387- $ identityModel = $ this ->buildIdentityModel ($ identifier , $ traits );
387+ $ identityModel = $ this ->getIdentityModel ($ identifier , $ traits );
388388 $ featureStates = Engine::getIdentityFeatureStates ($ this ->environment , $ identityModel );
389389
390390 return Flags::fromFeatureStateModels (
@@ -461,7 +461,7 @@ private function getIdentityFlagsFromApi(string $identifier, ?object $traits): F
461461 *
462462 * @throws FlagsmithClientError
463463 */
464- private function buildIdentityModel (string $ identifier , ?object $ traits ): IdentityModel
464+ private function getIdentityModel (string $ identifier , ?object $ traits ): IdentityModel
465465 {
466466 if (empty ($ this ->environment )) {
467467 throw new FlagsmithClientError ('Unable to build identity model when no local environment present. ' );
@@ -474,10 +474,16 @@ private function buildIdentityModel(string $identifier, ?object $traits): Identi
474474 ->withTraitValue ($ value );
475475 }
476476
477- return (new IdentityModel ())
478- ->withIdentifier ($ identifier )
479- ->withEnvironmentApiKey ($ this ->apiKey )
480- ->withIdentityTraits (new IdentityTraitList ($ traitModels ));
477+ $ identityModel = isset ($ this ->environment ->identity_overrides ) ? $ this ->environment ->identity_overrides [$ identifier ] ?? null : null ;
478+
479+ if (is_null ($ identityModel )) {
480+ return (new IdentityModel ())
481+ ->withIdentifier ($ identifier )
482+ ->withEnvironmentApiKey ($ this ->apiKey )
483+ ->withIdentityTraits (new IdentityTraitList ($ traitModels ));
484+ }
485+
486+ return $ identityModel ->withIdentityTraits (new IdentityTraitList ($ traitModels ));
481487 }
482488
483489 /**
0 commit comments