feat: add role-based access control for admin and member users
This commit is contained in:
parent
ced142b8f0
commit
d63a77bb42
3 changed files with 50 additions and 0 deletions
|
|
@ -11,6 +11,20 @@ ### POST /api/logout
|
||||||
- **Description**: Logout the user and revoke the token.
|
- **Description**: Logout the user and revoke the token.
|
||||||
- **Response**: JSON object with a success message.
|
- **Response**: JSON object with a success message.
|
||||||
|
|
||||||
|
## Admin Management
|
||||||
|
|
||||||
|
### GET /api/admin/users
|
||||||
|
- **Description**: Get a list of users (restricted to member users).
|
||||||
|
- **Response**: JSON object with a list of users.
|
||||||
|
|
||||||
|
### POST /api/admin/users/{user}/activate
|
||||||
|
- **Description**: Activate a user (restricted to member users).
|
||||||
|
- **Response**: JSON object with a success message.
|
||||||
|
|
||||||
|
### POST /api/admin/users/{user}/deactivate
|
||||||
|
- **Description**: Deactivate a user (restricted to member users).
|
||||||
|
- **Response**: JSON object with a success message.
|
||||||
|
|
||||||
## Frontend API
|
## Frontend API
|
||||||
|
|
||||||
### GET /api/frontend
|
### GET /api/frontend
|
||||||
|
|
|
||||||
16
app/Http/Middleware/CheckRole.php
Normal file
16
app/Http/Middleware/CheckRole.php
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class CheckRole
|
||||||
|
{
|
||||||
|
public function handle(Request $request, Closure $next, $role)
|
||||||
|
{
|
||||||
|
if ($request->user()->role !== $role) {
|
||||||
|
return response()->json(['error' => 'Unauthorized'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
20
database/migrations/xxxx_xx_xx_add_role_to_users_table.php
Normal file
20
database/migrations/xxxx_xx_xx_add_role_to_users_table.php
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddRoleToUsersTable extends Migration
|
||||||
|
{
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->string('role')->default('member');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('role');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue