diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 2227e89..1bad499 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,19 +1,11 @@ - + sqlite.xerial true org.sqlite.JDBC jdbc:sqlite:$PROJECT_DIR$/skolehjem/database/laravel.sqlite - - - file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.31.1/license.txt - - - file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.31.1/sqlite-jdbc-3.31.1.jar - - \ No newline at end of file diff --git a/PERMS.ods b/PERMS.ods index ebc91fe..735d1c3 100644 Binary files a/PERMS.ods and b/PERMS.ods differ diff --git a/skolehjem/app/Album.php b/skolehjem/app/Album.php new file mode 100644 index 0000000..e32fee6 --- /dev/null +++ b/skolehjem/app/Album.php @@ -0,0 +1,27 @@ +belongsTo('App\Album'); + } + + public function images() + { + return $this->hasMany('App\Image'); + } + + public function videos() + { + return $this->hasMany('App\Video'); + } +} diff --git a/skolehjem/app/Http/Controllers/AlbumController.php b/skolehjem/app/Http/Controllers/AlbumController.php new file mode 100644 index 0000000..191d47b --- /dev/null +++ b/skolehjem/app/Http/Controllers/AlbumController.php @@ -0,0 +1,85 @@ +middleware([ "auth" ]); + + $this->middleware([ "check.auth:contact.list" ])->only("index"); + $this->middleware([ "check.auth:contact.show" ])->only("show"); + $this->middleware([ "check.auth:contact.create" ])->only("create", "store"); + $this->middleware([ "check.auth:contact.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:contact.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * @@ -102,9 +113,10 @@ class ContactController extends Controller * @return \Illuminate\Http\RedirectResponse * @throws \Exception */ - public function destroy(Contact $id) + public function destroy($id) { - $id->delete(); + $contact = Contact::find($id); + $contact->delete(); return redirect()->route("contacts.index"); } } diff --git a/skolehjem/app/Http/Controllers/EventController.php b/skolehjem/app/Http/Controllers/EventController.php index e5754f5..0e98754 100644 --- a/skolehjem/app/Http/Controllers/EventController.php +++ b/skolehjem/app/Http/Controllers/EventController.php @@ -10,6 +10,17 @@ use Illuminate\Http\Response; class EventController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:event.list" ])->only("index"); + $this->middleware([ "check.auth:event.show" ])->only("show"); + $this->middleware([ "check.auth:event.create" ])->only("create", "store"); + $this->middleware([ "check.auth:event.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:event.delete" ])->only("delete"); + } + /** * Display a listing of the resource.. * @@ -70,9 +81,10 @@ class EventController extends Controller * @param int $id * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function edit(Event $id) + public function edit($id) { - return Response::detect("events.edit", [ "event" => $id ]); + $event = Event::find($id); + return Response::detect("events.edit", [ "event" => $event ]); } /** @@ -82,17 +94,15 @@ class EventController extends Controller * @param int $id * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function update(Request $request, Event $id) + public function update(Request $request, $id) { - $requestBody = $request->validate([ - "name" => "unique:events|max:255", - "description" => "max:255" - ]); + $data = $request->all(); - $id->update($requestBody); - $id->save(); + $event = Event::find($id); + $event->update($data); + $event->save(); - return Response::detect("events.update"); + return Response::detect("events.update", [ "event" => $event]); } /** @@ -104,8 +114,8 @@ class EventController extends Controller */ public function destroy($id) { - $link = Event::find($id); - $link->delete(); + $event = Event::find($id); + $event->delete(); return redirect()->route("events.index"); } } diff --git a/skolehjem/app/Http/Controllers/ExternalLinkController.php b/skolehjem/app/Http/Controllers/ExternalLinkController.php index 2a6eafa..8f99398 100644 --- a/skolehjem/app/Http/Controllers/ExternalLinkController.php +++ b/skolehjem/app/Http/Controllers/ExternalLinkController.php @@ -9,6 +9,15 @@ use Illuminate\Http\Response; class ExternalLinkController extends Controller { + function __construct() + { + $this->middleware("permission:link.external.list")->only("index"); + $this->middleware("permission:link.external.create")->only(["create", "store"]); + $this->middleware("permission:link.external.show")->only("show"); + $this->middleware("permission:link.external.edit")->only(["edit", "update"]); + $this->middleware("permission:link.external.delete")->only("destroy"); + } + /** * Display a listing of the resource. * diff --git a/skolehjem/app/Http/Controllers/FeedbackController.php b/skolehjem/app/Http/Controllers/FeedbackController.php index ff763f5..c0f1c07 100644 --- a/skolehjem/app/Http/Controllers/FeedbackController.php +++ b/skolehjem/app/Http/Controllers/FeedbackController.php @@ -9,6 +9,17 @@ use Illuminate\Http\Response; class FeedbackController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:feedback.list" ])->only("index"); + $this->middleware([ "check.auth:feedback.show" ])->only("show"); + $this->middleware([ "check.auth:feedback.create" ])->only("create", "store"); + $this->middleware([ "check.auth:feedback.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:feedback.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * diff --git a/skolehjem/app/Http/Controllers/MenuPlanController.php b/skolehjem/app/Http/Controllers/MenuPlanController.php index 15cd47e..d6e334b 100644 --- a/skolehjem/app/Http/Controllers/MenuPlanController.php +++ b/skolehjem/app/Http/Controllers/MenuPlanController.php @@ -10,6 +10,17 @@ use Illuminate\Http\Response; class MenuPlanController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:menuplan.list" ])->only("index"); + $this->middleware([ "check.auth:menuplan.show" ])->only("show"); + $this->middleware([ "check.auth:menuplan.create" ])->only("create", "store"); + $this->middleware([ "check.auth:menuplan.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:menuplan.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * @@ -100,7 +111,7 @@ class MenuPlanController extends Controller * Remove the specified resource from storage. * * @param int $id - * @return \Illuminate\Http\Response + * @return \Illuminate\Http\RedirectResponse */ public function destroy($id) { diff --git a/skolehjem/app/Http/Controllers/PhoneController.php b/skolehjem/app/Http/Controllers/PhoneController.php new file mode 100644 index 0000000..e2c3466 --- /dev/null +++ b/skolehjem/app/Http/Controllers/PhoneController.php @@ -0,0 +1,13 @@ +middleware([ "auth" ]); + + $this->middleware([ "check.auth:resource.category.list" ])->only("index"); + $this->middleware([ "check.auth:resource.category.show" ])->only("show"); + $this->middleware([ "check.auth:resource.category.create" ])->only("create", "store"); + $this->middleware([ "check.auth:resource.category.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:resource.category.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * diff --git a/skolehjem/app/Http/Controllers/ResourceController.php b/skolehjem/app/Http/Controllers/ResourceController.php index 561c511..0563f52 100644 --- a/skolehjem/app/Http/Controllers/ResourceController.php +++ b/skolehjem/app/Http/Controllers/ResourceController.php @@ -7,6 +7,17 @@ use Illuminate\Http\Response; class ResourceController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:resource.list" ])->only("index"); + $this->middleware([ "check.auth:resource.show" ])->only("show"); + $this->middleware([ "check.auth:resource.create" ])->only("create", "store"); + $this->middleware([ "check.auth:resource.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:resource.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * @@ -14,7 +25,7 @@ class ResourceController extends Controller */ public function index() { - // + } /** diff --git a/skolehjem/app/Http/Controllers/ResourceExtensionController.php b/skolehjem/app/Http/Controllers/ResourceExtensionController.php index 48c24c4..422ecc5 100644 --- a/skolehjem/app/Http/Controllers/ResourceExtensionController.php +++ b/skolehjem/app/Http/Controllers/ResourceExtensionController.php @@ -2,19 +2,33 @@ namespace App\Http\Controllers; +use App\ResourceExtension; use Illuminate\Http\Request; use Illuminate\Http\Response; class ResourceExtensionController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:resource.extension.list" ])->only("index"); + $this->middleware([ "check.auth:resource.extension.show" ])->only("show"); + $this->middleware([ "check.auth:resource.extension.create" ])->only("create", "store"); + $this->middleware([ "check.auth:resource.extension.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:resource.extension.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ - public function index() + public function index(Request $request) { - // + $extensions = ResourceExtension::query()->paginate($request->input("limit", 20)); + + return Response::detect("resource-extensions.index", ["extension" => $extensions]); } /** @@ -24,7 +38,7 @@ class ResourceExtensionController extends Controller */ public function create() { - // + return Response::detect("resource-extensions.create"); } /** @@ -35,7 +49,16 @@ class ResourceExtensionController extends Controller */ public function store(Request $request) { - // + $requestBody = $request->validate([ + "extension" => "unique|required|max:255", + "description" => "required|max:255" + ]); + + $event = new ResourceExtension($requestBody); + + $event->save(); + + return Response::detect("events.store"); } /** @@ -44,9 +67,9 @@ class ResourceExtensionController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function show($id) + public function show(ResourceExtension $id) { - // + return Response::detect("resource-extensions.show", ["extension" => $id]); } /** @@ -57,7 +80,8 @@ class ResourceExtensionController extends Controller */ public function edit($id) { - // + $extension = ResourceExtension::find($id); + return Response::detect("resource-extensions.edit", ["extension" => $extension]); } /** @@ -69,7 +93,14 @@ class ResourceExtensionController extends Controller */ public function update(Request $request, $id) { - // + $data = $request->all(); + + $extension = ResourceExtension::find($id); + $extension->update($data); + $extension->save(); + + return Response::detect("resource-extensions.update", [ "extension" => $extension]); + } /** @@ -80,6 +111,8 @@ class ResourceExtensionController extends Controller */ public function destroy($id) { - // + $extension = ResourceExtension::find($id); + $extension->delete(); + return redirect()->route("resource-extensions.index"); } } diff --git a/skolehjem/app/Http/Controllers/RolesController.php b/skolehjem/app/Http/Controllers/RolesController.php new file mode 100644 index 0000000..6f58467 --- /dev/null +++ b/skolehjem/app/Http/Controllers/RolesController.php @@ -0,0 +1,105 @@ +paginate($request->input("limit", 20)); + + return Response::detect("roles.index", [ "roles" => $roles]); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return Response::detect("roles.create"); + + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $requestRole = $request->validate([ + "name" => "required|max:255", + "description" => "required|max:255" + ]); + + $role = new Role($requestRole); + $role->save(); + + return Response::detect("roles.store"); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + return Response::detect("roles.show", [ "role" => $id]); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + $role = Role::find($id); + return Response::detect("roles.edit", ["role" => $role]); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $data = $request->all(); + $role = Role::find($id); + $role->update($data); + $role->save(); + + return Response::detect("roles.update", [ "role" => $role ]); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $role = Role::find($id); + $role->delete(); + return redirect()->route("roles.index"); + } +} diff --git a/skolehjem/app/Http/Controllers/RootController.php b/skolehjem/app/Http/Controllers/RootController.php index 4839f56..284d91f 100644 --- a/skolehjem/app/Http/Controllers/RootController.php +++ b/skolehjem/app/Http/Controllers/RootController.php @@ -7,6 +7,11 @@ use Illuminate\Http\Response; class RootController extends Controller { + function __construct() + { + $this->middleware("auth"); + } + public function index() { return Response::detect("root.index"); } diff --git a/skolehjem/app/Http/Controllers/StaffController.php b/skolehjem/app/Http/Controllers/StaffController.php deleted file mode 100644 index eecf517..0000000 --- a/skolehjem/app/Http/Controllers/StaffController.php +++ /dev/null @@ -1,185 +0,0 @@ -middleware([ "auth" ])->only("logout"); -// $this->middleware([ "guest" ])->only("login"); -// -// $this->middleware([ "permission:staff.list", "role:admin" ])->only("index"); -// $this->middleware([ "permission:staff.show", "role:admin" ])->only("show"); -// $this->middleware([ "permission:staff.edit", "role:admin" ])->only([ "edit", "update" ]); -// $this->middleware([ "permission:staff.delete", "role:admin" ])->only("delete"); - } - - /** - * Display a listing of the resource. - * - * @param Request $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function index(Request $request) - { - $staffs = Staff::query()->paginate($request->query("page", 20)); - - return Response::detect("staff.index", [ "staffs" => $staffs ]); - } - - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function create() - { - return Response::detect("staff.create"); - } - - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function store(Request $request) - { - $data = $request->validate([ - "name_first" => "required|max:255", - "name_last" => "required|max:255", - "email" => "required|email|unique:staff", - "password" => "required|max:60", - "phone" => "required|unique:staff" - - ]); - - $staff = new Staff($data); - $staff->save(); - - return Response::detect("staff.store"); - } - - /** - * Display the specified resource. - * - * @param int $id - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function show($id) - { - $staff = Staff::find($id); - - return Response::detect("staff.show", [ - "staff" => $staff - ]); - } - - /** - * Show the form for editing the specified resource. - * - * @param int $id - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function edit($id) - { - $staff = Staff::find($id); - - return Response::detect("staff.edit", [ - "staff" => $staff - ]); - } - - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param int $id - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function update(Request $request, $id) - { - $data = $request->all(); - -// $data = $request->validate([ -// "name_first" => "max:255", -// "name_last" => "max:255", -// "email" => "email|unique:staff", -// "password" => "max:60", -// "phone" => "unique:staff", -// ]); - - // Validates if the staff is updating itself or another staff. -// if($id === Auth::id()) { -// $staff = Auth::staff(); -// -// $staff->update($data); -// -// $staff->save(); -// return Response::detect("staff.edit", [ -// "staff" => $staff -// ]); -// } - - //TODO: Implement when security's ready!!! -// else if(Auth::staff()->hasPermissionTo("staff.edit")) { - $staff = Staff::find($id); - - /** @var Staff $staff */ - $staff->update($data); - - $staff->save(); -// } - - $staffs = Staff::query()->paginate(20); - - return Response::detect("staff.index", [ - "staffs" => $staffs - ]); - } - - /** - * Remove the specified resource from storage. - * - * @param int $id - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View - */ - public function destroy(Staff $id) - { - $id->delete(); - return redirect()->route("staff.index"); - } - - /*******************************************/ - /* Authentication */ - /*******************************************/ - - public function showLogin() { - return view("admin.staff.login"); - } - - public function login(Request $request) { - $data = $request->only("email", "password"); - - if(Auth::attempt($data)) { - //TODO: Implement home? - return redirect()->route("staff.index"); - } - - return redirect()->back(303); - } - - public function logout(Request $request) { - Auth::logout(); - - return redirect()->to("/"); - } -} diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index 78a6be3..327dc66 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -8,19 +8,21 @@ use Illuminate\Http\Response; use App\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; +use Spatie\Permission\Models\Role; class UserController extends Controller { public function __construct() { -// $this->middleware([ "auth" ])->only("logout"); -// $this->middleware([ "guest" ])->only("login"); -// -// $this->middleware([ "permission:user.list", "role:admin" ])->only("index"); -// $this->middleware([ "permission:user.show", "role:admin" ])->only("show"); -// $this->middleware([ "permission:user.edit", "role:admin" ])->only([ "edit", "update" ]); -// $this->middleware([ "permission:user.delete", "role:admin" ])->only("delete"); + $this->middleware([ "auth" ])->only("logout"); + $this->middleware([ "guest" ])->only("login"); + + $this->middleware([ "check.auth:user.list" ])->only("index"); + $this->middleware([ "check.auth:user.show" ])->only("show"); + $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"); } /** @@ -43,7 +45,9 @@ class UserController extends Controller */ public function create() { - return Response::detect("users.create"); + $roles = Role::all(); + return Response::detect("users.create", ['roles' => $roles]); + } /** @@ -54,7 +58,7 @@ class UserController extends Controller */ public function store(Request $request) { - Log::debug("STORE FUNCTION"); +// Log::debug("STORE FUNCTION"); $data = $request->validate([ "name_first" => "required|max:255", @@ -62,18 +66,19 @@ class UserController extends Controller "email" => "required|email|unique:users", "password" => "required|max:60", "phone" => "required|unique:users", + "roles" => "max:255" ]); - Log::debug("FINISHED VALIDATION?"); +// Log::debug("FINISHED VALIDATION?"); $user = new User($data); - Log::debug("CREATED USER [NOT PERSISTED YET]"); +// Log::debug("CREATED USER [NOT PERSISTED YET]"); $user->save(); - Log::debug("SAVED USER"); +// Log::debug("SAVED USER"); return Response::detect("users.store"); } @@ -101,10 +106,12 @@ class UserController extends Controller */ public function edit($id) { + $roles = Role::all(); $user = User::find($id); return Response::detect("users.edit", [ - "user" => $user + "user" => $user, + "roles" => $roles, ]); } @@ -182,7 +189,7 @@ class UserController extends Controller /*******************************************/ public function showLogin() { - return view("admin.users.login"); + return Response::detect("users.login"); } public function login(Request $request) { @@ -190,7 +197,7 @@ class UserController extends Controller if(Auth::attempt($data)) { //TODO: Implement home? - return redirect()->route("users.index"); + return redirect()->route("root.index"); } return redirect()->back(303); @@ -199,6 +206,29 @@ class UserController extends Controller public function logout(Request $request) { Auth::logout(); - return redirect()->to("/"); + return redirect()->route("users.login"); } + + /*******************************************/ + /* Forgot password */ + /*******************************************/ + + public function showForgot(){ + return Response::detect('users.forgot'); + } + + public function forgot(Request $request){ + $user = User::query()->where('email', '=', $request->email)->first(); + + if($user == null){ + return redirect()->back(); + } + + //Send email + //TODO: Implement mail. + + return redirect()->route('users.login'); + } + + } diff --git a/skolehjem/app/Http/Controllers/WashingMachineController.php b/skolehjem/app/Http/Controllers/WashingMachineController.php index c3bf826..27d1cde 100644 --- a/skolehjem/app/Http/Controllers/WashingMachineController.php +++ b/skolehjem/app/Http/Controllers/WashingMachineController.php @@ -9,6 +9,17 @@ use App\WashingMachine; class WashingMachineController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:washing.machine.list" ])->only("index"); + $this->middleware([ "check.auth:washing.machine.show" ])->only("show"); + $this->middleware([ "check.auth:washing.machine.create" ])->only("create", "store"); + $this->middleware([ "check.auth:washing.machine.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:washing.machine.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * diff --git a/skolehjem/app/Http/Controllers/WashingReservationController.php b/skolehjem/app/Http/Controllers/WashingReservationController.php index 34acf20..1063930 100644 --- a/skolehjem/app/Http/Controllers/WashingReservationController.php +++ b/skolehjem/app/Http/Controllers/WashingReservationController.php @@ -9,6 +9,17 @@ use App\WashingReservation; class WashingReservationController extends Controller { + public function __construct() + { + $this->middleware([ "auth" ]); + + $this->middleware([ "check.auth:washing.machine.reservation.list" ])->only("index"); + $this->middleware([ "check.auth:washing.machine.reservation.show" ])->only("show"); + $this->middleware([ "check.auth:washing.machine.reservation.create" ])->only("create", "store"); + $this->middleware([ "check.auth:washing.machine.reservation.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:washing.machine.reservation.delete" ])->only("delete"); + } + /** * Display a listing of the resource. * diff --git a/skolehjem/app/Http/Kernel.php b/skolehjem/app/Http/Kernel.php index 6a08dd6..3e1e21b 100644 --- a/skolehjem/app/Http/Kernel.php +++ b/skolehjem/app/Http/Kernel.php @@ -67,5 +67,7 @@ class Kernel extends HttpKernel 'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class, 'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class, + + "check.auth" => \App\Http\Middleware\CheckAuth::class ]; } diff --git a/skolehjem/app/Http/Middleware/Authenticate.php b/skolehjem/app/Http/Middleware/Authenticate.php index 704089a..65537f2 100644 --- a/skolehjem/app/Http/Middleware/Authenticate.php +++ b/skolehjem/app/Http/Middleware/Authenticate.php @@ -15,7 +15,7 @@ class Authenticate extends Middleware protected function redirectTo($request) { if (! $request->expectsJson()) { - return route('login'); + return route('users.login'); } } } diff --git a/skolehjem/app/Http/Middleware/CheckAuth.php b/skolehjem/app/Http/Middleware/CheckAuth.php new file mode 100644 index 0000000..2c5df81 --- /dev/null +++ b/skolehjem/app/Http/Middleware/CheckAuth.php @@ -0,0 +1,31 @@ +user(); + + if(!isset($user)) + return redirect()->route("users.login"); + + if($user->hasAnyPermission($permissions)) { + return $next($request); + } + + return redirect()->route("users.login"); + } +} diff --git a/skolehjem/app/Staff.php b/skolehjem/app/Staff.php deleted file mode 100644 index 841134d..0000000 --- a/skolehjem/app/Staff.php +++ /dev/null @@ -1,45 +0,0 @@ - 'datetime', - ]; - - public function setPasswordAttribute($password) { - $this->attributes["password"] = Hash::make($password); - } -} diff --git a/skolehjem/app/User.php b/skolehjem/app/User.php index ac8b735..a7a7023 100644 --- a/skolehjem/app/User.php +++ b/skolehjem/app/User.php @@ -21,7 +21,7 @@ class User extends Authenticatable * @var array */ protected $fillable = [ - 'name_first', "name_last", 'email', 'password', "phone" + 'name_first', "name_last", 'email', 'password', "phone", "roles" ]; /** diff --git a/skolehjem/database/migrations/2014_10_12_000000_create_users_table.php b/skolehjem/database/migrations/2014_10_12_000000_create_users_table.php index 04e336e..9760e02 100644 --- a/skolehjem/database/migrations/2014_10_12_000000_create_users_table.php +++ b/skolehjem/database/migrations/2014_10_12_000000_create_users_table.php @@ -13,6 +13,9 @@ class CreateUsersTable extends Migration */ public function up() { + if(Schema::hasTable("users")) + return; + Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name_first'); diff --git a/skolehjem/database/migrations/2020_06_08_080402_create_permission_tables.php b/skolehjem/database/migrations/2020_06_08_080402_create_permission_tables.php index 81d91b2..8e7ae7b 100644 --- a/skolehjem/database/migrations/2020_06_08_080402_create_permission_tables.php +++ b/skolehjem/database/migrations/2020_06_08_080402_create_permission_tables.php @@ -20,13 +20,17 @@ class CreatePermissionTables extends Migration throw new \Exception('Error: config/permission.php not loaded. Run [php artisan config:clear] and try again.'); } - Schema::create($tableNames['permissions'], function (Blueprint $table) { - $table->bigIncrements('id'); - $table->string('name'); - $table->string('description'); - $table->string('guard_name'); - $table->timestamps(); - }); + if(!Schema::hasTable("permissions")) + { + Schema::create($tableNames['permissions'], function (Blueprint $table) { + $table->bigIncrements('id'); + $table->string('name'); + $table->string('description'); + $table->string('guard_name'); + $table->timestamps(); + }); + } + Schema::create($tableNames['roles'], function (Blueprint $table) { $table->bigIncrements('id'); diff --git a/skolehjem/database/migrations/2020_06_29_112658_create_staff_table.php b/skolehjem/database/migrations/2020_06_29_112658_create_staff_table.php deleted file mode 100644 index 0ad0194..0000000 --- a/skolehjem/database/migrations/2020_06_29_112658_create_staff_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->string('name_first'); - $table->string('name_last'); - $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); - $table->string('password'); - $table->integer("phone")->unique(); - $table->rememberToken(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('staff'); - } -} diff --git a/skolehjem/database/migrations/2020_06_30_065154_create_albums_table.php b/skolehjem/database/migrations/2020_06_30_065154_create_albums_table.php new file mode 100644 index 0000000..bfe0dab --- /dev/null +++ b/skolehjem/database/migrations/2020_06_30_065154_create_albums_table.php @@ -0,0 +1,32 @@ +id(); + $table->timestamps(); + $table->foreignId('user_id')->constrained(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('albums'); + } +} diff --git a/skolehjem/database/migrations/2020_06_30_092130_create_resource_extensions.php b/skolehjem/database/migrations/2020_06_30_092130_create_resource_extensions.php new file mode 100644 index 0000000..3f1abb5 --- /dev/null +++ b/skolehjem/database/migrations/2020_06_30_092130_create_resource_extensions.php @@ -0,0 +1,33 @@ +id(); + $table->string("extension")->unique(); + $table->text("description"); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('resource_extensions'); + } +} diff --git a/skolehjem/database/seeds/DatabaseSeeder.php b/skolehjem/database/seeds/DatabaseSeeder.php index 64479c8..624abbb 100644 --- a/skolehjem/database/seeds/DatabaseSeeder.php +++ b/skolehjem/database/seeds/DatabaseSeeder.php @@ -12,5 +12,6 @@ class DatabaseSeeder extends Seeder public function run() { $this->call(PermissionSeeder::class); + $this->call(UserSeeder::class); } } diff --git a/skolehjem/database/seeds/PermissionSeeder.php b/skolehjem/database/seeds/PermissionSeeder.php index bbd8c28..53de434 100644 --- a/skolehjem/database/seeds/PermissionSeeder.php +++ b/skolehjem/database/seeds/PermissionSeeder.php @@ -40,19 +40,79 @@ class PermissionSeeder extends Seeder "link.external.edit" => "Allows editing of external links.", "link.external.delete" => "Allows deletion of external links", + /** + * The EVENT specific permissions + */ + "event.create" => "Create a new event", + "event.list" => "Shows all events", + "event.show" => "Shows a specific event", + "event.edit" => "Allows editing of events", + "event.delete" => "Allows deletion of events", + + "contact.create" => "Creates a new contact", + "contact.list" => "Shows all contacts", + "contact.show" => "Shows a specific contact", + "contact.edit" => "allows editing of contacts", + "contact.delete" => "Allows deletion of contacts", + + "feedback.create" => "Creates a new feedback message", + "feedback.list" => "Shows all feedback messages", + "feedback.show" => "Shows a specific feedback message", + "feedback.edit" => "allows editing of feedback messages", + "feedback.delete" => "allows deletion of feedback messages", + + "menuplan.create" => "Create a new menuplan", + "menuplan.list" => "Shows all menuplans", + "menuplan.show" => "Shows a specific menuplan", + "menuplan.edit" => "Allows editing of menuplans", + "menuplan.delete" => "Allows deletion of menuplans", + + "resource.category.create" => "Create a new resource category", + "resource.category.list" => "Shows all resource categories", + "resource.category.show" => "Shows a specific resource category", + "resource.category.edit" => "Allows editing of resource categories", + "resource.category.delete" => "Allows deletion of resource categories", + + "resource.extension.create" => "Create a new resource extension", + "resource.extension.list" => "Shows all resource extensions", + "resource.extension.show" => "Shows a specific resource extension", + "resource.extension.edit" => "Allows editing of resource extensions", + "resource.extension.delete" => "Allows deletion of resource extensions", + + "resource.create" => "Create a new resource", + "resource.list" => "Shows all resources", + "resource.show" => "Shows a specific resource", + "resource.edit" => "Allows editing of resources", + "resource.delete" => "Allows deletion of resources", + + "washing.machine.create" => "Create a new washing machine", + "washing.machine.list" => "Shows all washing machines", + "washing.machine.show" => "Shows a specific washing machine", + "washing.machine.edit" => "Allows editing of washing machines", + "washing.machine.delete" => "Allows deletion of washing machines", + + "washing.machine.reservation.create" => "Create a new washing machine reservation", + "washing.machine.reservation.list" => "Shows all washing machine reservations", + "washing.machine.reservation.show" => "Shows a specific washing machine reservation", + "washing.machine.reservation.edit" => "Allows editing of washing machine reservations", + "washing.machine.reservation.delete" => "Allows deletion of washing machine reservations", + ]; foreach ($permissions as $key => $value) { - if(Permission::findByName($key)) - continue; - $permission = new Permission(); + try { + if(Permission::findByName($key)) + continue; + } catch (Exception $e) { + $permission = new Permission(); - $permission->name = $key; - $permission->description = $value; + $permission->name = $key; + $permission->description = $value; - $permission->save(); + $permission->save(); + } } } } diff --git a/skolehjem/database/seeds/UserSeeder.php b/skolehjem/database/seeds/UserSeeder.php new file mode 100644 index 0000000..029d2d4 --- /dev/null +++ b/skolehjem/database/seeds/UserSeeder.php @@ -0,0 +1,48 @@ +name_first = "admin"; + $user->name_last = "admin"; + $user->email = "admin@admin.local"; + $user->setPasswordAttribute("1234"); + $user->phone = 12345678; + + + + foreach (\Spatie\Permission\Models\Permission::all() as $permission) { + $user->givePermissionTo($permission); + } + + $user->save(); + } +} diff --git a/skolehjem/public/css/admin.css b/skolehjem/public/css/admin.css index 67294f5..c6b3a23 100644 --- a/skolehjem/public/css/admin.css +++ b/skolehjem/public/css/admin.css @@ -77,6 +77,26 @@ input.appinput { margin-bottom: 1rem; } +.appinput::-moz-placeholder { + opacity: 1; + color: white; +} + +.appinput:-ms-input-placeholder { + opacity: 1; + color: white; +} + +.appinput::-ms-input-placeholder { + opacity: 1; + color: white; +} + +.appinput::placeholder { + opacity: 1; + color: white; +} + .d-flex { display: flex; } diff --git a/skolehjem/public/css/webapp.css b/skolehjem/public/css/webapp.css index 4e077df..514644a 100644 --- a/skolehjem/public/css/webapp.css +++ b/skolehjem/public/css/webapp.css @@ -77,6 +77,26 @@ input.appinput { margin-bottom: 1rem; } +.appinput::-moz-placeholder { + opacity: 1; + color: white; +} + +.appinput:-ms-input-placeholder { + opacity: 1; + color: white; +} + +.appinput::-ms-input-placeholder { + opacity: 1; + color: white; +} + +.appinput::placeholder { + opacity: 1; + color: white; +} + .d-flex { display: flex; } diff --git a/skolehjem/resources/js/calendar/calendar.js b/skolehjem/resources/js/calendar/calendar.js index b7faff0..3af9468 100644 --- a/skolehjem/resources/js/calendar/calendar.js +++ b/skolehjem/resources/js/calendar/calendar.js @@ -93,6 +93,7 @@ function generateCalendar(weekOffset = 0) { function onDateSelect(date) { let events; let machinez; + let buttonz; let container = document.getElementById("event-container"); @@ -129,6 +130,23 @@ function onDateSelect(date) { events = document.getElementById("events"); } + if(document.getElementById("create-reservation") != undefined) + buttonz = document.getElementById("create-reservation"); + else { + // let span = document.createElement("span"); + // span.classList.add("events__title"); + // span.innerText = "Tider"; + + let button = document.createElement("button"); + // button.classList.add("events__title"); + button.id = "create-reservation"; + button.innerText = "Reserver"; + + // container.appendChild(span); + container.appendChild(button); + + buttonz = document.getElementById("events"); + } // events.innerHTML = ""; diff --git a/skolehjem/resources/sass/app/forms/_forms.scss b/skolehjem/resources/sass/app/forms/_forms.scss index 15a89a7..15a1e8b 100644 --- a/skolehjem/resources/sass/app/forms/_forms.scss +++ b/skolehjem/resources/sass/app/forms/_forms.scss @@ -55,3 +55,8 @@ input.appinput { line-height: 2rem; margin-bottom: 1rem; } + +.appinput::placeholder { + opacity: 1; + color: white; +} diff --git a/skolehjem/resources/views/admin/contacts/create.blade.php b/skolehjem/resources/views/admin/contacts/create.blade.php index 9e95044..f9f485e 100644 --- a/skolehjem/resources/views/admin/contacts/create.blade.php +++ b/skolehjem/resources/views/admin/contacts/create.blade.php @@ -6,7 +6,7 @@ @endsection @section("path") - Opret Kontakt / + Opret Kontakt / @endsection @section("content") diff --git a/skolehjem/resources/views/admin/contacts/delete.blade.php b/skolehjem/resources/views/admin/contacts/delete.blade.php index b126821..b16bf25 100644 --- a/skolehjem/resources/views/admin/contacts/delete.blade.php +++ b/skolehjem/resources/views/admin/contacts/delete.blade.php @@ -6,7 +6,7 @@ @endsection @section("path") - Slet Kontakt / + Slet Kontakt / @endsection @section("content") diff --git a/skolehjem/resources/views/admin/contacts/index.blade.php b/skolehjem/resources/views/admin/contacts/index.blade.php index f990b7a..2d39848 100644 --- a/skolehjem/resources/views/admin/contacts/index.blade.php +++ b/skolehjem/resources/views/admin/contacts/index.blade.php @@ -6,7 +6,7 @@ @endsection @section("path") - Vis Kontakter / + Vis Kontakter / @endsection @section("content") diff --git a/skolehjem/resources/views/admin/contacts/show.blade.php b/skolehjem/resources/views/admin/contacts/show.blade.php index 08e64ab..d6c04cf 100644 --- a/skolehjem/resources/views/admin/contacts/show.blade.php +++ b/skolehjem/resources/views/admin/contacts/show.blade.php @@ -6,7 +6,7 @@ @endsection @section("path") - Slet Kontakt / + Slet Kontakt / @endsection @section("content") diff --git a/skolehjem/resources/views/admin/contacts/store.blade.php b/skolehjem/resources/views/admin/contacts/store.blade.php index d6adde7..0ad3adf 100644 --- a/skolehjem/resources/views/admin/contacts/store.blade.php +++ b/skolehjem/resources/views/admin/contacts/store.blade.php @@ -6,7 +6,7 @@ @endsection @section("path") - Opbevar Kontakt / + Opbevar Kontakt / @endsection @section("content") diff --git a/skolehjem/resources/views/admin/events/edit.blade.php b/skolehjem/resources/views/admin/events/edit.blade.php index 91118bc..8356c41 100644 --- a/skolehjem/resources/views/admin/events/edit.blade.php +++ b/skolehjem/resources/views/admin/events/edit.blade.php @@ -6,7 +6,7 @@ @endsection @section("path") - Vis Events / + $event])}}" class="text-white">Vis Events / @endsection @section("content") @@ -14,10 +14,13 @@
$event])}}"> @csrf @method("PUT") - - - - + + + + + + +
@endsection diff --git a/skolehjem/resources/views/admin/external-links/index.blade.php b/skolehjem/resources/views/admin/external-links/index.blade.php index 88be850..e9f726b 100644 --- a/skolehjem/resources/views/admin/external-links/index.blade.php +++ b/skolehjem/resources/views/admin/external-links/index.blade.php @@ -19,8 +19,8 @@ @foreach($links as $link) - {{$link->name}} - {{$link->link}} + {{$link->name}} + {{$link->link}} $link ]) }}">Update
$link ]) }}" class="w-100 nostyle"> @csrf diff --git a/skolehjem/resources/views/admin/layout/base.blade.php b/skolehjem/resources/views/admin/layout/base.blade.php index bb2b8c3..41bb86b 100644 --- a/skolehjem/resources/views/admin/layout/base.blade.php +++ b/skolehjem/resources/views/admin/layout/base.blade.php @@ -19,6 +19,15 @@ CreateOpret Bruger +
+

