diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 681f41a..264b222 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -94,7 +94,6 @@ http://schemas.android.com/apk/res/android - ANDROID_ATTRIBUTE_ORDER
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/skolehjem/app/Helpers/Detector.php b/skolehjem/app/Helpers/Detector.php index 6b9481d..7c6312a 100644 --- a/skolehjem/app/Helpers/Detector.php +++ b/skolehjem/app/Helpers/Detector.php @@ -3,9 +3,7 @@ namespace App\Helpers; - - - +use Illuminate\Support\Facades\Auth; use Jenssegers\Agent\Agent; class Detector @@ -16,7 +14,13 @@ class Detector if($agent->isMobile()) { return view(config("detector.mobilePath") . "." . $viewName, $args); + } else if(Auth()->user() !== null) { + if (Auth()->user()->can('admin.panel.show') == true) + return view(config("detector.defaultPath") . "." . $viewName, $args); } - return view(config("detector.defaultPath") . "." . $viewName, $args); + if($viewName == "users.login" || $viewName == "users.logout") + return view(config("detector.mobilePath") . "." . $viewName, $args); + + return view("errors.403", $args); } } diff --git a/skolehjem/app/Http/Controllers/RolesController.php b/skolehjem/app/Http/Controllers/RolesController.php index 83b4143..ccb5fee 100644 --- a/skolehjem/app/Http/Controllers/RolesController.php +++ b/skolehjem/app/Http/Controllers/RolesController.php @@ -6,6 +6,7 @@ use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\DB; use Spatie\Permission\Models\Role; +use Illuminate\Database\Eloquent\Collection; class rolesController extends Controller { @@ -57,6 +58,13 @@ class rolesController extends Controller "description" => "required|max:255" ]); + $brugerPermissions = new Collection(); + if ($request->value !== null) { + foreach ($request->value as $valuee) { + $brugerPermissions->add(\Spatie\Permission\Models\Permission::query()->where("name", "=", $valuee)->first()); + } + } + $role = new Role($requestRole); $allRoles = Role::query()->where('name', '=', $request->name)->get(); @@ -66,11 +74,16 @@ class rolesController extends Controller return redirect()->route("roles.store"); else { // Else - Create it $role->save(); + + if (!$brugerPermissions->isEmpty()) { + foreach ($brugerPermissions as $permission) { + \Spatie\Permission\Models\Role::query()->find($role->id)->givePermissionTo($permission); + } + } + $roles = Role::query()->paginate($request->input("limit", 20)); return redirect()->route("roles.index", ['roles' => $roles]); } - - } /** diff --git a/skolehjem/app/Http/Controllers/RootController.php b/skolehjem/app/Http/Controllers/RootController.php index 76670a6..d34cb52 100644 --- a/skolehjem/app/Http/Controllers/RootController.php +++ b/skolehjem/app/Http/Controllers/RootController.php @@ -19,16 +19,16 @@ class RootController extends Controller if(auth()->user()->can('admin.panel.show')) { if(Response::detect("root.index")->name() == "admin.root.index") - return Response::detect("root.index"); + return view("admin.root.index"); else { $news = News::query()->orderBy('id', 'desc')->paginate($perPage); - return Response::detect("root.index", ["news" => $news]); + return view("app.root.index", ["news" => $news]); } } else { $news = News::query()->orderBy('id', 'desc')->paginate($perPage, ['*'], "page"); - return view('app.root.index', ["news" => $news]); + return Response::detect('root.index', ["news" => $news]); } } } diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index 28bf856..876ffa1 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -76,6 +76,7 @@ class UserController extends Controller "phone" => "required|max:8|min:8", ]); + $allUsersEmail = User::query()->where('email', '=', $request->email)->get(); $allUsersPhone = User::query()->where('phone', '=', $request->phone)->get(); @@ -140,6 +141,12 @@ class UserController extends Controller { $user = User::find($id); + if($request->file("resource")) { + $user->resource_id = ResourceController::store($request)->id; + } + + $user->save(); + $allUsersEmail = User::query()->where('email', '=', $request->email)->where('id', '!=', $id)->get(); $allUsersPhone = User::query()->where('phone', '=', $request->phone)->where('id', '!=', $id)->get(); @@ -315,18 +322,18 @@ class UserController extends Controller $data = $request->only(['name_first', 'name_last', 'email', 'phone', 'password']); if ($request->input('password') != $request->input('confirmpassword')) { // If new password and new password confirm is not the same, go back with fail message. if (request()->cookie('languagesSetting') == "dk") - return redirect()->route("users.accounteditpass")->with('error#notsamepass', '

Der stod ikke det samme i `Nyt Password` & `Confirm Password`!

'); + return redirect()->route("users.accounteditpass")->with('error#notsamepass', '

Der stod ikke det samme i Nyt Password & Confirm Password!

'); elseif (request()->cookie('languagesSetting') == "en") - return redirect()->route("users.accounteditpass")->with('error#notsamepass', '

`New Password` & `Confirm Password` was not the same!

'); + return redirect()->route("users.accounteditpass")->with('error#notsamepass', '

New Password & Confirm Password was not the same!

'); else - return redirect()->route("users.accounteditpass")->with('error#notsamepass', '

Der stod ikke det samme i `Nyt Password` & `Confirm Password`!

'); + return redirect()->route("users.accounteditpass")->with('error#notsamepass', '

Der stod ikke det samme i Nyt Password & Confirm Password!

'); } elseif (!Hash::check($request->input('oldpassword'), $user->password)) { // If the written current password and current password in DB is not the same, go back with fail message. if (request()->cookie('languagesSetting') == "dk") - return redirect()->route("users.accounteditpass")->with('error#oldpass', '

Det indtastede password i `Nuværende Password` er ikke dit nuværende password!

'); + return redirect()->route("users.accounteditpass")->with('error#oldpass', '

Det indtastede password i Nuværende Password er ikke dit nuværende password!

'); elseif (request()->cookie('languagesSetting') == "en") - return redirect()->route("users.accounteditpass")->with('error#oldpass', '

The entered `Current Password` was not the same as your current password!

'); + return redirect()->route("users.accounteditpass")->with('error#oldpass', '

The entered Current Password was not the same as your current password!

'); else - return redirect()->route("users.accounteditpass")->with('error#oldpass', '

Det indtastede password i `Nuværende Password` er ikke dit nuværende password!

'); + return redirect()->route("users.accounteditpass")->with('error#oldpass', '

Det indtastede password i Nuværende Password er ikke dit nuværende password!

'); } else { // If new password and current password is the same AND current written and current DB password is the same. Then update and logout. /** @var User $user */ $user->update($data); diff --git a/skolehjem/app/Providers/DetectorServiceProvider.php b/skolehjem/app/Providers/DetectorServiceProvider.php index c34f089..93a05fc 100644 --- a/skolehjem/app/Providers/DetectorServiceProvider.php +++ b/skolehjem/app/Providers/DetectorServiceProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\ServiceProvider; use Jenssegers\Agent\Facades\Agent; @@ -28,8 +29,14 @@ class DetectorServiceProvider extends ServiceProvider Response::macro("detect", function ($view, $args = []) { if(Agent::isMobile()) { return view(config("detector.mobilePath") . "." . $view, $args); + } else if(Auth()->user() !== null){ + if(Auth()->user()->can('admin.panel.show') == true) + return view(config("detector.defaultPath") . "." . $view, $args); } - return view(config("detector.defaultPath") . "." . $view, $args); + if($view == "users.login" || $view == "users.logout") + return view(config("detector.mobilePath") . "." . $view, $args); + + return view("errors.403", $args); }); } } diff --git a/skolehjem/resources/lang/dk/msg.php b/skolehjem/resources/lang/dk/msg.php index 1cb10fb..da07a73 100644 --- a/skolehjem/resources/lang/dk/msg.php +++ b/skolehjem/resources/lang/dk/msg.php @@ -21,6 +21,7 @@ return[ "dereringenvaskemaskiner" => "Der er ikke nogen vaskemaskiner", "lokation" => "Lokation", "kontakter" => "Kontakt", + "telefontid" => "Telefontider", "navn" => "Navn", "email"=> "E-mail", "ring" => "Ring", @@ -63,6 +64,7 @@ return[ "infoomappen" => "Denne app er udviklet til Odense erhvervskollegie.", "error" => "Fejl", "404" => "Denne side findes ikke.", + "403" => "Du har ikke rettigheder til denne side.", "canceled" => "Aflyst" diff --git a/skolehjem/resources/lang/en/msg.php b/skolehjem/resources/lang/en/msg.php index 587823e..87ebfc8 100644 --- a/skolehjem/resources/lang/en/msg.php +++ b/skolehjem/resources/lang/en/msg.php @@ -70,5 +70,6 @@ return[ "infoomappen" => "The app is developed and designed for 'Odense erhvervskollegie'.", "error" => "Error", "404" => "This page doesn't exist.", + "403" => "You don't have permissions to access this page.", "canceled" => "Canceled" ]; diff --git a/skolehjem/resources/views/admin/guides/create.blade.php b/skolehjem/resources/views/admin/guides/create.blade.php index a6ff02f..ac8a3ce 100644 --- a/skolehjem/resources/views/admin/guides/create.blade.php +++ b/skolehjem/resources/views/admin/guides/create.blade.php @@ -54,7 +54,7 @@ [{ 'header': '1' }, { 'header': '2' }, 'blockquote' ], [{ 'list': 'ordered' }, { 'list': 'bullet'}, { 'indent': '-1' }, { 'indent': '+1' }], [ {'direction': 'rtl'}, { 'align': [] }], - [ 'link' ], + [ 'link', 'video' ], [ 'clean' ] ], }, diff --git a/skolehjem/resources/views/admin/guides/edit.blade.php b/skolehjem/resources/views/admin/guides/edit.blade.php index 0c24983..603ece5 100644 --- a/skolehjem/resources/views/admin/guides/edit.blade.php +++ b/skolehjem/resources/views/admin/guides/edit.blade.php @@ -54,7 +54,7 @@ [{ 'header': '1' }, { 'header': '2' }, 'blockquote' ], [{ 'list': 'ordered' }, { 'list': 'bullet'}, { 'indent': '-1' }, { 'indent': '+1' }], [ {'direction': 'rtl'}, { 'align': [] }], - [ 'link' ], + [ 'link', 'video' ], [ 'clean' ] ], }, diff --git a/skolehjem/resources/views/admin/index.blade.php b/skolehjem/resources/views/admin/index.blade.php index 181797c..9522626 100644 --- a/skolehjem/resources/views/admin/index.blade.php +++ b/skolehjem/resources/views/admin/index.blade.php @@ -95,7 +95,7 @@ - {{__('msg.af')}}: {{ \App\Event::query()->orderByDesc("date")->first()->accountable }} + Af: {{ \App\Event::query()->orderByDesc("date")->first()->accountable }} diff --git a/skolehjem/resources/views/admin/roles/create.blade.php b/skolehjem/resources/views/admin/roles/create.blade.php index 6735d0a..d56fc3d 100644 --- a/skolehjem/resources/views/admin/roles/create.blade.php +++ b/skolehjem/resources/views/admin/roles/create.blade.php @@ -10,6 +10,23 @@ @endsection @section("content") +

Opret Rolle:

@csrf @@ -18,6 +35,208 @@ + + +
+ + +
+ + +
+ Her kan alle basale rettigheder for appens forbrugere slås til eller fra. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KontoBeskrivelseCreateReadDelete
Konto

Egen bruger

Nyheder

Empty

Menuplan

Empty

Aktiviteter

Empty

ReservationerEmpty
Kontakter

Empty

Vejledning

Empty

FeedbackEmpty
+
+ + + +
+ Her kan alle rettigheder for administrationssiden slås til eller fra. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SideBeskrivelseCreateReadUpdateDeleteFuld Kontrol
Admin Panel

Adgang til admin panelet

Brugere

Empty

Roller

Empty

Nyheder

Empty

Menuplan

Empty

Aktiviteter

Empty

Lokation

Empty

Vaskemaskiner

Empty

ReservationerEmpty
Kontakter

Empty

Vejledning

Empty

Feedback

Empty

+
+
@endsection @@ -81,5 +300,56 @@ } }); }) + + // hide permissions + $('#konto').hide(); + $('#admin').hide(); + + + //Show konto settings + $("#kontoButton").click(function(){ + var value = $('#kontoButton').text(); + if(value === 'Konto rettigheder'){ + $('#konto').slideDown('slow'); + $('#kontoButton').html('Luk konto rettigheder') + }else{ + $('#konto').slideUp('slow'); + $('#kontoButton').html('Konto rettigheder') + } + }); + + + //Show admin permissions + $("#adminButton").click(function(){ + var value = $('#adminButton').text(); + if(value === 'Admin rettigheder'){ + $('#admin').slideDown('slow'); + $('#adminButton').html('Luk admin rettigheder') + }else{ + $('#admin').slideUp('slow'); + $('#adminButton').html('Admin rettigheder') + } + }); + + function FullControl(FC) { //FC == Full Controll + 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 + + $(FC).prop('checked', false); + + if ($('#' + Create).prop('checked') == true && $('#' + Read).prop('checked') == true && $('#' + Update).prop('checked') == true && $('#' + Delete).prop('checked') == true) { + $('#' + 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); + } + } @endsection diff --git a/skolehjem/resources/views/admin/roles/edit.blade.php b/skolehjem/resources/views/admin/roles/edit.blade.php index 777f39e..114334b 100644 --- a/skolehjem/resources/views/admin/roles/edit.blade.php +++ b/skolehjem/resources/views/admin/roles/edit.blade.php @@ -10,6 +10,23 @@ @endsection @section("content") +

