Бонус: начислена 1 монета за дневную активность. Сейчас у вас 1 монета

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

Лекция Тесты



Другие правильно ответили на 50% вопросов

Краткая теория по авторизации в онлайн сервисах

контроль доступа (Access Control) — это комплексный процесс, включающий:

  • Идентификацию — определение, кто пытается войти (например, ввод логина).
  • Аутентификацию — проверку подлинности личности (например, пароль, биометрия).
  • Авторизацию — определение прав и разрешений (например, доступ к файлам или функциям).

авторизация — это процесс, который позволяет пользователю получить доступ к определенным ресурсам или функциям системы после успешной аутентификации. Она включает в себя проверку прав доступа и определение, какие действия может выполнять пользователь. Авторизация — это процесс, следующий за идентификацией и аутентификацией.​

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

В Laravel система авторизации построена вокруг двух ключевых понятий — Policies (политики) и Gates (гейты).

  • Policies — это классы, которые описывают правила доступа к конкретным моделям. Например, можно определить, кто может создавать, редактировать или удалять посты. Политики удобно использовать, когда нужно связать права доступа с конкретными объектами базы данных.

  • Gates — это глобальные проверки авторизации, которые определяются как функции. Они подходят для простых правил, не привязанных к конкретной модели. Например, можно создать гейт, который проверяет, является ли пользователь администратором.

Laravel также предоставляет удобные методы и директивы:

  • Gate::allows(), Gate::denies() — для проверки прав.
  • $this->authorize() — для вызова политики в контроллере.
  • Blade-директивы @can, @cannot, @canany — для проверки прав в шаблонах.
  • В AuthServiceProvider регистрируются политики через свойство $policies.

Таким образом, политики и гейты позволяют гибко управлять доступом к ресурсам и действиям в приложении.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

Порядок создания Политик и Гейтсов в Ларавел

В Laravel политика с моделями используется для авторизации действий над конкретными экземплярами Eloquent‑моделей. Политика связывается с моделью и определяет методы (view, update, delete и т.д.), которые автоматически проверяются через контроллеры, маршруты и Blade.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

порядок проверки

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

В Laravel Gate::before и Gate::after позволяют перехватывать процесс авторизации до и после выполнения конкретных правил. before чаще используется для глобальных прав (например, админ всегда имеет доступ), а after — для логирования или дополнительной проверки после основного решения.

  • Gate::before: выполняется до проверки конкретного правила. Если вернет true или false, то результат будет окончательным и правила не будут проверяться.

  • Gate::after: выполняется после проверки правила. Может использоваться для логирования, аудита или дополнительной логики, но не изменяет исходное решение (только если явно вернуть true/false).

Пример использования Gate::before и Gate::after

use Illuminate\Support\Facades\Gate;

Gate::before(function ($user, $ability) {
    // Админ всегда имеет доступ
    if ($user->isAdmin()) {
        return true;
    }
});

Gate::after(function ($user, $ability, $result) {
    // Логирование результата авторизации
    \Log::info("User {$user->id} tried {$ability}: " . ($result ? 'granted' : 'denied'));
});

Объяснение:

  • В before проверяется, является ли пользователь админом. Если да — доступ разрешен без проверки остальных правил.

  • В after фиксируется результат проверки (например, для аудита или статистики).

Когда применять в Laravel Gate::before и Gate::after

  • before:

    • Глобальные права (например, супер-админ).

    • Универсальные исключения (например, пользователи с определенной ролью).

  • after:

    • Логирование и аудит действий.

    • Отправка уведомлений о попытках доступа.

    • Дополнительные проверки, которые не должны влиять на основное решение.

Сравнение Gate::before и Gate::after

Характеристика Gate::before Gate::after
Время выполнения До проверки правил После проверки правил
Может изменить результат Да Обычно нет (только если явно вернуть)
Типичные задачи Глобальные права, супер-админ Логирование, аудит, уведомления
Применение Универсальные исключения Аналитика и мониторинг
Практическое применение Gate::before и Gate::after

В реальном проекте на Laravel:

  • before удобно использовать для админов или системных пользователей, чтобы не прописывать их права в каждой политике.

  • after полезно для журналирования действий, особенно в корпоративных системах, где важно отслеживать попытки доступа.