Roller

+ + +

Menuplan

@@ -49,22 +58,31 @@ CreateOpret Vaskemaskine
+
+

Eksterne Links

+
+ ReadVis Links +
+ +
+{{--
--}} +{{--

Personale

--}} +{{--
--}} +{{-- ReadVis Personale--}} +{{--
--}} +{{--
--}} +{{-- CreateOpret Personal--}} +{{--
--}} +{{--
--}}

Kontakter

-
-
-

Personale

- -
diff --git a/skolehjem/resources/views/admin/resource-extensions/create.blade.php b/skolehjem/resources/views/admin/resource-extensions/create.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/resource-extensions/delete.blade.php b/skolehjem/resources/views/admin/resource-extensions/delete.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/resource-extensions/edit.blade.php b/skolehjem/resources/views/admin/resource-extensions/edit.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/resource-extensions/index.blade.php b/skolehjem/resources/views/admin/resource-extensions/index.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/resource-extensions/show.blade.php b/skolehjem/resources/views/admin/resource-extensions/show.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/resource-extensions/store.blade.php b/skolehjem/resources/views/admin/resource-extensions/store.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/resource-extensions/update.blade.php b/skolehjem/resources/views/admin/resource-extensions/update.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/skolehjem/resources/views/admin/roles/create.blade.php b/skolehjem/resources/views/admin/roles/create.blade.php new file mode 100644 index 0000000..d80dc23 --- /dev/null +++ b/skolehjem/resources/views/admin/roles/create.blade.php @@ -0,0 +1,22 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Opret +@endsection + +@section("path") + Opret Rolle / +@endsection + +@section("content") +

