Add demo mode restrictions to user operations.

Added functionalities to restrict certain user operations like update, password change, and deletion in demo mode. This is done to prevent demo users from modifying crucial data. Helper methods are created for standard re-usable checks. Also, Blade directive is added for frontend UI demo checks.
This commit is contained in:
2023-12-05 00:53:04 +06:00
parent ebc2dfd944
commit b5db913c24
10 changed files with 67 additions and 5 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Services\Private;
use App\Dto\Request\Private\Profile\Update;
use App\Dto\Request\Private\Profile\UpdateSettings;
use App\Dto\Request\Private\User\UpdatePassword;
use App\Helpers\Helpers;
use App\Models\User;
use App\ServiceResults\ServiceResultError;
use App\ServiceResults\ServiceResultSuccess;
@@ -19,6 +20,10 @@ final class ProfileService extends Service
public function update(Update $update, User $user): ServiceResultError | ServiceResultSuccess
{
if (Helpers::isDemoModeAndUserDenyUpdate($user)) {
return $this->errValidate(__('Demo Mode'));
}
try {
$data = [
'name' => $update->getName()
@@ -33,6 +38,10 @@ final class ProfileService extends Service
public function updatePassword(UpdatePassword $update, User $user): ServiceResultError | ServiceResultSuccess
{
if (Helpers::isDemoModeAndUserDenyUpdate($user)) {
return $this->errValidate(__('Demo Mode'));
}
try {
$this->userCommandHandler->handleUpdatePassword($user, $update->getPassword());
} catch (\Throwable $e) {