@@ -32,13 +32,13 @@ trait HandlesRelationStandardOperations
3232 */
3333 public function index (Request $ request , $ parentKey )
3434 {
35- $ this ->authorize ('viewAny ' , $ this ->resolveResourceModelClass ());
36-
3735 $ requestedRelations = $ this ->relationsResolver ->requestedRelations ($ request );
3836
3937 $ parentQuery = $ this ->buildIndexParentFetchQuery ($ request , $ parentKey );
4038 $ parentEntity = $ this ->runIndexParentFetchQuery ($ request , $ parentQuery , $ parentKey );
4139
40+ $ this ->authorize ('viewAny ' , [$ this ->resolveResourceModelClass (), $ parentEntity ]);
41+
4242 $ beforeHookResult = $ this ->beforeIndex ($ request , $ parentEntity );
4343 if ($ this ->hookResponds ($ beforeHookResult )) {
4444 return $ beforeHookResult ;
@@ -251,13 +251,13 @@ public function store(Request $request, $parentKey)
251251 */
252252 protected function storeWithTransaction (Request $ request , $ parentKey )
253253 {
254- $ resourceModelClass = $ this ->resolveResourceModelClass ();
255-
256- $ this ->authorize ('create ' , $ resourceModelClass );
257-
258254 $ parentQuery = $ this ->buildStoreParentFetchQuery ($ request , $ parentKey );
259255 $ parentEntity = $ this ->runStoreParentFetchQuery ($ request , $ parentQuery , $ parentKey );
260256
257+ $ resourceModelClass = $ this ->resolveResourceModelClass ();
258+
259+ $ this ->authorize ('create ' , [$ resourceModelClass , $ parentEntity ]);
260+
261261 /** @var Model $entity */
262262 $ entity = new $ resourceModelClass ;
263263
@@ -434,7 +434,7 @@ public function show(Request $request, $parentKey, $relatedKey = null)
434434 $ query = $ this ->buildShowFetchQuery ($ request , $ parentEntity , $ requestedRelations );
435435 $ entity = $ this ->runShowFetchQuery ($ request , $ query , $ parentEntity , $ relatedKey );
436436
437- $ this ->authorize ('view ' , $ entity );
437+ $ this ->authorize ('view ' , [ $ entity, $ parentEntity ] );
438438
439439 $ entity = $ this ->cleanupEntity ($ entity );
440440
@@ -613,7 +613,7 @@ protected function updateWithTransaction(Request $request, $parentKey, $relatedK
613613 $ query = $ this ->buildUpdateFetchQuery ($ request , $ parentEntity , $ requestedRelations );
614614 $ entity = $ this ->runUpdateFetchQuery ($ request , $ query , $ parentEntity , $ relatedKey );
615615
616- $ this ->authorize ('update ' , $ entity );
616+ $ this ->authorize ('update ' , [ $ entity, $ parentEntity ] );
617617
618618 $ beforeHookResult = $ this ->beforeUpdate ($ request , $ parentEntity , $ entity );
619619 if ($ this ->hookResponds ($ beforeHookResult )) {
@@ -811,7 +811,7 @@ protected function destroyWithTransaction(Request $request, $parentKey, $related
811811 abort (404 );
812812 }
813813
814- $ this ->authorize ($ forceDeletes ? 'forceDelete ' : 'delete ' , $ entity );
814+ $ this ->authorize ($ forceDeletes ? 'forceDelete ' : 'delete ' , [ $ entity, $ parentEntity ] );
815815
816816 $ beforeHookResult = $ this ->beforeDestroy ($ request , $ parentEntity , $ entity );
817817 if ($ this ->hookResponds ($ beforeHookResult )) {
@@ -994,7 +994,7 @@ protected function restoreWithTransaction(Request $request, $parentKey, $related
994994 $ query = $ this ->buildRestoreFetchQuery ($ request , $ parentEntity , $ requestedRelations );
995995 $ entity = $ this ->runRestoreFetchQuery ($ request , $ query , $ parentEntity , $ relatedKey );
996996
997- $ this ->authorize ('restore ' , $ entity );
997+ $ this ->authorize ('restore ' , [ $ entity, $ parentEntity ] );
998998
999999 $ beforeHookResult = $ this ->beforeRestore ($ request , $ parentEntity , $ entity );
10001000 if ($ this ->hookResponds ($ beforeHookResult )) {
0 commit comments