1. Go to this page and download the library: Download kodepik/ums-laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
Route::middleware(['ums.auth'])->group(function () {
// Semua route di sini butuh token valid
});
// User harus punya permission 'read' di module 'inventory'
Route::middleware(['ums.auth', 'ums.permission:inventory,read'])->group(function () {
Route::get('/items', [ItemController::class, 'index']);
});
// User harus punya permission 'write' di module 'inventory'
Route::middleware(['ums.auth', 'ums.permission:inventory,write'])->group(function () {
Route::post('/items', [ItemController::class, 'store']);
});
// User harus punya role 'admin' di module 'dashboard'
Route::middleware(['ums.auth', 'ums.role:dashboard,admin'])->group(function () {
Route::get('/admin', [AdminController::class, 'index']);
});
// User harus punya akses ke module 'reports'
Route::middleware(['ums.auth', 'ums.module:reports'])->group(function () {
Route::get('/reports', [ReportController::class, 'index']);
});
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ItemController extends Controller
{
public function __construct()
{
$this->middleware('ums.auth');
$this->middleware('ums.permission:inventory,read')->only(['index', 'show']);
$this->middleware('ums.permission:inventory,create')->only(['store']);
$this->middleware('ums.permission:inventory,update')->only(['update']);
$this->middleware('ums.permission:inventory,delete')->only(['destroy']);
}
public function index()
{
$items = \App\Models\Item::all();
return response()->json(['success' => true, 'data' => $items]);
}
public function store(Request $request)
{
$validated = $request->validate(['name' => '
// Tanpa middleware — cek manual di logic
public function exportReport()
{
if (!ums_can('reports', 'export')) {
abort(403, 'You do not have export permission');
}
// ... generate export
}
// Conditional content berdasarkan role
public function dashboard()
{
$data = ['items' => Item::all()];
if (ums_has_role('dashboard', 'admin')) {
$data['admin_stats'] = $this->getAdminStats();
}
return view('dashboard', $data);
}