diff --git a/skolehjem/app/Http/Controllers/RolesController.php b/skolehjem/app/Http/Controllers/RolesController.php index baf642b..29aca2c 100644 --- a/skolehjem/app/Http/Controllers/RolesController.php +++ b/skolehjem/app/Http/Controllers/RolesController.php @@ -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]); } diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index db261d4..a291610 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -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"]); } /** diff --git a/skolehjem/app/Http/Controllers/UserEventController.php b/skolehjem/app/Http/Controllers/UserEventController.php index 90fcd89..61f9b1b 100644 --- a/skolehjem/app/Http/Controllers/UserEventController.php +++ b/skolehjem/app/Http/Controllers/UserEventController.php @@ -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. diff --git a/skolehjem/app/Http/Controllers/WashingReservationController.php b/skolehjem/app/Http/Controllers/WashingReservationController.php index d34471e..46a8166 100644 --- a/skolehjem/app/Http/Controllers/WashingReservationController.php +++ b/skolehjem/app/Http/Controllers/WashingReservationController.php @@ -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]); } diff --git a/skolehjem/database/seeds/PermissionSeeder.php b/skolehjem/database/seeds/PermissionSeeder.php index 28b9b46..ca9a9e3 100644 --- a/skolehjem/database/seeds/PermissionSeeder.php +++ b/skolehjem/database/seeds/PermissionSeeder.php @@ -21,7 +21,6 @@ class PermissionSeeder extends Seeder "user.show" => "Shows another user profile.", "user.edit" => "Allows editing of other users.", "user.delete" => "Allows deleting of other users.", - "ownuser.edit" => "Allows editing of your own user", /** * The EVENT specific permissions @@ -30,6 +29,8 @@ class PermissionSeeder extends Seeder "event.show" => "Shows a specific event", "event.edit" => "Allows editing of events", "event.delete" => "Allows deletion of events", + "userevent.create" => "Allows participation in an event", + "userevent.delete" => "Allows removing participation in an event", /** * The CONTACT specific permissions @@ -44,7 +45,6 @@ class PermissionSeeder extends Seeder */ "feedback.create" => "Creates a new feedback message", "feedback.show" => "Shows a specific feedback message", - "feedback.edit" => "allows editing of feedback messages", "feedback.delete" => "allows deletion of feedback messages", /** diff --git a/skolehjem/database/seeds/RoleSeeder.php b/skolehjem/database/seeds/RoleSeeder.php index eb9d937..d933701 100644 --- a/skolehjem/database/seeds/RoleSeeder.php +++ b/skolehjem/database/seeds/RoleSeeder.php @@ -46,8 +46,9 @@ class RoleSeeder extends Seeder $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "washing.machine.reservation.create")->first()); $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "washing.machine.reservation.delete")->first()); $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "washing.machine.reservation.show")->first()); - $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "ownuser.edit")->first()); $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "event.show")->first()); + $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "userevent.create")->first()); + $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "userevent.delete")->first()); $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "guides.show")->first()); $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", "news.show")->first()); diff --git a/skolehjem/resources/views/admin/contacts/create.blade.php b/skolehjem/resources/views/admin/contacts/create.blade.php index 2244a48..e46e6ba 100644 --- a/skolehjem/resources/views/admin/contacts/create.blade.php +++ b/skolehjem/resources/views/admin/contacts/create.blade.php @@ -36,7 +36,7 @@ @yield("scripts") diff --git a/skolehjem/resources/views/admin/roles/create.blade.php b/skolehjem/resources/views/admin/roles/create.blade.php index d56fc3d..6f9824e 100644 --- a/skolehjem/resources/views/admin/roles/create.blade.php +++ b/skolehjem/resources/views/admin/roles/create.blade.php @@ -32,13 +32,13 @@ @csrf - +
- +
@@ -47,66 +47,59 @@ Her kan alle basale rettigheder for appens forbrugere slås til eller fra. - - - - - - - - - - - - + + + + + - + - + - - - + + + - - - + + + - + - + - - + +
KontoBeskrivelseCreateReadDelete
Konto

Egen bruger

App-sideBeskrivelse kan fjernes?Opret/TilmeldSeSlet/Afmeld
Nyheder