Последовательность создания использоватния политик и Gates в ларавел

Добавление Признака использования ролей

Создания места хранения ролей база данных (в отнощении 1 к многим или многие к многим)
или использование енум класса
Создание поля (или pivot таблицы) для таблицы юзеров для привязки к ролям
затем для каждой роли будут значения разрешения или запрета для определенных дествий

Создание политики

php artisan make:policy PostPolicy --model=Post
  • Флаг --model=Post сразу связывает политику с моделью Post.

  • В классе PostPolicy будут методы: view, create, update, delete, restore, forceDelete.

Регистрация политики

В AuthServiceProvider:

protected $policies = [
    \App\Models\Post::class => \App\Policies\PostPolicy::class,
];

Laravel автоматически подтянет политику для модели.

Использование в контроллерах

Прямая проверка:

public function update(Post $post)
{
    $this->authorize('update', $post);
    // обновление поста
}

Ресурсная проверка:

public function __construct()
{
    $this->authorizeResource(Post::class, 'post');
}

Здесь 'post' — имя параметра маршрута, через который модель извлекается.

Метод authorize

public function update(Post $post)
{
    $this->authorize('update', $post);
    // логика обновления
}

Проверка политики для конкретного действия.

Метод authorizeResource В конструкторе контроллера можно связать ресурсные методы с политикой:

public function __construct()
{
    $this->authorizeResource(Post::class, 'post');
}

Теперь методы index, show, create, update, delete будут автоматически проверяться.

Использование в маршрутах

Route::delete('/posts/{post}', [PostController::class, 'destroy'])
    ->middleware('can:delete,post');

Middleware can проверяет метод политики delete для модели Post.

Через middleware can

Route::get('/post/{post}/edit', [PostController::class, 'edit'])
    ->middleware('can:update,post');

Здесь проверяется политика update для модели Post.

Для ресурсных маршрутов Можно комбинировать с authorizeResource в контроллере, чтобы не прописывать middleware вручную.

Использование во вью (Blade)

Директива @can

@can('update', $post)
    a href="{{ route('post.edit', $post) }}" Редактировать /a
@endcan

Директива @cannot

@cannot('delete', $post)
    p Удаление недоступно /p
@endcannot

Директива @canany

@canany(['update', 'delete'], $post)
    p Вы можете редактировать или удалять пост/p
@endcanany
@can('update', $post)
    a href="{{ route('posts.edit', $post) }}" Редактировать/a
@endcan

@cannot('delete', $post)
    p Удаление недоступно

Таблица соответствия методов

Метод контроллера Метод политики Параметр модели
index viewAny
show view Post $post
create create
store create
edit update Post $post
update update Post $post
destroy delete Post $post

Сравнение способов подключения проверки авторизации к различным отображениям и акшенам

Место применения Пример Когда использовать
Контроллер $this->authorize('update', $post) Логика внутри метода
Контроллер (ресурсный) $this->authorizeResource(Post::class, 'post') Автоматическая проверка для CRUD
Маршрут ->middleware('can:update,post') Ограничение доступа на уровне маршрута
Вьюха @can('update', $post) Отображение элементов интерфейса

Фильтрация данных по владельцу и авторизация

Использовать Gates и Policies в Laravel для фильтрации данных по владельцу — это корректный и рекомендуемый подход, но важно понимать их назначение: они отвечают за авторизацию действий, а не за саму выборку данных. Для фильтрации Eloquent-запросов лучше комбинировать политики с query scopes или middleware.

Gates и Policies: назначение
  • Gates — простые проверки условий (например, Gate::allows('update-post', $post)).
  • Policies — классы, привязанные к моделям, где описываются методы авторизации (view, update, delete и т.д.).
  • Основная цель: разрешить или запретить действие пользователя над конкретной моделью.

Пример с Policy

// PostPolicy.php
public function view(User $user, Post $post)
{
    return $user->id === $post->user_id;
}

Применение в контроллере

public function index()
{
    $posts = Post::where('user_id', auth()->id())->get();
    return view('posts.index', compact('posts'));
}

