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

Тесты с ответами для самопроверки политики и гейтсы в Laravel

Лекция



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

Краткая теория

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

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

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

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

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

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

Тесты с ответами для самопроверки политики и гейтсы в Laravel

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

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

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

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

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

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

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

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

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

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) Фильтр для SQL-запросов
  • 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 возвращает булево значение.

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 при отказе.

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 позволяет проверить права другого пользователя.

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() выбрасывает исключение, если доступ запрещен.

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, если хотя бы одно правило выполняется.

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, если ни одно правило не разрешено.

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() позволяет задать глобальное правило до остальных.

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

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

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

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

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

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

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 позволяет проверить права другого пользователя.

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. Что делает метод Gate::abilities()?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


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

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

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

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

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

Комментарии


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

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

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