Empty

Menuplan

Empty

Aktiviteter

Empty

Reservationer Empty
Kontakter

Empty

Vejledning

Empty

Feedback Empty
@@ -118,22 +111,19 @@ Her kan alle rettigheder for administrationssiden slås til eller fra. - - - - - - + + + + + + - - - - + @@ -156,28 +146,28 @@ - - - - + + + + - - - - + + + + - - - - + + + + @@ -201,17 +191,17 @@ - - - - + + + + - + @@ -220,7 +210,7 @@ - + @@ -228,9 +218,9 @@ - + - + @@ -309,12 +299,12 @@ //Show konto settings $("#kontoButton").click(function(){ var value = $('#kontoButton').text(); - if(value === 'Konto rettigheder'){ + if(value === 'App rettigheder'){ $('#konto').slideDown('slow'); - $('#kontoButton').html('Luk konto rettigheder') + $('#kontoButton').html('Luk app rettigheder') }else{ $('#konto').slideUp('slow'); - $('#kontoButton').html('Konto rettigheder') + $('#kontoButton').html('App rettigheder') } }); @@ -337,9 +327,7 @@ var Update = $(FC).attr('id') + 'U'; // Takes FC's ID Name and puts U at the back of it var Delete = $(FC).attr('id') + 'D'; // Takes FC's ID Name and puts D at the back of it - $(FC).prop('checked', false); - - if ($('#' + Create).prop('checked') == true && $('#' + Read).prop('checked') == true && $('#' + Update).prop('checked') == true && $('#' + Delete).prop('checked') == true) { + if ($(FC).prop('checked') == false) { $('#' + Create).prop('checked', false); $('#' + Read).prop('checked', false); $('#' + Update).prop('checked', false); diff --git a/skolehjem/resources/views/admin/roles/edit.blade.php b/skolehjem/resources/views/admin/roles/edit.blade.php index 114334b..9c0bf35 100644 --- a/skolehjem/resources/views/admin/roles/edit.blade.php +++ b/skolehjem/resources/views/admin/roles/edit.blade.php @@ -33,81 +33,73 @@ @method("put") - +
- +
-
Her kan alle basale rettigheder for appens forbrugere slås til eller fra.
SideBeskrivelseCreateReadUpdateDeleteAdmin-sideBeskrivelse kan fjernes?OpretSeRedigerSlet Fuld Kontrol
Admin Panel

Adgang til admin panelet

Brugere
Nyheder

Empty

Menuplan

Empty

Aktiviteter

Empty

Reservationer Empty
Kontakter

Empty

Vejledning

Empty

Feedback

Empty

- - - - - - - - - - - - + + + + + - + - + - - - + + + - - - + + + - + - + - - + +
KontoBeskrivelseCreateReadDelete
Konto

Egen bruger

App-sideBeskrivelse kan fjernes?Opret/TilmeldSeSlet/Afmeld
Nyheder

Empty

hasPermissionTo("news.show")) checked @endif>
Menuplan

Empty

hasPermissionTo("menuplan.show")) checked @endif>
Aktiviteter

Empty

hasPermissionTo("userevent.create")) checked @endif>hasPermissionTo("event.show")) checked @endif>hasPermissionTo("userevent.delete")) checked @endif>
Reservationer EmptyhasPermissionTo("washing.machine.reservation.create")) checked @endif>hasPermissionTo("washing.machine.reservation.show")) checked @endif>hasPermissionTo("washing.machine.reservation.delete")) checked @endif>
Kontakter

Empty

hasPermissionTo("contact.show")) checked @endif>
Vejledning

Empty

hasPermissionTo("guides.show")) checked @endif>
Feedback EmptyhasPermissionTo("feedback.create")) checked @endif>
@@ -118,122 +110,119 @@
Her kan alle rettigheder for administrationssiden slås til eller fra. - - - - - - - + + + + + + + - + - - - - + - + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + +
SideBeskrivelseCreateReadUpdateDelete
Admin-sideBeskrivelse kan fjernes?OpretSeRedigerSlet Fuld Kontrol
Admin Panel

Adgang til admin panelet

hasPermissionTo("admin.panel.show")) checked @endif>
Brugere