Rediger Rolle:

$role]) }}"> @csrf @@ -19,6 +36,209 @@ + + +
+ + +
+ + +
+ Her kan alle basale rettigheder for appens forbrugere slås til eller fra. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KontoBeskrivelseCreateReadDelete
Konto

Egen bruger

Nyheder

Empty

Menuplan

Empty

Aktiviteter

Empty

ReservationerEmpty
Kontakter

Empty

Vejledning

Empty

FeedbackEmpty
+
+ + + +
+ Her kan alle rettigheder for administrationssiden slås til eller fra. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SideBeskrivelseCreateReadUpdateDeleteFuld Kontrol
Admin Panel

Adgang til admin panelet

Brugere

Empty

Roller

Empty

Nyheder

Empty

Menuplan

Empty

Aktiviteter

Empty

Lokation

Empty

Vaskemaskiner

Empty

ReservationerEmpty
Kontakter

Empty

Vejledning

Empty

Feedback

Empty

+
+ +
@endsection @@ -82,5 +302,39 @@ } }); }) + + + // hide permissions + $('#konto').hide(); + $('#admin').hide(); + + + //Show konto settings + $("#kontoButton").click(function(){ + var value = $('#kontoButton').text(); + if(value === 'Rediger konto rettigheder'){ + $('#konto').slideDown('slow'); + $('#kontoButton').html('Luk konto rettigheder') + }else{ + $('#konto').slideUp('slow'); + $('#kontoButton').html('Rediger konto rettigheder') + } + }); + + + //Show admin permissions + $("#adminButton").click(function(){ + var value = $('#adminButton').text(); + if(value === 'Rediger admin rettigheder'){ + $('#admin').slideDown('slow'); + $('#adminButton').html('Luk admin rettigheder') + }else{ + $('#admin').slideUp('slow'); + $('#adminButton').html('Rediger admin rettigheder') + } + }); + + + @endsection diff --git a/skolehjem/resources/views/admin/users/edit.blade.php b/skolehjem/resources/views/admin/users/edit.blade.php index a3e74f2..03bbfb1 100644 --- a/skolehjem/resources/views/admin/users/edit.blade.php +++ b/skolehjem/resources/views/admin/users/edit.blade.php @@ -11,7 +11,7 @@ @section("content")

