Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

websvb's avatar

Action authorization issue in Laravel Nova

Hello. laravel nova action. connect to the lens. the lens is connected to the resource. on the lens page does not work. error "Sorry! You are not authorized to perform this action.". politics is all truth, even created a separate model for oinza and politics for it. did not help. in lens and resource authorization methods are all true. in the lens, cansee and canrun are connected. but all this does not help. i keep getting an authorization error when trying to perform an action on lanz. help solve the problem please

0 likes
2 replies
mabdullahsari's avatar

Show some code. How are we supposed to help without any clue?

websvb's avatar

yes, please accept my apologies for not posting the code sooner) class UnsetTag extends Action { use InteractsWithQueue, Queueable;

public function handle(ActionFields $fields, Collection $models)
{
...
    return Action::message('The tag was removed successfully!');
}

}

class Orders extends Model { ... }

class OrderTags extends Model { ... }

class OrderTagsLens extends OrderTags { ... }

Resource class StatusUnshipped extends Resource { public static $model = Orders::class; ... public function lenses() { return [ new OrderedMain(), ]; } }

Lens class OrderedMain extends Lens { public static $model = OrderTags::class; ... public function actions(NovaRequest $request) { return [ (new \App\Nova\Actions\ReturnTag\UnsetOrderedTag) ->canSee(function ($request) { return $request->user()->can( 'Seller', User::class ); }) ->canRun(function ($request) { return $request->user()->can( 'Seller', User::class ); }), ]; } public function authorizedToView(NovaRequest $request) { return true; }

public function authorizedToRestore(NovaRequest $request)
{
    return true;
}

public static function authorizedToCreate(NovaRequest $request)
{
    return true;
}

public function authorizedToUpdate(NovaRequest $request)
{
    return true;
}

public function authorizedToDelete(NovaRequest $request)
{
    return true;
}

public function authorizedToReplicate(NovaRequest $request)
{
    return true;
}
    public function authorizedToSee(Request $request)
{
    return true;
}

}

OrderTagsLensPolicy class OrderTagsLensPolicy extends \Sereny\NovaPermissions\Policies\BasePolicy { public function viewAny(Model $user) { return true; }

public function view(Model $user, $model)
{
    return true;
}

public function create(Model $user)
{
    return true;
}

public function update(Model $user, $model)
{
    return true;
}

public function delete(Model $user, $model)
{
    return true;
}

public function restore(Model $user, $model)
{
    return true;
}

public function forceDelete(Model $user, $model)
{
    return true;
}

public function authorizedToDelete(Model $user, $model)
{
    return true;
}

public function authorizedToUpdate(Model $user, $model)
{
    return true;
}

public function authorizedToView(Model $user, $model)
{
    return true;
}

public function authorizedToCreate(Model $user, $model)
{
    return true;
}

public function authorizedToRestore(Model $user, $model)
{
    return true;
}

}

AppServiceProvider.php 'App\Models\Order\OrderTagsLens' => 'App\Policies\Order\OrderTagsLensPolicy',

Please or to participate in this conversation.