Empty

hasPermissionTo("user.create")) checked @endif>hasPermissionTo("user.show")) checked @endif>hasPermissionTo("user.edit")) checked @endif>hasPermissionTo("user.delete")) checked @endif>
Roller

Empty

hasPermissionTo("roles.create")) checked @endif>hasPermissionTo("roles.show")) checked @endif>hasPermissionTo("roles.edit")) checked @endif>hasPermissionTo("roles.delete")) checked @endif>
Nyheder

Empty

hasPermissionTo("news.create")) checked @endif>hasPermissionTo("news.show")) checked @endif>hasPermissionTo("news.edit")) checked @endif>hasPermissionTo("news.delete")) checked @endif>
Menuplan

Empty

hasPermissionTo("menuplan.create")) checked @endif>hasPermissionTo("menuplan.show")) checked @endif>hasPermissionTo("menuplan.edit")) checked @endif>hasPermissionTo("menuplan.delete")) checked @endif>
Aktiviteter

Empty

hasPermissionTo("event.create")) checked @endif>hasPermissionTo("event.show")) checked @endif>hasPermissionTo("event.edit")) checked @endif>hasPermissionTo("event.delete")) checked @endif>
Lokation

Empty

hasPermissionTo("locations.create")) checked @endif>hasPermissionTo("locations.show")) checked @endif>hasPermissionTo("locations.edit")) checked @endif>hasPermissionTo("locations.delete")) checked @endif>
Vaskemaskiner

Empty

hasPermissionTo("washing.machine.create")) checked @endif>hasPermissionTo("washing.machine.show")) checked @endif>hasPermissionTo("washing.machine.edit")) checked @endif>hasPermissionTo("washing.machine.delete")) checked @endif>
Reservationer EmptyhasPermissionTo("washing.machine.reservation.show")) checked @endif>hasPermissionTo("washing.machine.reservation.delete")) checked @endif>
Kontakter

Empty

hasPermissionTo("contact.create")) checked @endif>hasPermissionTo("contact.show")) checked @endif>hasPermissionTo("contact.edit")) checked @endif>hasPermissionTo("contact.delete")) checked @endif>
Vejledning

Empty

hasPermissionTo("guides.create")) checked @endif>hasPermissionTo("guides.show")) checked @endif>hasPermissionTo("guides.edit")) checked @endif>hasPermissionTo("guides.delete")) checked @endif>
Feedback

Empty