Rediger Bruger:

-
$user]) }}" onsubmit="return checkInputs()"> + $user]) }}" onsubmit="return checkInputs()" enctype="multipart/form-data"> @csrf @method("put") @@ -20,7 +20,7 @@ - +
@@ -34,7 +34,7 @@
- + + +
@endsection diff --git a/skolehjem/resources/views/admin/users/index.blade.php b/skolehjem/resources/views/admin/users/index.blade.php index acb160e..d7d1270 100644 --- a/skolehjem/resources/views/admin/users/index.blade.php +++ b/skolehjem/resources/views/admin/users/index.blade.php @@ -29,7 +29,6 @@ text-align: center; border-radius: 6px; padding: 5px 0; - /* Position the tooltip */ position: absolute; z-index: 10; top: -5px; diff --git a/skolehjem/resources/views/admin/users/login.blade.php b/skolehjem/resources/views/admin/users/login.blade.php index e43fe7d..749c467 100644 --- a/skolehjem/resources/views/admin/users/login.blade.php +++ b/skolehjem/resources/views/admin/users/login.blade.php @@ -16,7 +16,7 @@ {!! session()->get('success#passwordchange') !!} diff --git a/skolehjem/resources/views/app/events/index.blade.php b/skolehjem/resources/views/app/events/index.blade.php index a0473a9..283daed 100644 --- a/skolehjem/resources/views/app/events/index.blade.php +++ b/skolehjem/resources/views/app/events/index.blade.php @@ -5,6 +5,10 @@ @section("content")