username = $form_model->getItem('username'); $model->email = $form_model->getItem('email'); $model->password_hash = password_hash($form_model->getItem('password'), PASSWORD_DEFAULT); if ($model->save()){ return $model; } return false; } public function update(FormModel $form_model, User $user): false|User { $user->username = $form_model->getItem('username'); $user->email = $form_model->getItem('email'); if ($form_model->getItem('password')) { $user->password_hash = password_hash($form_model->getItem('password'), PASSWORD_DEFAULT); } if ($user->save()){ return $user; } return false; } /** * @param string $field * @param string $value * @return mixed */ public function getByField(string $field, string $value) { return User::where($field, $value)->first(); } public static function createUsernameArr(): array { foreach (User::all()->toArray() as $user) { $userArr[$user['id']] = $user['username']; } if (!empty($userArr)) { return $userArr; } return []; } public static function getAuthUser() { if (isset($_COOKIE['user_id'])){ $user = User::where("id", $_COOKIE['user_id'])->first(); if ($user){ return $user; } } return false; } public static function getAuthUsername(): string { $user = self::getAuthUser(); if ($user){ return $user->username; } return ''; } public function getByAccessToken(string $token) { return $this->getByField("access_token", $token); } public static function createUserByEmailAndPassword(string $email, string $password): void { $user = new User(); $user->email = $email; $user->username = $email; $user->password_hash = password_hash($password, PASSWORD_DEFAULT); $user->auth_code = mt_rand(100000, 999999); $user->auth_code_expires_at = date("Y-m-d H:i:s", strtotime("+5 minutes")); $user->save(); } }