fix login auto detect menu link, and partial update tchnician role dealer
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Models\Menu;
|
||||
use App\Models\Privilege;
|
||||
use App\Models\Role;
|
||||
use App\Models\User;
|
||||
use App\Models\Dealer;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
|
||||
@@ -14,10 +15,11 @@ class RolePrivilegeController extends Controller
|
||||
public function index() {
|
||||
$menu = Menu::where('link', 'roleprivileges.index')->first();
|
||||
abort_if(Gate::denies('view', $menu), 403, 'Unauthorized User');
|
||||
$roles = Role::all();
|
||||
$roles = Role::with('dealers')->get();
|
||||
$menus = Menu::all();
|
||||
$users = User::all();
|
||||
return view('back.roleprivileges', compact('roles', 'users', 'menus'));
|
||||
$dealers = Dealer::all();
|
||||
return view('back.roleprivileges', compact('roles', 'users', 'menus', 'dealers'));
|
||||
}
|
||||
|
||||
public function store(Request $request) {
|
||||
@@ -117,4 +119,36 @@ class RolePrivilegeController extends Controller
|
||||
User::where('role_id', $id)->update(['role_id' => 0]);
|
||||
return redirect()->back()->with('success', 'Berhasil Hapus Role');
|
||||
}
|
||||
|
||||
public function assignDealer(Request $request, $id) {
|
||||
$menu = Menu::where('link', 'roleprivileges.index')->first();
|
||||
abort_if(Gate::denies('create', $menu), 403, 'Unauthorized User');
|
||||
|
||||
$request->validate([
|
||||
'dealers' => 'required|array',
|
||||
'dealers.*' => 'exists:dealers,id'
|
||||
]);
|
||||
|
||||
$role = Role::findOrFail($id);
|
||||
|
||||
// Sync dealers (this will replace existing assignments)
|
||||
$role->dealers()->sync($request->dealers);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Berhasil assign dealer ke role'
|
||||
]);
|
||||
}
|
||||
|
||||
public function getAssignedDealers($id) {
|
||||
$menu = Menu::where('link', 'roleprivileges.index')->first();
|
||||
abort_if(Gate::denies('view', $menu), 403, 'Unauthorized User');
|
||||
|
||||
$role = Role::findOrFail($id);
|
||||
$assignedDealers = $role->dealers()->pluck('dealers.id')->toArray();
|
||||
|
||||
return response()->json([
|
||||
'assignedDealers' => $assignedDealers
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user