hasPermissionTo("feedback.show")) checked @endif>hasPermissionTo("feedback.delete")) checked @endif>
@@ -312,12 +301,12 @@ //Show konto settings $("#kontoButton").click(function(){ var value = $('#kontoButton').text(); - if(value === 'Rediger konto rettigheder'){ + if(value === 'Rediger app rettigheder'){ $('#konto').slideDown('slow'); - $('#kontoButton').html('Luk konto rettigheder') + $('#kontoButton').html('Luk app rettigheder') }else{ $('#konto').slideUp('slow'); - $('#kontoButton').html('Rediger konto rettigheder') + $('#kontoButton').html('Rediger app rettigheder') } }); @@ -334,7 +323,35 @@ } }); + function FullControl(FC) { //FC == Full Control checkbox element + var Create = $(FC).attr('id') + 'C'; // Takes FC's ID Name and puts C at the back of it + var Read = $(FC).attr('id') + 'R'; // Takes FC's ID Name and puts R at the back of it + var Update = $(FC).attr('id') + 'U'; // Takes FC's ID Name and puts U at the back of it + var Delete = $(FC).attr('id') + 'D'; // Takes FC's ID Name and puts D at the back of it + if ($(FC).prop('checked') == false) { + $('#' + Create).prop('checked', false); + $('#' + Read).prop('checked', false); + $('#' + Update).prop('checked', false); + $('#' + Delete).prop('checked', false); + } else { + $('#' + Create).prop('checked', true); + $('#' + Read).prop('checked', true); + $('#' + Update).prop('checked', true); + $('#' + Delete).prop('checked', true); + } + } + $(document).ready(function () { + var arr = ['User', 'Role', 'News', 'Menu', 'Event', 'Location', 'WashingMachine', 'Reservation', 'Contact', 'Guide', 'Feedback']; + + for (i = 0; i < arr.length; i++) { + if ($('#'+arr[i]+'C').prop('checked') == true && $('#'+arr[i]+'R').prop('checked') == true && $('#'+arr[i]+'U').prop('checked') == true && $('#'+arr[i]+'D').prop('checked') == true) + $('#'+arr[i]).prop('checked', true); + else if(arr[i] == 'Feedback' || arr[i] == 'Reservation') + if($('#'+arr[i]+'R').prop('checked') == true && $('#'+arr[i]+'D').prop('checked') == true) + $('#'+arr[i]).prop('checked', true); + } + }); @endsection diff --git a/skolehjem/resources/views/admin/users/create.blade.php b/skolehjem/resources/views/admin/users/create.blade.php index aebea0f..668d55e 100644 --- a/skolehjem/resources/views/admin/users/create.blade.php +++ b/skolehjem/resources/views/admin/users/create.blade.php @@ -20,7 +20,7 @@ - +
diff --git a/skolehjem/resources/views/app/events/index.blade.php b/skolehjem/resources/views/app/events/index.blade.php index 50ca69c..2f87d5b 100644 --- a/skolehjem/resources/views/app/events/index.blade.php +++ b/skolehjem/resources/views/app/events/index.blade.php @@ -39,8 +39,9 @@ /*Alert box*/ .alert { + opacity: 0.8; padding: 20px; - background-color: #f44336; + background-color: #00788A; color: white; border-radius: 10px; } diff --git a/skolehjem/resources/views/app/news/index.blade.php b/skolehjem/resources/views/app/news/index.blade.php index 5dee4f4..d4ddf37 100644 --- a/skolehjem/resources/views/app/news/index.blade.php +++ b/skolehjem/resources/views/app/news/index.blade.php @@ -45,16 +45,26 @@ .img{ width: 1em; + height: calc(1em + 20px); margin-top: 5px; margin-bottom: 5px; margin-left: 5px; font-size: 20px; - padding: 3px 10px; - border-color: cadetblue; + padding: 0 10px; + border-color: #00788a; border-radius: 100%; - background-color: cadetblue; + background-color: #00788a; line-height: 30px; float: left; + display: flex; + justify-content: center; + } + + .img > a { + width: 100%; + height: 100%; + display: flex; + justify-content: center; } .information{ @@ -69,7 +79,7 @@ width: 100%; } - html,body,main{ + html,main{ @if(request()->cookie("mode") == "dark") @else diff --git a/skolehjem/resources/views/app/washing-reservations/create.blade.php b/skolehjem/resources/views/app/washing-reservations/create.blade.php index f7aa6fe..58ea030 100644 --- a/skolehjem/resources/views/app/washing-reservations/create.blade.php +++ b/skolehjem/resources/views/app/washing-reservations/create.blade.php @@ -174,11 +174,7 @@ //Fill locations fillLocations(data["locations"], location_id); - //Fill washing-machines - fillMachines(data["washingmachines"], machine_id); - - //Fill events (times) and remove unavailable_times - fillTimes(data["unavailable_times"], datetext, date); + updateForm(); }); } @@ -410,7 +406,7 @@ var data = response.data; //Fill events (times) and remove unavailable_times - fillTimes(data["unavailable_times"], dateText); + fillTimes(data["unavailable_times"], dateText, momentDate); }); }); } diff --git a/skolehjem/resources/views/app/washing-reservations/index.blade.php b/skolehjem/resources/views/app/washing-reservations/index.blade.php index 63890c3..95e91ab 100644 --- a/skolehjem/resources/views/app/washing-reservations/index.blade.php +++ b/skolehjem/resources/views/app/washing-reservations/index.blade.php @@ -16,7 +16,7 @@

{{ \App\WashingMachine::query()->find($reservation->machine_id)->name }}

{{__('msg.tid')}}: {{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($reservation->time))->format('d/m/Y \k\l\. H:i') }} - - {{ $reservation->name }} + - {{ \App\Location::query()->where('id', '=', \App\WashingMachine::query()->find($reservation->machine_id)->location_id)->first()->name }}
$reservation ]) }}"> @csrf @method("delete")