Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 815 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
108 lars 1
<?php
2
 
765 lars 3
    namespace App\Http\Controllers;
108 lars 4
 
798 lars 5
    use App\Models\User;
797 lars 6
    use Illuminate\Contracts\Foundation\Application;
7
    use Illuminate\Contracts\View\Factory;
798 lars 8
    use Illuminate\Contracts\View\View;
799 lars 9
    use Illuminate\Http\Request;
108 lars 10
 
765 lars 11
    class UserController extends Controller
12
    {
797 lars 13
        protected string $connection = "order";
14
 
765 lars 15
        //
798 lars 16
        public function login( Request $request ): Application|Factory|View
765 lars 17
        {
813 lars 18
            $request->validate( [
797 lars 19
                'email'    => [ 'required', 'email' ],
20
                'password' => [ 'required' ],
21
            ] );
803 lars 22
            $user = User::where( "email", "=", $request->email )->get();
806 lars 23
            if ( isset( $user[0]->id ) )
797 lars 24
            {
813 lars 25
                $erg = password_verify( $request->password, $user[0]->password ) || ( md5( $request->password ) == $user[0]->password );
800 lars 26
                if ( $erg )
27
                {
804 lars 28
                    if ( version_compare( PHP_VERSION, "7.2", ">=" ) && defined( "PASSWORD_ARGON2I" ) )
29
                    {
30
                        if ( password_needs_rehash( $user[0]->password, PASSWORD_ARGON2I ) )
31
                        {
32
                            $newHash = password_hash( $request->password, PASSWORD_ARGON2I );
813 lars 33
                            if ( !$newHash )
804 lars 34
                            {
35
                                $user[0]->password = $newHash;
36
                                $user[0]->save();
37
                            }
38
                        }
39
                    }
40
                    $_SESSION["SHOP"]["buy"]["Persdata"]["ID"] = $user[0]->id;
807 lars 41
                    $_SESSION["SHOP"]["Login"] = true;
804 lars 42
                    $request->session()->invalidate();
800 lars 43
                    $login["head"] = $GLOBALS["langstrings"]["login"]["login_success_head"];
44
                    $login["msg"] = $GLOBALS["langstrings"]["login"]["login_success"];
45
                }
46
                else
47
                {
48
                    $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
49
                    $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
50
                }
765 lars 51
            }
798 lars 52
            else
53
            {
54
                $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
55
                $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
56
            }
57
            return view( 'login_meld', [
58
                "login"             => $login,
770 lars 59
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
60
                "nav"               => $GLOBALS["menu"],
61
                "ini"               => $GLOBALS["INI"],
62
                "langstrings"       => $GLOBALS["langstrings"],
798 lars 63
            ] );
765 lars 64
        }
808 lars 65
 
813 lars 66
        public function logout(): Factory|View|Application
808 lars 67
        {
68
            unset( $_SESSION["SHOP"]["Login"] );
69
            unset( $_SESSION["SHOP"]["buy"]["Persdata"] );
812 lars 70
            $login["head"] = $GLOBALS["langstrings"]["login"]["logout_success_head"];
71
            $login["msg"] = $GLOBALS["langstrings"]["login"]["logout_success"];
72
            return view( 'login_meld', [
73
                "login"             => $login,
74
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
75
                "nav"               => $GLOBALS["menu"],
76
                "ini"               => $GLOBALS["INI"],
77
                "langstrings"       => $GLOBALS["langstrings"],
78
            ] );
808 lars 79
        }
814 lars 80
 
81
        public function forgot_pw(Request $request)
82
        {
83
            $request->validate( [
84
                'email'    => [ 'required', 'email' ],
85
            ] );
86
            $user = User::where( "email", "=", $request->email )->get();
87
            if ( isset( $user[0]->id ) )
88
            {
815 lars 89
                $login["head"] = "";
816 lars 90
                $login["msg"] = $GLOBALS["langstrings"]["login"]["new_pw_sent"];
814 lars 91
            }
92
            else
93
            {
94
                $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
95
                $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
96
            }
97
            return view( 'login_meld', [
98
                "login"             => $login,
99
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
100
                "nav"               => $GLOBALS["menu"],
101
                "ini"               => $GLOBALS["INI"],
102
                "langstrings"       => $GLOBALS["langstrings"],
103
            ] );
104
        }
765 lars 105
    }