Через Scope без политик и гейтсов

// В модели Post
public function scopeOwnedBy($query, $userId)
{
    return $query->where('user_id', $userId);
}

// Использование
$posts = Post::ownedBy(auth()->id())->get();
Теоретически можно использовать Gates или Policies в Scope
 // PostPolicy.php
public function viewAny(User $user)
{ 
    return $user->role_id === RolesEnum::ADMIN->value;
}

// В модели Post
public function scopeOwnedBy($query)
{
    if (auth()->user()->can('viewAny', Post::class)) {
        return $query; // админ видит все
    }

    return $query->where('user_id', auth()->id());
}

или

 // PostPolicy.php
public function viewNotOwner(User $user)
{
    // например, модератор может видеть чужие посты
    return $user->is_moderator;
}

// В модели Post
public function scopeVisibleFor($query)
{
    $user = auth()->user();

    if ($user->can('viewNotOwner', Post::class)) {
        // модератор видит все посты, кроме своих
        return $query->where('user_id', '!=', $user->id);
    }

    // обычный пользователь видит только свои
    return $query->where('user_id', $user->id);
}

Но если есть смешение их, код становится менее прозрачным: scope начинает решать задачи авторизации, хотя его роль — только фильтрация и архитектурно менее чисто.

Выводы

Таким образом, в Larave политика с моделями — это централизованный способ описать, какие пользователи могут выполнять действия над конкретными объектами. Она интегрируется во все уровни: контроллеры, маршруты и Blade.

В Laravel политики можно использовать в нескольких слоях приложения — контроллерах, маршрутах и даже во вьюхах.

  • Фильтрацию данных делайте через scopes или query builder.
  • Policies используйте для проверки доступа к конкретным действиям.
  • Комбинируйте оба подхода: сначала фильтруйте выборку, затем проверяйте авторизацию.
Лучшие практики
Подход Плюсы Минусы Когда использовать
Policies Централизованная авторизация, легко тестировать Не фильтруют сами данные Проверка доступа к конкретной модели
Scopes Чистый код, переиспользуемость Нужно помнить о вызове Фильтрация выборок по владельцу
Middleware Универсально, можно ограничить доступ к маршрутам Менее гибко для сложных условий Ограничение доступа к целым ресурсам

Как проходить тест

  1. Каждый вопрос имеет 4 варианта ответа.

  2. Только один вариант правильный — он отмечен символом *.

  3. После списка ответов идет подсказка, которая кратко объясняет правильный выбор.

  4. Рекомендуется сначала попробовать ответить самостоятельно, а затем свериться с правильным вариантом и прочитать подсказку.

  5. Тест можно проходить последовательно или выборочно — он охватывает разные аспекты авторизации в Laravel.

Тест для самопрверки по теме авторизация в Ларавел фремворке

1. В какой последовательности выплняется Контроль доступа (Access Control) в онлайн сервисах:

  • a) 1. Авторизация, 2. Аутентификация, 3. Идентификация
  • b) 1. Аутентификация , 2.Идентификация , 3. Авторизация
  • c) 1. Идентификация, 2. Аутентификация, 3. Авторизация *
  • d) 1. Идентификация, 2.Авторизация , 3. Аутентификация

Все три процесса — идентификация, аутентификация и авторизация — вместе обычно обозначаются как контроль доступа или управление доступом (Access Control). В IT‑сфере их рассматривают как последовательные этапы единого механизма обеспечения безопасности при взаимодействии пользователя с системой.

2. Как создать Policy в Laravel?

  • A) php artisan make:policy UserPolicy *
  • B) php artisan make:controller UserPolicy
  • C) php artisan make:middleware UserPolicy
  • D) php artisan make:model UserPolicy

Используется команда artisan make:policy.

3. Где регистрируются Policy?

  • A) В routes/web.php
  • B) В AppServiceProvider
  • C) В AuthServiceProvider *
  • D) В Kernel.php

Все политики регистрируются в AuthServiceProvider.

4. Что такое Gate в Laravel?

  • A) Функция для проверки существования пользователя
  • B) Функция для проверки прав доступа *
  • C) Middleware для аутентификации
  • D) Сервис для логирования

