v0.11.0 - You can now edit roles
Fixed minor details
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
||||
@@ -117,9 +118,31 @@ class RolesController extends Controller
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$data = $request->all();
|
||||
$data = $request->validate([
|
||||
"name" => "required|max:255",
|
||||
"description" => "required|max:255"
|
||||
]);
|
||||
$role = Role::find($id);
|
||||
|
||||
$brugerPermissions = new Collection();
|
||||
if ($request->value !== null) {
|
||||
foreach ($request->value as $valuee) {
|
||||
$brugerPermissions->add(Permission::query()->where("name", "=", $valuee)->first());
|
||||
}
|
||||
}
|
||||
|
||||
// Delete all permission to the role you're editing, so you can give new ones
|
||||
foreach (Permission::query()->get() as $permission) {
|
||||
Role::query()->find($id)->revokePermissionTo($permission);
|
||||
}
|
||||
|
||||
// Give new permissions to the tole you're editing
|
||||
if (!$brugerPermissions->isEmpty()) {
|
||||
foreach ($brugerPermissions as $permission) {
|
||||
Role::query()->find($id)->givePermissionTo($permission);
|
||||
}
|
||||
}
|
||||
|
||||
$allRoles = Role::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get();
|
||||
|
||||
if(count($allRoles) > 0){
|
||||
@@ -127,6 +150,7 @@ class RolesController extends Controller
|
||||
}else{
|
||||
$role->update($data);
|
||||
$role->save();
|
||||
|
||||
$roles = Role::query()->paginate($request->input("limit", 20));
|
||||
return redirect()->route("roles.index", ['roles' => $roles]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user