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 @@
Aktivitet ansvarlig
- {{__('msg.af')}}: {{ \App\Event::query()->orderByDesc("date")->first()->accountable }}
+ Af: {{ \App\Event::query()->orderByDesc("date")->first()->accountable }}
Tidspunkt
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:
@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:
@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:
-
@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 @@
- Remember password
+ Remember me
{!! 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")