Gate — это глобальная функция авторизации.

5. Как определить Gate?

  • A) Gate::define('edit-post', fn($user) => $user->isAdmin()); *
  • B) Route::get('edit-post', fn() => true);
  • C) Auth::check('edit-post');
  • D) Policy::create('edit-post');

Gate определяется через Gate::define.

6. Как вызвать Gate в коде?

  • A) Gate::check('edit-post') *
  • B) Auth::gate('edit-post')
  • C) Route::gate('edit-post')
  • D) Policy::gate('edit-post')

Проверка выполняется через Gate::check или Gate::allows.

7. Что делает метод authorize() в контроллере?

  • A) Проверяет права через Policy *
  • B) Запускает middleware
  • C) Авторизует пользователя в системе
  • D) Создает новую запись

authorize() вызывает соответствующую политику.

8. Какой метод Policy проверяет доступ к конкретной модели?

  • A) view()
  • B) update() *
  • C) deleteAll()
  • D) createMany()

Policy обычно содержит методы для каждой операции: view, update, delete.

9. Что возвращает метод Gate::allows()?

  • A) true/false *
  • B) объект Policy
  • C) массив прав
  • D) строку с ролью

Gate::allows возвращает булево значение.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

10. Как связать Policy с моделью?

  • A) В AuthServiceProvider через свойство $policies *
  • B) В routes/web.php
  • C) В Kernel.php
  • D) В config/app.php

В AuthServiceProvider указывают соответствие модели и политики.

11. Что делает метод can() у пользователя?

  • A) Проверяет права через Gate/Policy *
  • B) Проверяет пароль
  • C) Создает новую роль
  • D) Возвращает список маршрутов

can() — удобный метод для проверки авторизации.

12. Какой Blade-директивой проверяют права?

  • A) @auth
  • B) @can *
  • C) @guest
  • D) @role

@can используется для проверки прав доступа в шаблонах.

13. Что делает метод deny() в Policy?

  • A) Запрещает доступ и возвращает ошибку *
  • B) Удаляет модель
  • C) Создает новую роль
  • D) Логирует действие

deny() возвращает отказ в доступе.

14. Какой middleware отвечает за авторизацию?

  • A) auth
  • B) can *
  • C) throttle
  • D) guest

Middleware can проверяет права доступа.

15. Что лучше использовать для сложной логики авторизации?

  • A) Только middleware
  • B) Только Blade-директивы
  • C) Policy и Gate вместе *
  • D) Логи и события

Для сложной логики применяют комбинацию Policy и Gate.

16. Что делает метод Gate::denies()?

  • A) Возвращает true, если доступ разрешен
  • B) Возвращает true, если доступ запрещен *
  • C) Создает новую политику
  • D) Проверяет пароль пользователя

denies() противоположен allows(), возвращает true при отказе.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

17. Какой метод Policy используется для проверки удаления модели?

  • A) remove()
  • B) delete() *
  • C) destroy()
  • D) erase()

Метод delete() определяет доступ к удалению.

18. Как вызвать проверку Policy напрямую в контроллере?

  • A) $this->authorize('update', $post); *
  • B) $this->auth('update', $post);
  • C) $this->policy('update', $post);
  • D) $this->gate('update', $post);

authorize() вызывает метод политики для модели.

19. Что делает метод before() в Policy?

  • A) Проверяет все права до остальных методов *
  • B) Удаляет модель
  • C) Создает новую роль
  • D) Логирует действие

before() позволяет глобально разрешить или запретить доступ.

20. Какой метод используется для массового просмотра моделей?

  • A) viewAny() *
  • B) viewAll()
  • C) list()
  • D) index()

viewAny() проверяет доступ к списку моделей.

21. Что делает метод Gate::forUser($user)?

  • A) Проверяет права конкретного пользователя *
  • B) Создает новую роль
  • C) Удаляет пользователя
  • D) Возвращает список маршрутов

forUser позволяет проверить права другого пользователя.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

22. Какой Blade-директивой проверяют отказ в доступе?

  • A) @cannot *
  • B) @deny
  • C) @guest
  • D) @auth

