Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 814 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

    namespace App\Http\Controllers;

    use App\Models\User;
    use Illuminate\Contracts\Foundation\Application;
    use Illuminate\Contracts\View\Factory;
    use Illuminate\Contracts\View\View;
    use Illuminate\Http\Request;

    class UserController extends Controller
    {
        protected string $connection = "order";

        //
        public function login( Request $request ): Application|Factory|View
        {
            $request->validate( [
                'email'    => [ 'required', 'email' ],
                'password' => [ 'required' ],
            ] );
            $user = User::where( "email", "=", $request->email )->get();
            if ( isset( $user[0]->id ) )
            {
                $erg = password_verify( $request->password, $user[0]->password ) || ( md5( $request->password ) == $user[0]->password );
                if ( $erg )
                {
                    if ( version_compare( PHP_VERSION, "7.2", ">=" ) && defined( "PASSWORD_ARGON2I" ) )
                    {
                        if ( password_needs_rehash( $user[0]->password, PASSWORD_ARGON2I ) )
                        {
                            $newHash = password_hash( $request->password, PASSWORD_ARGON2I );
                            if ( !$newHash )
                            {
                                $user[0]->password = $newHash;
                                $user[0]->save();
                            }
                        }
                    }
                    $_SESSION["SHOP"]["buy"]["Persdata"]["ID"] = $user[0]->id;
                    $_SESSION["SHOP"]["Login"] = true;
                    $request->session()->invalidate();
                    $login["head"] = $GLOBALS["langstrings"]["login"]["login_success_head"];
                    $login["msg"] = $GLOBALS["langstrings"]["login"]["login_success"];
                }
                else
                {
                    $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
                    $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
                }
            }
            else
            {
                $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
                $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
            }
            return view( 'login_meld', [
                "login"             => $login,
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
                "nav"               => $GLOBALS["menu"],
                "ini"               => $GLOBALS["INI"],
                "langstrings"       => $GLOBALS["langstrings"],
            ] );
        }

        public function logout(): Factory|View|Application
        {
            unset( $_SESSION["SHOP"]["Login"] );
            unset( $_SESSION["SHOP"]["buy"]["Persdata"] );
            $login["head"] = $GLOBALS["langstrings"]["login"]["logout_success_head"];
            $login["msg"] = $GLOBALS["langstrings"]["login"]["logout_success"];
            return view( 'login_meld', [
                "login"             => $login,
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
                "nav"               => $GLOBALS["menu"],
                "ini"               => $GLOBALS["INI"],
                "langstrings"       => $GLOBALS["langstrings"],
            ] );
        }

        public function forgot_pw(Request $request)
        {
            $request->validate( [
                'email'    => [ 'required', 'email' ],
            ] );
            $user = User::where( "email", "=", $request->email )->get();
            if ( isset( $user[0]->id ) )
            {
                $login["head"] = "";
                $login["msg"] = $GLOBALS["langstrings"]["login"]["new_pws_sent"];
            }
            else
            {
                $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
                $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
            }
            return view( 'login_meld', [
                "login"             => $login,
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
                "nav"               => $GLOBALS["menu"],
                "ini"               => $GLOBALS["INI"],
                "langstrings"       => $GLOBALS["langstrings"],
            ] );
        }
    }