Overview

Namespaces

  • PHP
  • ProgrammingAreHard
    • Arbiter
      • Domain
      • Model
  • Symfony
    • Component
      • Security
        • Acl
          • Exception
          • Model
          • Permission
        • Core
          • User

Classes

  • ChainUserProvider
  • InMemoryUserProvider
  • User
  • UserChecker

Interfaces

  • AdvancedUserInterface
  • EquatableInterface
  • UserCheckerInterface
  • UserInterface
  • UserProviderInterface
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: 
 3: /*
 4:  * This file is part of the Symfony package.
 5:  *
 6:  * (c) Fabien Potencier <fabien@symfony.com>
 7:  *
 8:  * For the full copyright and license information, please view the LICENSE
 9:  * file that was distributed with this source code.
10:  */
11: 
12: namespace Symfony\Component\Security\Core\User;
13: 
14: use Symfony\Component\Security\Core\Role\Role;
15: 
16: /**
17:  * Represents the interface that all user classes must implement.
18:  *
19:  * This interface is useful because the authentication layer can deal with
20:  * the object through its lifecycle, using the object to get the encoded
21:  * password (for checking against a submitted password), assigning roles
22:  * and so on.
23:  *
24:  * Regardless of how your user are loaded or where they come from (a database,
25:  * configuration, web service, etc), you will have a class that implements
26:  * this interface. Objects that implement this interface are created and
27:  * loaded by different objects that implement UserProviderInterface
28:  *
29:  * @see UserProviderInterface
30:  * @see AdvancedUserInterface
31:  *
32:  * @author Fabien Potencier <fabien@symfony.com>
33:  */
34: interface UserInterface
35: {
36:     /**
37:      * Returns the roles granted to the user.
38:      *
39:      * <code>
40:      * public function getRoles()
41:      * {
42:      *     return array('ROLE_USER');
43:      * }
44:      * </code>
45:      *
46:      * Alternatively, the roles might be stored on a ``roles`` property,
47:      * and populated in any number of different ways when the user object
48:      * is created.
49:      *
50:      * @return Role[] The user roles
51:      */
52:     public function getRoles();
53: 
54:     /**
55:      * Returns the password used to authenticate the user.
56:      *
57:      * This should be the encoded password. On authentication, a plain-text
58:      * password will be salted, encoded, and then compared to this value.
59:      *
60:      * @return string The password
61:      */
62:     public function getPassword();
63: 
64:     /**
65:      * Returns the salt that was originally used to encode the password.
66:      *
67:      * This can return null if the password was not encoded using a salt.
68:      *
69:      * @return string|null The salt
70:      */
71:     public function getSalt();
72: 
73:     /**
74:      * Returns the username used to authenticate the user.
75:      *
76:      * @return string The username
77:      */
78:     public function getUsername();
79: 
80:     /**
81:      * Removes sensitive data from the user.
82:      *
83:      * This is important if, at any given point, sensitive information like
84:      * the plain-text password is stored on this object.
85:      */
86:     public function eraseCredentials();
87: }
88: 
Arbiter API documentation generated by ApiGen 2.8.0