Created
May 25, 2017 09:14
-
-
Save nmeri17/304ce0f60c01acc3cf2cba0a76e3390d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Illuminate\Auth; | |
use Illuminate\Contracts\Auth\Authenticatable as UserContract; | |
class GenericUser implements UserContract | |
{ | |
/** | |
* All of the user's attributes. | |
* | |
* @var array | |
*/ | |
protected $attributes; | |
/** | |
* Create a new generic User object. | |
* | |
* @param array $attributes | |
* @return void | |
*/ | |
public function __construct(array $attributes) | |
{ | |
$this->attributes = $attributes; | |
} | |
/** | |
* Get the name of the unique identifier for the user. | |
* | |
* @return string | |
*/ | |
public function getAuthIdentifierName() | |
{ | |
return 'username'; | |
} | |
/** | |
* Get the unique identifier for the user. | |
* | |
* @return mixed | |
*/ | |
public function getAuthIdentifier() | |
{ | |
$name = $this->getAuthIdentifierName(); | |
return $this->attributes[$name]; | |
} | |
/** | |
* Get the password for the user. | |
* | |
* @return string | |
*/ | |
public function getAuthPassword() | |
{ | |
return $this->attributes['password']; | |
} | |
/** | |
* Get the "remember me" token value. | |
* | |
* @return string | |
*/ | |
public function getRememberToken() | |
{ | |
return $this->attributes[$this->getRememberTokenName()]; | |
} | |
/** | |
* Set the "remember me" token value. | |
* | |
* @param string $value | |
* @return void | |
*/ | |
public function setRememberToken($value) | |
{ | |
$this->attributes[$this->getRememberTokenName()] = $value; | |
} | |
/** | |
* Get the column name for the "remember me" token. | |
* | |
* @return string | |
*/ | |
public function getRememberTokenName() | |
{ | |
return 'remember_token'; | |
} | |
/** | |
* Dynamically access the user's attributes. | |
* | |
* @param string $key | |
* @return mixed | |
*/ | |
public function __get($key) | |
{ | |
return $this->attributes[$key]; | |
} | |
/** | |
* Dynamically set an attribute on the user. | |
* | |
* @param string $key | |
* @param mixed $value | |
* @return void | |
*/ | |
public function __set($key, $value) | |
{ | |
$this->attributes[$key] = $value; | |
} | |
/** | |
* Dynamically check if a value is set on the user. | |
* | |
* @param string $key | |
* @return bool | |
*/ | |
public function __isset($key) | |
{ | |
return isset($this->attributes[$key]); | |
} | |
/** | |
* Dynamically unset a value on the user. | |
* | |
* @param string $key | |
* @return void | |
*/ | |
public function __unset($key) | |
{ | |
unset($this->attributes[$key]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment