DeveloperBreeze

Middleware to Restrict Access to Admins in Laravel

php
// Middleware to check if the user is an admin
public function handle($request, Closure $next)
{
    // Verify the user is authenticated and an admin
    if (auth()->check() && auth()->user()->isAdmin) {
        return $next($request);
    }

    // Redirect non-admin users to the home page
    return redirect()->route('home');
}

Related Posts

More content you might like

Tutorial
javascript

Advanced State Management in React Using Redux Toolkit

import React from 'react';
import { useSelector } from 'react-redux';
import { selectActiveUsers } from '../users/usersSlice';

const ActiveUsersList = () => {
  const activeUsers = useSelector(selectActiveUsers);

  return (
    <ul>
      {activeUsers.map((user) => (
        <li key={user.id}>{user.name}</li>
      ))}
    </ul>
  );
};

export default ActiveUsersList;

Middleware enhances Redux by intercepting actions and performing additional logic.

Dec 09, 2024
Read More
Tutorial
php

Debugging Common Middleware Issues in Laravel

Use dependency injection for services your middleware requires:

   namespace App\Http\Middleware;

   use Closure;
   use App\Services\UserService;

   class CheckUserStatus
   {
       protected $userService;

       public function __construct(UserService $userService)
       {
           $this->userService = $userService;
       }

       public function handle($request, Closure $next)
       {
           if (!$this->userService->isActive($request->user())) {
               return redirect('inactive');
           }

           return $next($request);
       }
   }

Nov 16, 2024
Read More
Tutorial
php

Laravel Best Practices for Sharing Data Between Views and Controllers

Open the middleware file and share data conditionally:

   namespace App\Http\Middleware;

   use Closure;
   use Illuminate\Support\Facades\View;

   class ShareUserPreferences
   {
       public function handle($request, Closure $next)
       {
           // Example: Share user-specific preferences
           $userPreferences = [
               'theme' => 'light',
               'language' => 'en',
           ];

           View::share('userPreferences', $userPreferences);

           return $next($request);
       }
   }

Nov 16, 2024
Read More
Article
javascript

20 Useful Node.js tips to improve your Node.js development skills:

No preview available for this content.

Oct 24, 2024
Read More

Discussion 0

Please sign in to join the discussion.

No comments yet. Be the first to share your thoughts!