diff --git a/app/AppKernel.php b/app/AppKernel.php index a19c9c1..77a89ca 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -5,34 +5,41 @@ class AppKernel extends Kernel { - public function registerBundles() - { - $bundles = array( - new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), - new Symfony\Bundle\SecurityBundle\SecurityBundle(), - new Symfony\Bundle\TwigBundle\TwigBundle(), - new Symfony\Bundle\MonologBundle\MonologBundle(), - new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), - new Symfony\Bundle\AsseticBundle\AsseticBundle(), - new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), - new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), - new JMS\AopBundle\JMSAopBundle(), - new JMS\DiExtraBundle\JMSDiExtraBundle($this), - new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(), - ); - if (in_array($this->getEnvironment(), array('dev', 'test'))) { - $bundles[] = new Acme\DemoBundle\AcmeDemoBundle(); - $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); - $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); - $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); - } + public function registerBundles() + { + $bundles = array( + new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), + new Symfony\Bundle\SecurityBundle\SecurityBundle(), + new Symfony\Bundle\TwigBundle\TwigBundle(), + new Symfony\Bundle\MonologBundle\MonologBundle(), + new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), + new Symfony\Bundle\AsseticBundle\AsseticBundle(), + new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), + new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), + new JMS\AopBundle\JMSAopBundle(), + new JMS\DiExtraBundle\JMSDiExtraBundle( $this ), + new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(), + new Google\OauthBundle\GoogleOauthBundle(), + new Knp\Bundle\OAuthBundle\KnpOAuthBundle(), + new Sensio\Bundle\BuzzBundle\SensioBuzzBundle(), + new Fp\OpenIdBundle\FpOpenIdBundle(), + ); - return $bundles; - } + if (in_array( $this->getEnvironment(), array('dev', 'test') )) + { + $bundles[] = new Acme\DemoBundle\AcmeDemoBundle(); + $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); + $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); + $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); + } + + return $bundles; + } + + public function registerContainerConfiguration(LoaderInterface $loader) + { + $loader->load( __DIR__ . '/config/config_' . $this->getEnvironment() . '.yml' ); + } - public function registerContainerConfiguration(LoaderInterface $loader) - { - $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml'); - } } diff --git a/app/config/config.yml b/app/config/config.yml index 4dd6560..33476ff 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -1,6 +1,7 @@ imports: - { resource: parameters.yml } - { resource: security.yml } +# - { resource: @GoogleOauthBundle/Resources/config/services.yml } framework: #esi: ~ @@ -56,3 +57,7 @@ swiftmailer: username: %mailer_user% password: %mailer_password% spool: { type: memory } + +fp_open_id: + db_driver: orm + identity_class: Google\OauthBundle\Entity\OpenIdIdentity diff --git a/app/config/routing.yml b/app/config/routing.yml index 684d364..1bb17c3 100644 --- a/app/config/routing.yml +++ b/app/config/routing.yml @@ -1,3 +1,11 @@ +GoogleOauthBundle: + resource: "@GoogleOauthBundle/Controller/" + type: annotation + prefix: / + +fp_openid_security: + resource: "@FpOpenIdBundle/Resources/config/routing/security.xml" + # Internal routing configuration to handle ESI #_internal: # resource: "@FrameworkBundle/Resources/config/routing/internal.xml" diff --git a/app/config/security.yml b/app/config/security.yml index e01c1c2..4334bca 100644 --- a/app/config/security.yml +++ b/app/config/security.yml @@ -4,40 +4,88 @@ jms_security_extra: security: encoders: - Symfony\Component\Security\Core\User\User: plaintext +# Symfony\Component\Security\Core\User\User: plaintext + Google\OauthBundle\Entity\User: md5 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: - in_memory: - memory: - users: - user: { password: userpass, roles: [ 'ROLE_USER' ] } - admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } +# secured_area: +# oauth_entity: +# class: GoogleOauthBundle:User +# property: name + administrators: + entity: {class: GoogleOauthBundle:User, property: username} + openid_user_manager: + id: google.oauth.openid_user_manager + +# in_memory: +# memory: +# users: +# user: { password: userpass, roles: [ 'ROLE_USER' ] } +# admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } firewalls: - dev: - pattern: ^/(_(profiler|wdt)|css|images|js)/ - security: false + main: + pattern: ^/ + logout: true + anonymous: true + + fp_openid: + create_user_if_not_exists: true + required_attributes: [namePerson/friendly,contact/email,namePerson,birthDate,pref/language,contact/country/home,person/gender] + optional_attributes: [] + # options come with abstract listener + check_path: /login_check + default_target_path: /hello/wtf + provider: openid_user_manager - login: - pattern: ^/demo/secured/login$ - security: false - secured_area: - pattern: ^/demo/secured/ - form_login: - check_path: /demo/secured/login_check - login_path: /demo/secured/login - logout: - path: /demo/secured/logout - target: /demo/ + +# dev: +# pattern: ^/(_(profiler|wdt)|css|images|js)/ +# security: false +# +# login: +# pattern: ^/demo/secured/login$ +# security: false +# +# secured_area: +## pattern: ^/secured/ +## oauth: +## oauth_provider: google +## authorization_url: https://accounts.google.com/o/oauth2/auth +## access_token_url: https://accounts.google.com/o/oauth2/token +## infos_url: https://www.googleapis.com/oauth2/v1/userinfo +## username_path: name +## client_id: 66772032914.apps.googleusercontent.com +## secret: 6ITw8qAL--zt34nzAPodEAgW +## scope: userinfo.profile +## check_path: /secured/login_check +## login_path: /secured/login +## failure_path: / +# +# pattern: ^/demo/secured/ +# +# form_login: +# check_path: /demo/secured/login_check +# login_path: /demo/secured/login +# logout: +# path: /secured/logout +# target: / #anonymous: ~ #http_basic: # realm: "Secured Demo Area" access_control: + - { path: ^/login_openid$, role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: ^/hello, role: IS_AUTHENTICATED_OPENID } + #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 } + +#fp_open_id: +# db_driver: orm +# identity_class: Google\OauthBundle\Entity\OpenIdIdentity diff --git a/composer.json b/composer.json index 483de4d..d1d2785 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,10 @@ "sensio/generator-bundle": "dev-master", "jms/security-extra-bundle": "1.1.*", "jms/di-extra-bundle": "1.0.*", - "doctrine/data-fixtures": "*" + "doctrine/data-fixtures": "*", + "zend/gdata": "*", + "knplabs/knp-oauth-bundle": "*", + "fp/openid-bundle": "dev-master" }, "scripts": { "post-install-cmd": [ diff --git a/composer.lock b/composer.lock index 7306f0b..489d0bb 100644 --- a/composer.lock +++ b/composer.lock @@ -1,5 +1,5 @@ { - "hash": "64ef8edd92e0a1c3c3afc3d0c7f32697", + "hash": "645f8055d141ef7a26b816addeedd19b", "packages": [ { "package": "doctrine/common", @@ -8,21 +8,32 @@ { "package": "doctrine/data-fixtures", "version": "dev-master", - "source-reference": "f201391349f3dc6bd9c9c698927ea7c78104c461" + "source-reference": "d233d05437c1a10034867f22069b4bb0f7dc96b6" }, { "package": "doctrine/dbal", - "version": "2.2.2" + "version": "2.2.x-dev", + "source-reference": "8cc129aa64a8de6447056bce20f0a274fe2a340b" }, { "package": "doctrine/doctrine-bundle", "version": "dev-master", - "source-reference": "5dad4a6ae187c6d345ec2b02be20ccc33779f53e" + "source-reference": "f100a7727b89ab5519ed68a72d29e75eb2c85d8b" }, { "package": "doctrine/orm", "version": "2.2.x-dev", - "source-reference": "202e675d2bf25ce980acc2db69bb971beb8936b9" + "source-reference": "5f66c65c9a8d984899903b54215d0249a45b92d6" + }, + { + "package": "fp/lightopenid", + "version": "dev-master", + "source-reference": "ad14146f9c93e90699888e150427aca431dc3c18" + }, + { + "package": "fp/openid-bundle", + "version": "dev-master", + "source-reference": "1.3.0" }, { "package": "jms/aop-bundle", @@ -44,6 +55,16 @@ "package": "jms/security-extra-bundle", "version": "1.1.0" }, + { + "package": "knplabs/knp-oauth-bundle", + "version": "dev-master", + "source-reference": "307baaa564ed41a9fe666e358ec6d4dcf0294ccc" + }, + { + "package": "kriswallsmith/assetic", + "version": "dev-master", + "source-reference": "1a1b5f963db158a1065343fab617d25ce351a2dc" + }, { "package": "kriswallsmith/assetic", "version": "dev-master", @@ -52,47 +73,45 @@ "alias-version": "1.1.9999999.9999999-dev" }, { - "package": "kriswallsmith/assetic", + "package": "kriswallsmith/buzz", "version": "dev-master", - "source-reference": "1a1b5f963db158a1065343fab617d25ce351a2dc" + "source-reference": "5c7d0523501f02c766166b08ac98613bde0254b5" }, { "package": "monolog/monolog", "version": "1.1.0" }, { - "package": "sensio/distribution-bundle", + "package": "sensio/buzz-bundle", "version": "dev-master", - "source-reference": "6517345b6b28021efad311123413000792e892ee" + "source-reference": "0754d7dd155efc4f85de60993571b0b6a5aaccb9" }, { - "package": "sensio/framework-extra-bundle", + "package": "sensio/distribution-bundle", "version": "dev-master", - "source-reference": "ab3130462a01437f4f748a778100e010c6d91ed3" + "source-reference": "7d75b222c8e4ead64ff82e5c9b2fa3ba71c70cf0" }, { - "package": "sensio/generator-bundle", + "package": "sensio/framework-extra-bundle", "version": "dev-master", - "source-reference": "423f505811307185eeea38a0a396bede32713497" + "source-reference": "e00b525b14784ea4f21c14945e58b4a76a530a6a" }, { - "package": "swiftmailer/swiftmailer", + "package": "sensio/generator-bundle", "version": "dev-master", - "source-reference": "9895567cec5a13d1a43db5053defbaad260c1b87", - "alias-pretty-version": "4.1.x-dev", - "alias-version": "4.1.9999999.9999999-dev" + "source-reference": "0813379920dcaa4b06361501f654379383d75f16" }, { "package": "swiftmailer/swiftmailer", "version": "dev-master", - "source-reference": "57789082d1d53529dcf8cd3ca132d9787a59afee", + "source-reference": "d33d54cc8a081b0b85734744936ede1ba230dd64", "alias-pretty-version": "4.1.x-dev", "alias-version": "4.1.9999999.9999999-dev" }, { "package": "swiftmailer/swiftmailer", "version": "dev-master", - "source-reference": "9895567cec5a13d1a43db5053defbaad260c1b87" + "source-reference": "d33d54cc8a081b0b85734744936ede1ba230dd64" }, { "package": "symfony/assetic-bundle", @@ -102,60 +121,72 @@ { "package": "symfony/monolog-bundle", "version": "dev-master", - "source-reference": "51a25acc57f4c027b28f0305976b887e2da6250a" - }, - { - "package": "symfony/swiftmailer-bridge", - "version": "dev-master", - "source-reference": "463536de4b149e1560bd764582cbf50dc9936ebd", - "alias-pretty-version": "2.1.x-dev", - "alias-version": "2.1.9999999.9999999-dev" + "source-reference": "1231105826078c117e07e57d7f658141d6147d35" }, { "package": "symfony/swiftmailer-bridge", "version": "dev-master", - "source-reference": "509901cb13f43a6319a55804f787d206aa649ab4", + "source-reference": "408eb09f5799d393ddc3d916ec3667857fb3a20d", "alias-pretty-version": "2.1.x-dev", "alias-version": "2.1.9999999.9999999-dev" }, { "package": "symfony/swiftmailer-bridge", "version": "dev-master", - "source-reference": "509901cb13f43a6319a55804f787d206aa649ab4" + "source-reference": "408eb09f5799d393ddc3d916ec3667857fb3a20d" }, { "package": "symfony/swiftmailer-bundle", "version": "dev-master", - "source-reference": "7a7ab8ec2dd6ec381eed5be999164095ef757bdf" + "source-reference": "71e1789868665cf94dc7831f645625fd0f70aac6" }, { "package": "symfony/symfony", "version": "dev-master", - "source-reference": "18132c18b41637a05a3a13990651a4054cf0ce59" + "source-reference": "49e213ce7c6b9957433c2a64a0144c9ee4b61266", + "alias-pretty-version": "2.1.x-dev", + "alias-version": "2.1.9999999.9999999-dev" }, { "package": "symfony/symfony", "version": "dev-master", - "source-reference": "18132c18b41637a05a3a13990651a4054cf0ce59", + "source-reference": "adf07f1e539193ae1975348afc34ed37e1382e0a", "alias-pretty-version": "2.1.x-dev", "alias-version": "2.1.9999999.9999999-dev" }, + { + "package": "symfony/symfony", + "version": "dev-master", + "source-reference": "49e213ce7c6b9957433c2a64a0144c9ee4b61266" + }, { "package": "twig/extensions", "version": "dev-master", - "source-reference": "446d870272cd87a720e95242eade38a2acf56eaa" + "source-reference": "feb6d3f10c411e2631997c0a905aa581c80305c1" + }, + { + "package": "twig/twig", + "version": "dev-master", + "source-reference": "82e73f6bf26b2301c8d7b51807660bf9ccd43020" }, { "package": "twig/twig", "version": "dev-master", - "source-reference": "875fa010ce597edf97c04ce6490be950068e9372" + "source-reference": "78a935b6ffbcbd8f4e740df895f87a93347b551c", + "alias-pretty-version": "1.8.x-dev", + "alias-version": "1.8.9999999.9999999-dev" }, { "package": "twig/twig", "version": "dev-master", - "source-reference": "875fa010ce597edf97c04ce6490be950068e9372", + "source-reference": "82e73f6bf26b2301c8d7b51807660bf9ccd43020", "alias-pretty-version": "1.8.x-dev", "alias-version": "1.8.9999999.9999999-dev" + }, + { + "package": "zend/gdata", + "version": "dev-master", + "source-reference": "827dc8696f1e5b70a4c507355877cdbab60fb3fa" } ], "packages-dev": null, @@ -171,6 +202,7 @@ "symfony/monolog-bundle": 20, "sensio/distribution-bundle": 20, "sensio/framework-extra-bundle": 20, - "sensio/generator-bundle": 20 + "sensio/generator-bundle": 20, + "fp/openid-bundle": 20 } } diff --git a/nbproject/project.properties b/nbproject/project.properties deleted file mode 100644 index 94429c9..0000000 --- a/nbproject/project.properties +++ /dev/null @@ -1,7 +0,0 @@ -include.path=${php.global.include.path} -php.version=PHP_53 -source.encoding=UTF-8 -src.dir=. -tags.asp=false -tags.short=true -web.root=. diff --git a/nbproject/project.xml b/nbproject/project.xml deleted file mode 100644 index 50d6887..0000000 --- a/nbproject/project.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - org.netbeans.modules.php.project - - - monSymfony2 - - - diff --git a/php_error_log b/php_error_log new file mode 100644 index 0000000..8aab109 --- /dev/null +++ b/php_error_log @@ -0,0 +1,2 @@ +[29-May-2012 09:23:44] PHP Fatal error: Declaration of Google\OauthBundle\Entity\OpenIdIdentity::setUser() must be compatible with that of Fp\OpenIdBundle\Model\UserIdentityInterface::setUser() in C:\wamp\www\monSymfony2\src\Google\OauthBundle\Entity\OpenIdIdentity.php on line 15 +[29-May-2012 09:23:47] PHP Fatal error: Declaration of Google\OauthBundle\Entity\OpenIdIdentity::setUser() must be compatible with that of Fp\OpenIdBundle\Model\UserIdentityInterface::setUser() in C:\wamp\www\monSymfony2\src\Google\OauthBundle\Entity\OpenIdIdentity.php on line 15 diff --git a/src/Google/OauthBundle/Controller/DefaultController.php b/src/Google/OauthBundle/Controller/DefaultController.php new file mode 100644 index 0000000..749fa84 --- /dev/null +++ b/src/Google/OauthBundle/Controller/DefaultController.php @@ -0,0 +1,65 @@ + 'Zend_Http_Client_Adapter_Proxy', +// 'proxy' => 'localhost', +// 'proxy_port' => 3128 +// ); +// $proxiedHttpClient = new \Zend_Http_Client( 'http://www.google.com:443/', $config ); + + $client = \Zend_Gdata_ClientLogin::getHttpClient( $this->email, $this->password, \Zend_Gdata_Gapps::AUTH_SERVICE_NAME ); + $gdata = new \Zend_Gdata_Gapps( $client, self::domain ); +// $service->createUser( $this->username, $this->givenname, $this->familyname, $this->password_c, $passwordHashFunction = null, $quota = null ); + $users = $gdata->getUserFeed(); + + foreach ($users as $user) + { + echo " * " . $user->login->username . ' (' . $user->name->givenName . + ' ' . $user->name->familyName . ")\n"; + } + + var_dump( $gdata->isOwner( 'gotcha@teamlogin.com', 'hr' ) ); + + var_dump( $this->get( 'request' )->request ); + var_dump ($this->get( 'security.context' )->getToken()->getAttributes()); + $this->getRequest()->getSession()->set( 'ca', 'ca ni ma' ); + var_dump( $this->getRequest()->getSession()->get( 'gaga' ) ); + + +// $openid = $this->getDoctrine()->getRepository( 'GoogleOauthBundle:OpenIdIdentity' ); +// $open_result = $openid->find(2); +// var_dump($open_result); + + + return array('name' => $name); + } + + +} diff --git a/src/Google/OauthBundle/DependencyInjection/Configuration.php b/src/Google/OauthBundle/DependencyInjection/Configuration.php new file mode 100644 index 0000000..98d1cf8 --- /dev/null +++ b/src/Google/OauthBundle/DependencyInjection/Configuration.php @@ -0,0 +1,29 @@ +root('google_oauth'); + + // Here you should define the parameters that are allowed to + // configure your bundle. See the documentation linked above for + // more information on that topic. + + return $treeBuilder; + } +} diff --git a/src/Google/OauthBundle/DependencyInjection/GoogleOauthExtension.php b/src/Google/OauthBundle/DependencyInjection/GoogleOauthExtension.php new file mode 100644 index 0000000..2ab524a --- /dev/null +++ b/src/Google/OauthBundle/DependencyInjection/GoogleOauthExtension.php @@ -0,0 +1,28 @@ +processConfiguration($configuration, $configs); + + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader->load('services.yml'); + } +} diff --git a/src/Google/OauthBundle/Entity/OpenIdIdentity.php b/src/Google/OauthBundle/Entity/OpenIdIdentity.php new file mode 100644 index 0000000..ee86b35 --- /dev/null +++ b/src/Google/OauthBundle/Entity/OpenIdIdentity.php @@ -0,0 +1,70 @@ +id; +// } + +// /** +// * Set user +// * +// * @param Google\OauthBundle\Entity\User $user +// * @return OpenIdIdentity +// */ +// public function setUser(\Google\OauthBundle\Entity\User $user = null) +// { +// $this->user = $user; +// return $this; +// } +// +// /** +// * Get user +// * +// * @return Google\OauthBundle\Entity\User +// */ +// public function getUser() +// { +// return $this->user; +// } + +} \ No newline at end of file diff --git a/src/Google/OauthBundle/Entity/OpenIdIdentity.php~ b/src/Google/OauthBundle/Entity/OpenIdIdentity.php~ new file mode 100644 index 0000000..2dc6cbc --- /dev/null +++ b/src/Google/OauthBundle/Entity/OpenIdIdentity.php~ @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/src/Google/OauthBundle/Entity/OpenIdUserManager.php b/src/Google/OauthBundle/Entity/OpenIdUserManager.php new file mode 100644 index 0000000..3f7abf9 --- /dev/null +++ b/src/Google/OauthBundle/Entity/OpenIdUserManager.php @@ -0,0 +1,51 @@ +identityManager = $identityManager; + $this->em = $em; + } + + public function createUserFromIdentity($identity, array $attributes = array()) + { + //put your user creation logic here + $user = new User(); + $user->setEmail( isset( $attributes['contact/email'] ) ? $attributes['contact/email'] : '' ); +// $factory = $this->get( 'security.encoder_factory' ); +// $encoder = $factory->getEncoder( $user ); +// $password = $encoder->encodePassword( 'lichenpass', $user->getSalt() ); + $user->setPassword( 'haha' ); + if ($attributes['contact/email']) + { + $username = explode( "@", $attributes['contact/email'] ); + } + $user->setUsername( $username[0] ); + + + $openid = new OpenIdIdentity(); + $openid->setIdentity( $identity ); + $openid->setAttributes( $attributes ); + $openid->setUser( $user ); + $this->em->persist( $user ); + $this->em->persist( $openid ); + $this->em->flush(); + return $user; // must always return UserInterface instance or throw an exception. + } + +} + +?> \ No newline at end of file diff --git a/src/Google/OauthBundle/Entity/User.php b/src/Google/OauthBundle/Entity/User.php new file mode 100644 index 0000000..0c0ed63 --- /dev/null +++ b/src/Google/OauthBundle/Entity/User.php @@ -0,0 +1,191 @@ +isActive = true; + $this->salt = md5( uniqid( null, true ) ); + } + + /** + * @inheritDoc + */ + public function getUsername() + { + return $this->username; + } + + /** + * @inheritDoc + */ + public function getSalt() + { + return $this->salt; + } + + /** + * @inheritDoc + */ + public function getPassword() + { + return $this->password; + } + + /** + * @inheritDoc + */ + public function getRoles() + { + return array('ROLE_USER'); + } + + /** + * @inheritDoc + */ + public function eraseCredentials() + { + + } + + /** + * @inheritDoc + */ + public function equals(UserInterface $user) + { + return $this->username === $user->getUsername(); + } + + /** + * Get id + * + * @return integer + */ + public function getId() + { + return $this->id; + } + + /** + * Set username + * + * @param string $username + * @return User + */ + public function setUsername($username) + { + $this->username = $username; + return $this; + } + + /** + * Set salt + * + * @param string $salt + * @return User + */ + public function setSalt($salt) + { + $this->salt = $salt; + return $this; + } + + /** + * Set password + * + * @param string $password + * @return User + */ + public function setPassword($password) + { + $this->password = $password; + return $this; + } + + /** + * Set email + * + * @param string $email + * @return User + */ + public function setEmail($email) + { + $this->email = $email; + return $this; + } + + /** + * Get email + * + * @return string + */ + public function getEmail() + { + return $this->email; + } + + /** + * Set isActive + * + * @param boolean $isActive + * @return User + */ + public function setIsActive($isActive) + { + $this->isActive = $isActive; + return $this; + } + + /** + * Get isActive + * + * @return boolean + */ + public function getIsActive() + { + return $this->isActive; + } + +} \ No newline at end of file diff --git a/src/Google/OauthBundle/Entity/User.php~ b/src/Google/OauthBundle/Entity/User.php~ new file mode 100644 index 0000000..148a5f6 --- /dev/null +++ b/src/Google/OauthBundle/Entity/User.php~ @@ -0,0 +1,101 @@ +isActive = true; + $this->salt = md5( uniqid( null, true ) ); + } + + /** + * @inheritDoc + */ + public function getUsername() + { + return $this->username; + } + + /** + * @inheritDoc + */ + public function getSalt() + { + return $this->salt; + } + + /** + * @inheritDoc + */ + public function getPassword() + { + return $this->password; + } + + /** + * @inheritDoc + */ + public function getRoles() + { + return array('ROLE_USER'); + } + + /** + * @inheritDoc + */ + public function eraseCredentials() + { + + } + + /** + * @inheritDoc + */ + public function equals(UserInterface $user) + { + return $this->username === $user->getUsername(); + } + +} \ No newline at end of file diff --git a/src/Google/OauthBundle/GoogleOauthBundle.php b/src/Google/OauthBundle/GoogleOauthBundle.php new file mode 100644 index 0000000..a78e8ee --- /dev/null +++ b/src/Google/OauthBundle/GoogleOauthBundle.php @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/Google/OauthBundle/Resources/config/services.yml b/src/Google/OauthBundle/Resources/config/services.yml new file mode 100644 index 0000000..d89742c --- /dev/null +++ b/src/Google/OauthBundle/Resources/config/services.yml @@ -0,0 +1,17 @@ +parameters: + google_oauth.example.class: Google\OauthBundle\Example + doctrine_orm_entity_manager: Doctrine\ORM\EntityManager + +services: +# google_oauth.example: +# class: %google_oauth.example.class% +# arguments: [@service_id, plain_value, %parameter_name%] + +# entity_manager: +# class: Doctrine\ORM\EntityManager + + google.oauth.openid_user_manager: + class: Google\OauthBundle\Entity\OpenIdUserManager + arguments: [@doctrine.orm.default_entity_manager, @fp_openid.identity_manager] + + diff --git a/src/Google/OauthBundle/Resources/views/Default/index.html.twig b/src/Google/OauthBundle/Resources/views/Default/index.html.twig new file mode 100644 index 0000000..4ce626e --- /dev/null +++ b/src/Google/OauthBundle/Resources/views/Default/index.html.twig @@ -0,0 +1 @@ +Hello {{ name }}! diff --git a/src/Google/OauthBundle/Tests/Controller/DefaultControllerTest.php b/src/Google/OauthBundle/Tests/Controller/DefaultControllerTest.php new file mode 100644 index 0000000..da7bb1b --- /dev/null +++ b/src/Google/OauthBundle/Tests/Controller/DefaultControllerTest.php @@ -0,0 +1,17 @@ +request('GET', '/hello/Fabien'); + + $this->assertTrue($crawler->filter('html:contains("Hello Fabien")')->count() > 0); + } +}