This commit is contained in:
2020-09-03 08:31:42 +02:00
16 changed files with 235 additions and 184 deletions
@@ -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]);
}
@@ -22,7 +22,7 @@ class UserController extends Controller
{
public function __construct()
{
$this->middleware([ "auth" ])->only("logout");
$this->middleware([ "auth" ])->only(["accountupdate", "accountedit", "accounteditpass", "account", "logout"]);
$this->middleware([ "guest" ])->only(["login", "signup"]);
$this->middleware([ "lang" ])->except(["login", "showLogin", "showForgot", "forgot","signup"]);
@@ -31,8 +31,6 @@ class UserController extends Controller
$this->middleware([ "check.auth:user.create" ])->only("create");
$this->middleware([ "check.auth:user.edit" ])->only(["edit", "update"]);
$this->middleware([ "check.auth:user.delete" ])->only("delete");
$this->middleware([ "check.auth:ownuser.edit" ])->only(["accountupdate", "accountedit", "accounteditpass", "account"]);
}
/**
@@ -12,6 +12,8 @@ class UserEventController extends Controller
{
$this->middleware(["auth"]);
$this->middleware(["lang"]);
$this->middleware([ "check.auth:userevent.create" ])->only("create");
$this->middleware([ "check.auth:userevent.delete" ])->only("destroy");
}
/**
* Update the specified resource in storage.
@@ -133,6 +133,7 @@ class WashingReservationController extends Controller
public function destroy($id)
{
$machineReservation = WashingReservation::find($id);
dd($id);
$machineReservation->delete();
$reservations = WashingReservation::query()->paginate( 20);
@@ -266,7 +267,7 @@ class WashingReservationController extends Controller
{
WashingReservation::query()->where('time', '<', date('Y-m-d H:i:s', strtotime('-1 hour')))->delete();
$reservations = WashingReservation::query()->join('washing_machines', 'washing_machines.id', '=', 'washing_reservations.machine_id')->join('locations', 'locations.id', '=', 'washing_machines.location_id')->where("user_id", "=", auth()->user()->id)->orderBY('time' , 'asc')->paginate($request->query("limit", 20));
$reservations = WashingReservation::query()->where("user_id", "=", auth()->user()->id)->orderBY('time' , 'asc')->paginate($request->query("limit", 20));
return Response::detect("washing-reservations.index", [ "reservations" => $reservations]);
}