@cannot используется для проверки запрета.

23. Что делает метод Gate::inspect()?

  • A) Возвращает объект с результатом проверки и сообщением *
  • B) Возвращает только true/false
  • C) Создает новую политику
  • D) Удаляет модель

inspect() дает подробный результат проверки.

24. Какой метод Policy проверяет создание модели?

  • A) add()
  • B) create() *
  • C) new()
  • D) insert()

create() отвечает за доступ к созданию.

25. Что делает метод Gate::authorize()?

  • A) Возвращает true/false
  • B) Бросает исключение при отказе доступа *
  • C) Создает новую политику
  • D) Логирует действие

authorize() выбрасывает исключение, если доступ запрещен.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

26. Какой метод Policy проверяет обновление модели?

  • A) edit()
  • B) update() *
  • C) change()
  • D) modify()

update() отвечает за доступ к изменению.

27. Что делает метод Gate::abilities()?

  • A) Возвращает список всех определенных правил *
  • B) Создает новую политику
  • C) Удаляет модель
  • D) Проверяет пароль

abilities() возвращает массив всех гейтов.

28. Какой метод Policy проверяет просмотр модели?

  • A) show()
  • B) view() *
  • C) display()
  • D) read()

view() отвечает за доступ к просмотру.

29. Что делает метод Gate::any(['edit','delete'])?

  • A) Проверяет, есть ли хотя бы одно разрешение *
  • B) Проверяет все разрешения одновременно
  • C) Создает новую политику
  • D) Удаляет модель

any() возвращает true, если хотя бы одно правило выполняется.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

30. Какой метод Policy проверяет восстановление модели?

  • A) restore() *
  • B) recover()
  • C) rollback()
  • D) return()

restore() отвечает за доступ к восстановлению.

31. Какой метод Policy проверяет окончательное удаление модели?

  • A) forceDelete() *
  • B) delete()
  • C) destroy()
  • D) erase()

forceDelete() используется для проверки доступа к безвозвратному удалению.

32. Что делает метод Gate::none(['edit','delete'])?

  • A) Проверяет, что ни одно правило не выполняется *
  • B) Проверяет все правила одновременно
  • C) Создает новую политику
  • D) Удаляет модель

none() возвращает true, если ни одно правило не разрешено.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

33. Какой метод Policy проверяет массовое удаление моделей?

  • A) deleteAny() *
  • B) removeAll()
  • C) destroyMany()
  • D) eraseAll()

deleteAny() отвечает за доступ к массовому удалению.

34. Что делает метод Gate::after()?

  • A) Выполняется после всех проверок и может изменить результат *
  • B) Создает новую политику
  • C) Удаляет модель
  • D) Проверяет пароль

after() позволяет глобально изменить результат проверки.

35. Какой метод Policy проверяет массовое создание моделей?

  • A) createAny() *
  • B) addAll()
  • C) insertMany()
  • D) newAll()

createAny() отвечает за доступ к массовому созданию.

36. Что делает метод Gate::before()?

  • A) Выполняется до всех проверок и может глобально разрешить доступ *
  • B) Создает новую политику
  • C) Удаляет модель
  • D) Проверяет пароль

before() позволяет задать глобальное правило до остальных.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

37. Какой Blade-директивой проверяют несколько прав сразу?

  • A) @canany *
  • B) @canall
  • C) @authany
  • D) @roleany

@canany проверяет наличие хотя бы одного разрешения.

38. Что делает метод Gate::check()?

  • A) Проверяет правило и возвращает true/false *
  • B) Создает новую политику
  • C) Удаляет модель
  • D) Логирует действие

check() используется для проверки доступа.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

39. Какой метод Policy проверяет массовое обновление моделей?

  • A) updateAny() *
  • B) editAll()
  • C) changeMany()
  • D) modifyAll()

updateAny() отвечает за доступ к массовому обновлению.

40. Что делает метод Gate::allows()?

  • A) Возвращает true, если доступ разрешен *
  • B) Возвращает объект Policy
  • C) Создает новую роль
  • D) Удаляет модель

allows() возвращает true при разрешении доступа.

