diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index 7d76618..ba8e475 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -68,17 +68,18 @@ class UserController extends Controller "email" => "required|email|unique:users", "password" => "required|max:60", "phone" => "required|unique:users", - "roles" => "max:255" ]); // Log::debug("FINISHED VALIDATION?"); + $rolez = $request->input("roles", [ "User" ]); + $user = new User($data); // Log::debug("CREATED USER [NOT PERSISTED YET]"); - $user->assignRole([ "R1", "R2" ]); + $user->assignRole($rolez); $user->save(); // Log::debug("SAVED USER"); @@ -166,16 +167,16 @@ class UserController extends Controller //$user->save(); } else { // Else if you're not on the admin site (user site) if ($request->input('password') != null) { // If you're editing the password - if ($request->input('password') != $request->input('confirmpassword')) { // If new password and new password confirm is not the same, go back. - return Response::detect("users.editpass"); - } elseif (!Hash::check($request->input('oldpassword'), $user->password)) { // If the written current password and current password in DB is not the same, go back. - return Response::detect("users.editpass"); + if ($request->input('password') != $request->input('confirmpassword')) { // If new password and new password confirm is not the same, go back with fail message. + return redirect()->route("users.accounteditpass")->with('error#notsamepass', '<p class="text-center">Der stod ikke det samme i `Nyt Password` & `Bekræft Nyt Password`!</p>'); + } 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. + return redirect()->route("users.accounteditpass")->with('error#oldpass', '<p class="text-center">Det indtastede password i `Nuværende Password` er ikke dit nuværende password!</p>'); } 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); Auth::logout(); - return redirect()->route("users.login"); + return redirect()->route("users.login")->with('success#passwordchange', '<p class="text-center">Dit password er hermed ændret!</p>'); } } else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user. $user->update($data); diff --git a/skolehjem/app/Http/Controllers/UserEventController.php b/skolehjem/app/Http/Controllers/UserEventController.php new file mode 100644 index 0000000..001e730 --- /dev/null +++ b/skolehjem/app/Http/Controllers/UserEventController.php @@ -0,0 +1,41 @@ +<?php + +namespace App\Http\Controllers; + +use App\UserEvent; +use Illuminate\Http\Request; +use Illuminate\Http\Response; + +class UserEventController extends Controller +{ + + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function create(Request $request) + { + // Get written data from events.index + $data = $request->validate([ + "user_id" => "required|max:255", + "event_id" => "required|max:255" + ]); + + // Check the UserEvent table if there is a row that has the user_id AND the event_id + $getTableInfo = UserEvent::where('user_id', $request->user_id) + ->where('event_id', $request->event_id)->get(); + + // If the row has both, then go back and show an error - Cause you're not allowed to be on the same event twice. + if (count($getTableInfo) > 0) + return redirect()->route("events.index")->with('error#' . $request->event_id, '<p class="text-center">Du har allerede tilmeldt dig denne Aktivitet!</p>'); + + // If not, then it keeps going and saves and shows a success message + $UserEvent = new UserEvent($data); + $UserEvent->save(); + + return redirect()->route("events.index")->with('signup#' . $request->event_id, '<p class="text-center">Du er hermed tilmeldt denne aktivitet!</p>'); + } +} diff --git a/skolehjem/app/UserEvent.php b/skolehjem/app/UserEvent.php index 3899fd5..a947d8f 100644 --- a/skolehjem/app/UserEvent.php +++ b/skolehjem/app/UserEvent.php @@ -6,5 +6,13 @@ use Illuminate\Database\Eloquent\Model; class UserEvent extends Model { - // + /** + * The attributes that are mass assignable. + * + * @var array + */ + //protected variable which contains name of database field(s) to be filled. + protected $fillable = [ + 'user_id', 'event_id' + ]; } diff --git a/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php b/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php index e129f3c..39bef20 100644 --- a/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php +++ b/skolehjem/database/migrations/2020_07_28_061420_create_user_events_table.php @@ -15,8 +15,8 @@ class CreateUserEventsTable extends Migration { Schema::create('user_events', function (Blueprint $table) { $table->id(); - $table->integer("user_id")->unique(); - $table->integer("event_id")->unique(); + $table->integer("user_id"); + $table->integer("event_id"); $table->timestamps(); diff --git a/skolehjem/database/seeds/RoleSeeder.php b/skolehjem/database/seeds/RoleSeeder.php new file mode 100644 index 0000000..b734ecb --- /dev/null +++ b/skolehjem/database/seeds/RoleSeeder.php @@ -0,0 +1,36 @@ +<?php + +use Illuminate\Database\Seeder; + +class RoleSeeder extends Seeder +{ + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + $roles = [ + "administrator" => "Admin", + "user" => "Userstuff", + + + ]; + + foreach ($roles as $key => $value) { + + try { + if (\Spatie\Permission\Models\Role::findByName($key)) + continue; + } catch (Exception $e) { + $permission = new \Spatie\Permission\Models\Role(); + + $permission->name = $key; + $permission->description = $value; + + $permission->save(); + } + } + } +} diff --git a/skolehjem/resources/views/admin/layout/base.blade.php b/skolehjem/resources/views/admin/layout/base.blade.php index 9ba4838..a65f55d 100644 --- a/skolehjem/resources/views/admin/layout/base.blade.php +++ b/skolehjem/resources/views/admin/layout/base.blade.php @@ -32,9 +32,6 @@ <div class="segment"> <h3 class="text-white"><a href="{{ route("external-links.index") }}" class="text-white">Eksterne Links</a></h3> </div> -{{-- <div class="segment">--}} -{{-- <h3 class="text-white"><a href="{{ route('staff.index') }}" class="text-white">Personale</a></h3>--}} -{{-- </div>--}} <div class="segment"> <h3 class="text-white"><a href="{{ route("contacts.index") }}" class="text-white">Kontakter</a></h3> </div> diff --git a/skolehjem/resources/views/app/events/index.blade.php b/skolehjem/resources/views/app/events/index.blade.php index 5d1fb45..427a7ab 100644 --- a/skolehjem/resources/views/app/events/index.blade.php +++ b/skolehjem/resources/views/app/events/index.blade.php @@ -9,10 +9,16 @@ <h1 class="text-center sde-blue mb-0">Aktiviteter</h1> @if(!$events->isEmpty()) @foreach($events as $event) + <form method="get" action="{{ route("userevents.create") }}"> <h3 class="sde-blue bold text-center mb-0">{{$event->name}}</h3> <p class="text-center mt-0">{{$event->date}}</p> <p class="text-center">{{$event->description}}</p> - <a class="btn text-center btn-sde-blue" id="tilmeld">Tilmeld</a> + <input type="hidden" name="user_id" value="{{ Auth::user()->id }}"> + <input type="hidden" name="event_id" value="{{ $event->id }}"> + {!! session()->get('error#' . $event->id) !!} + {!! session()->get('signup#' . $event->id) !!} + <button type="submit" class="btn text-center btn-sde-blue" id="tilmeld">Tilmeld</button> + </form> @endforeach @else <p class="text-center">Der er ingen aktiviteter!</p> diff --git a/skolehjem/resources/views/app/layout/base.blade.php b/skolehjem/resources/views/app/layout/base.blade.php index ed3c8fa..e2c9a11 100644 --- a/skolehjem/resources/views/app/layout/base.blade.php +++ b/skolehjem/resources/views/app/layout/base.blade.php @@ -3,15 +3,12 @@ <head> <title>@yield("title")</title> <meta name="viewport" content="width=device-width, initial-scale=1"> -{{-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">--}} <link type="text/css" rel="stylesheet" href="{{ mix("/css/webapp.css") }}"> </head> <body> -{{-- @yield("header")--}} <header class="row align-items-center"> <img class="w-50" id="sdeLogo" src="{{URL::asset('/images/logos/Logo-normal.svg')}}" alt="Syddansk Erhvervsskole"> <button class="ml-auto" id="toggle"> -{{-- <img src="{{URL::asset('/images/icons/icon.svg')}}" id="menuIcon" alt="-">--}} <i id="icon" class="fas fa-bars"></i> </button> </header> diff --git a/skolehjem/resources/views/app/users/editpass.blade.php b/skolehjem/resources/views/app/users/editpass.blade.php index e04e51c..4453086 100644 --- a/skolehjem/resources/views/app/users/editpass.blade.php +++ b/skolehjem/resources/views/app/users/editpass.blade.php @@ -16,6 +16,8 @@ <input type="password" name="password" id="new" required> <span>Bekræft Nyt Password:</span> <input type="password" name="confirmpassword" id="confirm" required> + {!! session()->get('error#notsamepass') !!} + {!! session()->get('error#oldpass') !!} <button type="submit" class="btn text-center btn-sde-blue mt-1">Rediger</button> </form> </main> diff --git a/skolehjem/resources/views/app/users/login.blade.php b/skolehjem/resources/views/app/users/login.blade.php index 52c34cd..e13dc07 100644 --- a/skolehjem/resources/views/app/users/login.blade.php +++ b/skolehjem/resources/views/app/users/login.blade.php @@ -19,6 +19,7 @@ <span class="toggle__text text-white">Remember password</span> </span> </label> + {!! session()->get('success#passwordchange') !!} <input class="btn btn-dark" type="submit" value="Sign in"> </form> <a class="text-white text-center" href="{{ route('users.show-forgot') }}">Forgot password?</a> diff --git a/skolehjem/routes/web.php b/skolehjem/routes/web.php index 00e6079..0a33e89 100644 --- a/skolehjem/routes/web.php +++ b/skolehjem/routes/web.php @@ -42,8 +42,8 @@ Route::get("/userapi", "UserController@search")->name("users.search"); Route::resource("contacts", "ContactController"); Route::resource("menu-plans", "MenuPlanController"); Route::resource("users", "UserController"); -//Route::resource("staff", "StaffController"); Route::resource("events", "EventController"); +Route::resource("userevents", "UserEventController"); Route::resource("washing-machines", "WashingMachineController"); Route::resource("washing-reservations", "WashingReservationController"); Route::resource("feedbacks", "FeedbackController");