From 138bf077c6e260e28f76cd98016733f5287e7dd1 Mon Sep 17 00:00:00 2001 From: Arman <407448+armanist@users.noreply.github.com> Date: Thu, 23 Oct 2025 15:35:20 +0400 Subject: [PATCH 1/2] Update core templates for user image --- .../src/Controllers/AuthController.php.tpl | 8 +++++- .../Templates/DemoApi/src/Enums/Role.php | 26 +++++++++++++++++++ .../Templates/DemoApi/src/Models/User.php.tpl | 3 ++- .../DemoApi/src/Services/AuthService.php.tpl | 12 +++++---- .../Templates/DemoWeb/assets/css/custom.css | 7 +++++ .../src/Controllers/AccountController.php.tpl | 1 - .../src/Controllers/AuthController.php.tpl | 9 ++++++- .../Templates/DemoWeb/src/Enums/Role.php | 26 +++++++++++++++++++ .../Templates/DemoWeb/src/Models/User.php.tpl | 3 ++- .../DemoWeb/src/Services/AuthService.php.tpl | 10 ++++--- .../DemoWeb/src/Views/partials/navbar.php.tpl | 6 ++++- 11 files changed, 96 insertions(+), 15 deletions(-) create mode 100644 src/Module/Templates/DemoApi/src/Enums/Role.php create mode 100644 src/Module/Templates/DemoWeb/src/Enums/Role.php diff --git a/src/Module/Templates/DemoApi/src/Controllers/AuthController.php.tpl b/src/Module/Templates/DemoApi/src/Controllers/AuthController.php.tpl index b34c5dffa..6d10df9fd 100644 --- a/src/Module/Templates/DemoApi/src/Controllers/AuthController.php.tpl +++ b/src/Module/Templates/DemoApi/src/Controllers/AuthController.php.tpl @@ -18,6 +18,7 @@ use Quantum\Libraries\Auth\Exceptions\AuthException; use Quantum\Http\Constants\StatusCode; use Quantum\Http\Response; use Quantum\Http\Request; +use {{MODULE_NAMESPACE}}\Enums\Role; /** * Class AuthController @@ -92,7 +93,12 @@ class AuthController extends BaseController */ public function signup(Request $request, Response $response) { - auth()->signup($request->all()); + $userData = $request->all(); + + $userData['uuid'] = uuid_ordered(); + $userData['role'] = Role::EDITOR; + + auth()->signup($userData); $response->json([ 'status' => self::STATUS_SUCCESS, diff --git a/src/Module/Templates/DemoApi/src/Enums/Role.php b/src/Module/Templates/DemoApi/src/Enums/Role.php new file mode 100644 index 000000000..7b4b4540b --- /dev/null +++ b/src/Module/Templates/DemoApi/src/Enums/Role.php @@ -0,0 +1,26 @@ + + * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org) + * @link http://quantum.softberg.org/ + * @since 2.9.9 + */ + +namespace {{MODULE_NAMESPACE}}\Enums; + +/** + * Class Role + * @package Modules\{{MODULE_NAME}} + */ +class Role +{ + const ADMIN = 'admin'; + + const EDITOR = 'editor'; +} \ No newline at end of file diff --git a/src/Module/Templates/DemoApi/src/Models/User.php.tpl b/src/Module/Templates/DemoApi/src/Models/User.php.tpl index 49613a522..a6fea632c 100644 --- a/src/Module/Templates/DemoApi/src/Models/User.php.tpl +++ b/src/Module/Templates/DemoApi/src/Models/User.php.tpl @@ -9,7 +9,7 @@ * @author Arman Ag. * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org) * @link http://quantum.softberg.org/ - * @since 2.9.8 + * @since 2.9.9 */ namespace {{MODULE_NAMESPACE}}\Models; @@ -46,6 +46,7 @@ class User extends QtModel 'role', 'email', 'password', + 'image', 'activation_token', 'remember_token', 'reset_token', diff --git a/src/Module/Templates/DemoApi/src/Services/AuthService.php.tpl b/src/Module/Templates/DemoApi/src/Services/AuthService.php.tpl index 5b5b52a4e..30141d519 100644 --- a/src/Module/Templates/DemoApi/src/Services/AuthService.php.tpl +++ b/src/Module/Templates/DemoApi/src/Services/AuthService.php.tpl @@ -9,7 +9,7 @@ * @author Arman Ag. * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org) * @link http://quantum.softberg.org/ - * @since 2.9.8 + * @since 2.9.9 */ namespace {{MODULE_NAMESPACE}}\Services; @@ -94,9 +94,6 @@ class AuthService extends QtService implements AuthServiceInterface */ public function add(array $data): AuthUser { - $data['uuid'] = $data['uuid'] ?? uuid_ordered(); - $data['role'] = $data['role'] ?? 'editor'; - $this->createUserDirectory($data['uuid']); $user = $this->model->create(); @@ -149,6 +146,7 @@ class AuthService extends QtService implements AuthServiceInterface 'role' => ['name' => 'role', 'visible' => true], 'username' => ['name' => 'email', 'visible' => true], 'password' => ['name' => 'password', 'visible' => false], + 'image' => ['name' => 'image', 'visible' => true], 'activationToken' => ['name' => 'activation_token', 'visible' => false], 'rememberToken' => ['name' => 'remember_token', 'visible' => false], 'resetToken' => ['name' => 'reset_token', 'visible' => false], @@ -170,6 +168,10 @@ class AuthService extends QtService implements AuthServiceInterface */ private function createUserDirectory(string $uuid) { - fs()->makeDirectory(uploads_dir() . DS . $uuid); + $userDirectory = uploads_dir() . DS . $uuid; + + if(!fs()->isDirectory($userDirectory)) { + fs()->makeDirectory($userDirectory); + } } } \ No newline at end of file diff --git a/src/Module/Templates/DemoWeb/assets/css/custom.css b/src/Module/Templates/DemoWeb/assets/css/custom.css index 645b56e85..162542a8e 100644 --- a/src/Module/Templates/DemoWeb/assets/css/custom.css +++ b/src/Module/Templates/DemoWeb/assets/css/custom.css @@ -298,6 +298,13 @@ a:hover { margin-top: 6px; } +.user-avatar { + width:32px; + height:32px; + object-fit:cover; + margin-top: 18px; + margin-right:8px; +} .post-item { margin-bottom: 15px; diff --git a/src/Module/Templates/DemoWeb/src/Controllers/AccountController.php.tpl b/src/Module/Templates/DemoWeb/src/Controllers/AccountController.php.tpl index f0f27d16a..26e3cf812 100644 --- a/src/Module/Templates/DemoWeb/src/Controllers/AccountController.php.tpl +++ b/src/Module/Templates/DemoWeb/src/Controllers/AccountController.php.tpl @@ -14,7 +14,6 @@ namespace {{MODULE_NAMESPACE}}\Controllers; -use Quantum\Libraries\Auth\Contracts\AuthenticatableInterface; use Quantum\Service\Factories\ServiceFactory; use {{MODULE_NAMESPACE}}\Services\AuthService; use Quantum\Libraries\Hasher\Hasher; diff --git a/src/Module/Templates/DemoWeb/src/Controllers/AuthController.php.tpl b/src/Module/Templates/DemoWeb/src/Controllers/AuthController.php.tpl index 1cc15d712..18c9190fe 100644 --- a/src/Module/Templates/DemoWeb/src/Controllers/AuthController.php.tpl +++ b/src/Module/Templates/DemoWeb/src/Controllers/AuthController.php.tpl @@ -17,6 +17,7 @@ namespace {{MODULE_NAMESPACE}}\Controllers; use Quantum\Libraries\Auth\Exceptions\AuthException; use Quantum\Http\Response; use Quantum\Http\Request; +use {{MODULE_NAMESPACE}}\Enums\Role; /** * Class AuthController @@ -101,7 +102,13 @@ class AuthController extends BaseController public function signup(Request $request, Response $response) { if ($request->isMethod('post')) { - auth()->signup($request->all()); + $userData = $request->all(); + + $userData['uuid'] = uuid_ordered(); + $userData['role'] = Role::EDITOR; + + auth()->signup($userData); + session()->setFlash('success', t('common.check_email_signup')); redirect(base_url(true) . '/' . current_lang() . '/signup'); } else { diff --git a/src/Module/Templates/DemoWeb/src/Enums/Role.php b/src/Module/Templates/DemoWeb/src/Enums/Role.php new file mode 100644 index 000000000..7b4b4540b --- /dev/null +++ b/src/Module/Templates/DemoWeb/src/Enums/Role.php @@ -0,0 +1,26 @@ + + * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org) + * @link http://quantum.softberg.org/ + * @since 2.9.9 + */ + +namespace {{MODULE_NAMESPACE}}\Enums; + +/** + * Class Role + * @package Modules\{{MODULE_NAME}} + */ +class Role +{ + const ADMIN = 'admin'; + + const EDITOR = 'editor'; +} \ No newline at end of file diff --git a/src/Module/Templates/DemoWeb/src/Models/User.php.tpl b/src/Module/Templates/DemoWeb/src/Models/User.php.tpl index 49613a522..a6fea632c 100644 --- a/src/Module/Templates/DemoWeb/src/Models/User.php.tpl +++ b/src/Module/Templates/DemoWeb/src/Models/User.php.tpl @@ -9,7 +9,7 @@ * @author Arman Ag. * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org) * @link http://quantum.softberg.org/ - * @since 2.9.8 + * @since 2.9.9 */ namespace {{MODULE_NAMESPACE}}\Models; @@ -46,6 +46,7 @@ class User extends QtModel 'role', 'email', 'password', + 'image', 'activation_token', 'remember_token', 'reset_token', diff --git a/src/Module/Templates/DemoWeb/src/Services/AuthService.php.tpl b/src/Module/Templates/DemoWeb/src/Services/AuthService.php.tpl index 5b5b52a4e..4ccbb628f 100644 --- a/src/Module/Templates/DemoWeb/src/Services/AuthService.php.tpl +++ b/src/Module/Templates/DemoWeb/src/Services/AuthService.php.tpl @@ -94,9 +94,6 @@ class AuthService extends QtService implements AuthServiceInterface */ public function add(array $data): AuthUser { - $data['uuid'] = $data['uuid'] ?? uuid_ordered(); - $data['role'] = $data['role'] ?? 'editor'; - $this->createUserDirectory($data['uuid']); $user = $this->model->create(); @@ -149,6 +146,7 @@ class AuthService extends QtService implements AuthServiceInterface 'role' => ['name' => 'role', 'visible' => true], 'username' => ['name' => 'email', 'visible' => true], 'password' => ['name' => 'password', 'visible' => false], + 'image' => ['name' => 'image', 'visible' => true], 'activationToken' => ['name' => 'activation_token', 'visible' => false], 'rememberToken' => ['name' => 'remember_token', 'visible' => false], 'resetToken' => ['name' => 'reset_token', 'visible' => false], @@ -170,6 +168,10 @@ class AuthService extends QtService implements AuthServiceInterface */ private function createUserDirectory(string $uuid) { - fs()->makeDirectory(uploads_dir() . DS . $uuid); + $userDirectory = uploads_dir() . DS . $uuid; + + if(!fs()->isDirectory($userDirectory)) { + fs()->makeDirectory($userDirectory); + } } } \ No newline at end of file diff --git a/src/Module/Templates/DemoWeb/src/Views/partials/navbar.php.tpl b/src/Module/Templates/DemoWeb/src/Views/partials/navbar.php.tpl index b30a284ac..c83983d86 100644 --- a/src/Module/Templates/DemoWeb/src/Views/partials/navbar.php.tpl +++ b/src/Module/Templates/DemoWeb/src/Views/partials/navbar.php.tpl @@ -19,7 +19,11 @@