41. Какой метод Policy проверяет массовое восстановление моделей?

  • A) restoreAny() *
  • B) recoverAll()
  • C) rollbackMany()
  • D) returnAll()

restoreAny() отвечает за доступ к массовому восстановлению.

42. Что делает метод Gate::authorize() при отказе?

  • A) Возвращает false
  • B) Бросает исключение AuthorizationException *
  • C) Создает новую политику
  • D) Удаляет модель

authorize() выбрасывает исключение при отказе в доступе.

43. Какой метод Policy проверяет массовый просмотр моделей?

  • A) viewAny() *
  • B) showAll()
  • C) displayMany()
  • D) readAll()

viewAny() используется для проверки доступа к списку моделей.

44. Что делает метод Gate::forUser()?

  • A) Проверяет права указанного пользователя *
  • B) Создает новую политику
  • C) Удаляет пользователя
  • D) Возвращает список маршрутов

forUser позволяет проверить права другого пользователя.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

45. Какой метод Policy проверяет массовое окончательное удаление моделей?

  • A) forceDeleteAny() *
  • B) destroyAll()
  • C) eraseMany()
  • D) removeAll()

forceDeleteAny() отвечает за доступ к массовому окончательному удалению.

46. Какой метод Policy проверяет массовое редактирование моделей?

  • A) editAny()
  • B) updateAny() *
  • C) changeAll()
  • D) modifyMany()

updateAny() используется для проверки доступа к массовому редактированию.

47. Что делает метод Gate::define()?

  • A) Определяет новое правило авторизации *
  • B) Создает новую политику
  • C) Удаляет модель
  • D) Проверяет пароль

define() используется для регистрации нового гейта.

48. Какой Blade-директивой проверяют несколько правил одновременно?

  • A) @canany *
  • B) @canall
  • C) @authany
  • D) @roleany

@canany проверяет наличие хотя бы одного разрешения.

49. Какой метод Policy проверяет удаление модели?

  • A) remove()
  • B) delete() *
  • C) destroy()
  • D) erase()

delete() определяет доступ к удалению.

50. Что делает метод Gate::allows() при успешной проверке?

  • A) Возвращает true *
  • B) Возвращает false
  • C) Бросает исключение
  • D) Создает новую политику

allows() возвращает true, если доступ разрешен.

51. Какой Blade-директивой проверяют права на конкретное действие?

  • A) @can *
  • B) @auth
  • C) @guest
  • D) @role

@can используется для проверки прав доступа в шаблонах.

52. Что такое Policy в Laravel?

  • A) Класс для работы с базой данных
  • B) Класс для проверки прав доступа *
  • C) Middleware для фильтрации запросов
  • D) Контроллер для маршрутов

Policy — это объектная форма авторизации, проверяющая права пользователя.

53. Какой HTTP-код обычно возвращается при ошибке аутентификации (например, неверный токен или отсутствие авторизации)?

  • 200 OK
  • 401 Unauthorized *
  • 403 Forbidden
  • 404 Not Found

401 Unauthorized — клиент не прошел аутентификацию (неверный токен, отсутствует логин).

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

54. Какой HTTP-код обычно возвращается при ошибке авторизации (например, доступ к ресурсу есть, но прав недостаточно)?

  • 200 OK
  • 401 Unauthorized
  • 403 Forbidden *
  • 404 Not Found

403 Forbidden — клиент аутентифицирован, но не имеет прав для выполнения действия.

Авторизация в онлайн сервисах. Политики и гейтсы в Laravel - Тесты с ответами для самопроверки

См. также

создано: 2026-04-03
обновлено: 2026-04-08
1



Помог ли вам этот ответ?
Нажмите оценку и напишите коротко почему. Так мы сможем сделать следующие ответы точнее и полезнее.
Насколько вы довольны ответом?
Ваш отзыв напрямую влияет на качество следующих подсказок и ответов.


Поделиться:
Пожаловаться

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выполнения задания
  • Возможно применение функции гаранта на сделку
  • Приоритетная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можете продать (как исполнитель) или купить (как заказчик) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно применение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии

Оставить комментарий

Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Лекции и учебник по "Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) "

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)