4 Commits
2 changed files with 54 additions and 24 deletions

No files matched your search

+49 -21
View File
@@ -4,60 +4,88 @@ namespace Ulmus\User\Entity;
use Ulmus\Entity\Field\Datetime;
use Ulmus\Attribute\Property\Field;
class User {
#[Field\Id(readonly: true)]
/**
* @Id('readonly' => true)
*/
public int $id;
#[Field(length: 35, name: "first_name")]
/**
* @Field("length" => 35, "name" => "first_name")
*/
public ? string $firstName;
#[Field(length: 35, name: "last_name")]
/**
* @Field("length" => 35, "name" => "last_name")
*/
public ? string $lastName;
#[Field(length: 150)]
/**
* @Field("length" => 255)
*/
public string $email;
#[Field(length: 150)]
/**
* @Field("length" => 150)
*/
public ? string $address;
#[Field(length: 15, name: "zip_code")]
/**
* @Field("length" => 15, 'name' => "zip_code")
*/
public ? string $zipCode;
#[Field(length: 45)]
/**
* @Field("length" => 45)
*/
public ? string $province;
#[Field(length: 3)]
/**
* @Field("length" => 3)
*/
public ? string $country;
#[Field(length: 15)]
/**
* @Field("length" => 15)
*/
public ? string $phone;
#[Field(length: 15)]
/**
* @Field("length" => 15)
*/
public ? string $ext;
#[Field(length: 15)]
/**
* @Field("length" => 15)
*/
public ? string $mobile;
#[Field(length: 255)]
/**
* @Field("length" => 255)
*/
public ? string $username;
#[Field]
/**
* @Field
*/
public string $password;
#[Field\UpdatedAt(readonly: true, name: "updated_at")]
/**
* @UpdatedAt('readonly' => true, 'name' => "updated_at")
*/
public ? Datetime $updatedAt;
#[Field\CreatedAt(readonly: true, name: "created_at")]
/**
* @CreatedAt('readonly' => true, 'name' => "created_at")
*/
public Datetime $createdAt;
public bool $logged = false;
public function __toString() : string
{
return $this->fullname();
return "{$this->firstName} {$this->lastName}";
}
public function setPassword($password) : self
@@ -67,16 +95,16 @@ class User {
return $this->hashPassword();
}
public function hashPassword() : self
public function hashPassword(? string $password = null) : self
{
$this->password = password_hash($this->password, PASSWORD_DEFAULT);
$this->password = password_hash($password ?: $this->password, PASSWORD_DEFAULT);
return $this;
}
public function verifyPassword(string $password) : bool
{
return password_verify($password, $this->password );
return password_verify($password, $this->password);
}
public function fullname() : string
+5 -3
View File
@@ -35,8 +35,8 @@ class Authenticate {
public function rememberMe(\Ulmus\Repository $repository) : ? User
{
$logUser = function(int $id) use ($repository) {
if ( null === ( $user = $repository->loadFromPk($id) ) ) {
$logUser = function(? int $id) use ($repository) {
if ( $id === null || null === ( $user = $repository->loadFromPk($id) ) ) {
throw new \Exception("User not found.");
}
@@ -123,7 +123,9 @@ class Authenticate {
$this->cookie->delete('user.id');
}
$this->user->logged = false;
if (isset($this->user)) {
$this->user->logged = false;
}
return $this;
}