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