Add demo mode restriction to CaptchaToken destroy method.
This commit adds a check to the `destroy` method in the `CaptchaTokenService`. It uses the `Helpers::isDemoModeAndUserDenyUpdate` function to prevent users from deleting tokens while the application is in demo mode. This was added to protect the application's state during presentations or demos.
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
@@ -36,4 +37,9 @@ final class CaptchaToken extends Model
|
||||
{
|
||||
return $this->hasMany(Captcha::class);
|
||||
}
|
||||
|
||||
public function user(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ namespace App\Services\Private;
|
||||
use App\Dto\Builder\CaptchaToken as CaptchaTokenDto;
|
||||
use App\Dto\QuerySettingsDto;
|
||||
use App\Dto\Request\Private\CaptchaToken\StoreUpdate;
|
||||
use App\Helpers\Helpers;
|
||||
use App\Models\User;
|
||||
use App\Models\CaptchaToken;
|
||||
use App\Repositories\CaptchaTokenRepository;
|
||||
@@ -133,6 +134,10 @@ final class CaptchaTokenService extends Service
|
||||
return $this->errFobidden(__('Access is denied'));
|
||||
}
|
||||
|
||||
if (Helpers::isDemoModeAndUserDenyUpdate($modelCaptchaToken->user)) {
|
||||
return $this->errValidate(__('Demo Mode'));
|
||||
}
|
||||
|
||||
try {
|
||||
DB::transaction(function () use ($modelCaptchaToken) {
|
||||
$this->captchaTokenHandler->handleDestroy($modelCaptchaToken);
|
||||
|
Reference in New Issue
Block a user