Browse Source

Merge remote-tracking branch 'bgaleotti/email-logging'

Jordi Boggiano 13 years ago
parent
commit
5eb71f62c7

+ 4 - 4
app/config/security.yml

@@ -1,20 +1,20 @@
 security:
     providers:
-        fos_userbundle:
-            id: fos_user.user_manager
+        packagist:
+            id: packagist.user_provider
 
     firewalls:
         main:
             pattern:      .*
             form_login:
-                provider:       fos_userbundle
+                provider:       packagist
                 login_path:     /login
                 use_forward:    false
                 check_path:     /login_check
                 failure_path:   null
             remember_me:
                 key: %remember_me.secret%
-                user_providers: fos_userbundle
+                user_providers: packagist
                 name: pauth
                 remember_me_parameter: _remember_me
                 lifetime: 31104000 # 1y

+ 5 - 0
src/Packagist/WebBundle/Resources/config/services.yml

@@ -8,3 +8,8 @@ services:
     packagist.package_dumper:
         class: Packagist\WebBundle\Package\Dumper
         arguments: [ @doctrine, @filesystem, @router, %kernel.root_dir%/../web/, %kernel.cache_dir% ]
+
+    packagist.user_provider:
+        class: Packagist\WebBundle\Security\Provider\UserProvider
+        public: false
+        arguments: ["@fos_user.user_manager"]

+ 64 - 0
src/Packagist/WebBundle/Security/Provider/UserProvider.php

@@ -0,0 +1,64 @@
+<?php
+
+/*
+ * This file is part of Packagist.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *     Nils Adermann <naderman@naderman.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Packagist\WebBundle\Security\Provider;
+
+use FOS\UserBundle\Model\UserManagerInterface;
+use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
+use Symfony\Component\Security\Core\User\UserProviderInterface;
+use Symfony\Component\Security\Core\User\UserInterface;
+
+class UserProvider implements UserProviderInterface
+{
+    /**
+     * @var UserManagerInterface
+     */
+    private $userManager;
+
+    /**
+     * @param UserManagerInterface $userManager
+     */
+    public function __construct(UserManagerInterface $userManager)
+    {
+        $this->userManager = $userManager;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function loadUserByUsername($usernameOrEmail)
+    {
+        $user = $this->userManager->findUserByUsernameOrEmail($usernameOrEmail);
+
+        if (!$user) {
+            throw new UsernameNotFoundException(sprintf('No user with name or email "%s" was found.', $usernameOrEmail));
+        }
+
+        return $user;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function refreshUser(UserInterface $user)
+    {
+        return $this->userManager->refreshUser($user);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function supportsClass($class)
+    {
+        return $this->userManager->supportsClass($class);
+    }
+}