|
@@ -1,46 +0,0 @@
|
|
|
-<?php
|
|
|
-
|
|
|
-namespace Base\OAuthBundle\EventListener;
|
|
|
-
|
|
|
-use Doctrine\ORM\Events;
|
|
|
-use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
|
|
|
-use Doctrine\Common\EventSubscriber;
|
|
|
-
|
|
|
-class DynamicRelationSubscriber implements EventSubscriber
|
|
|
-{
|
|
|
- /**
|
|
|
- * {@inheritDoc}
|
|
|
- */
|
|
|
- public function getSubscribedEvents()
|
|
|
- {
|
|
|
- return array(
|
|
|
- Events::loadClassMetadata,
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @param LoadClassMetadataEventArgs $eventArgs
|
|
|
- */
|
|
|
- public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
|
|
|
- {
|
|
|
- // the $metadata is the whole mapping info for this class
|
|
|
- $metadata = $eventArgs->getClassMetadata();
|
|
|
- $classes = array(
|
|
|
- 'Base\OAuthBundle\Entity\AccessToken',
|
|
|
- 'Base\OAuthBundle\Entity\AuthCode',
|
|
|
- 'Base\OAuthBundle\Entity\RefreshToken'
|
|
|
- );
|
|
|
-
|
|
|
- if (!in_array($metadata->getName(), $classes)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- $userClass = 'Base\UserBundle\Entity\User';
|
|
|
- $OAuthUserClass = '\Base\OAuthBundle\Security\Core\User\CustomOAuthUser';
|
|
|
-
|
|
|
- $metadata->mapManyToOne(array(
|
|
|
- 'targetEntity' => class_exists($userClass) ? $userClass : $OAuthUserClass,
|
|
|
- 'fieldName' => 'user'
|
|
|
- ));
|
|
|
- }
|
|
|
-}
|