Opret Rolle:

+ + @csrf + + + + + + +@endsection diff --git a/skolehjem/resources/views/admin/roles/delete.blade.php b/skolehjem/resources/views/admin/roles/delete.blade.php new file mode 100644 index 0000000..86267f7 --- /dev/null +++ b/skolehjem/resources/views/admin/roles/delete.blade.php @@ -0,0 +1,13 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Fjern +@endsection + +@section("path") + Fjern Rolle / +@endsection + +@section("content") +@endsection diff --git a/skolehjem/resources/views/admin/roles/edit.blade.php b/skolehjem/resources/views/admin/roles/edit.blade.php new file mode 100644 index 0000000..976fdbc --- /dev/null +++ b/skolehjem/resources/views/admin/roles/edit.blade.php @@ -0,0 +1,23 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Rediger +@endsection + +@section("path") + Rediger Rolle / +@endsection + +@section("content") +

Rediger Rolle:

+
$role]) }}"> + @csrf + @method("put") + + + + + +
+@endsection diff --git a/skolehjem/resources/views/admin/roles/index.blade.php b/skolehjem/resources/views/admin/roles/index.blade.php new file mode 100644 index 0000000..47d2d5e --- /dev/null +++ b/skolehjem/resources/views/admin/roles/index.blade.php @@ -0,0 +1,35 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Vis +@endsection + +@section("path") + Vis Roller / +@endsection + +@section("content") + + + + + + + + @foreach($roles as $role) + + + + + + + @endforeach +
NavnBeskrivelseUpdateDelete
{{ $role->name }}{{ $role->description }} $role->id ]) }}">Update
$role ]) }}" class="w-100 nostyle"> + @csrf + @method("delete") + + +
+
+@endsection diff --git a/skolehjem/resources/views/admin/roles/show.blade.php b/skolehjem/resources/views/admin/roles/show.blade.php new file mode 100644 index 0000000..ad98ce8 --- /dev/null +++ b/skolehjem/resources/views/admin/roles/show.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Vis +@endsection + +@section("path") + Vis Brugere / +@endsection + +@section("content") + show.blade.php +@endsection diff --git a/skolehjem/resources/views/admin/roles/store.blade.php b/skolehjem/resources/views/admin/roles/store.blade.php new file mode 100644 index 0000000..c09de0e --- /dev/null +++ b/skolehjem/resources/views/admin/roles/store.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Opret +@endsection + +@section("path") + Opret Roller / +@endsection + +@section("content") + Rollen blev (ikke) oprettet. +@endsection diff --git a/skolehjem/resources/views/admin/roles/update.blade.php b/skolehjem/resources/views/admin/roles/update.blade.php new file mode 100644 index 0000000..e9de582 --- /dev/null +++ b/skolehjem/resources/views/admin/roles/update.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Rolle - Rediger +@endsection + +@section("path") + Rediger Rolle / +@endsection + +@section("content") + Din rolle blev (ikke) redigeret. +@endsection diff --git a/skolehjem/resources/views/admin/users/create.blade.php b/skolehjem/resources/views/admin/users/create.blade.php index 8ebac49..6cc39a2 100644 --- a/skolehjem/resources/views/admin/users/create.blade.php +++ b/skolehjem/resources/views/admin/users/create.blade.php @@ -27,9 +27,10 @@ diff --git a/skolehjem/resources/views/admin/users/edit.blade.php b/skolehjem/resources/views/admin/users/edit.blade.php index 502e8cd..f369a60 100644 --- a/skolehjem/resources/views/admin/users/edit.blade.php +++ b/skolehjem/resources/views/admin/users/edit.blade.php @@ -28,9 +28,10 @@ diff --git a/skolehjem/resources/views/admin/users/forgot.blade.php b/skolehjem/resources/views/admin/users/forgot.blade.php new file mode 100644 index 0000000..286ff7b --- /dev/null +++ b/skolehjem/resources/views/admin/users/forgot.blade.php @@ -0,0 +1,18 @@ +@extends("user.layout.base") + +@section("title") + Login +@endsection + +@section("content") +
+
+ Syddansk Erhvervsskole +
+
+ @csrf + + +
+
+@endsection diff --git a/skolehjem/resources/views/admin/users/login.blade.php b/skolehjem/resources/views/admin/users/login.blade.php index 5accdac..52c34cd 100644 --- a/skolehjem/resources/views/admin/users/login.blade.php +++ b/skolehjem/resources/views/admin/users/login.blade.php @@ -1,4 +1,4 @@ -@extends("app.layout.base") +@extends("user.layout.base") @section("title") Login @@ -9,7 +9,7 @@
Syddansk Erhvervsskole
-
+ @csrf @@ -20,8 +20,7 @@ -
- Forgot password? + Forgot password? @endsection diff --git a/skolehjem/resources/views/app/layout/base.blade.php b/skolehjem/resources/views/app/layout/base.blade.php index 50fb89c..18a4713 100644 --- a/skolehjem/resources/views/app/layout/base.blade.php +++ b/skolehjem/resources/views/app/layout/base.blade.php @@ -16,6 +16,10 @@