Subversion-Projekte lars-tiefland.webanos.faltradxxs.de

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
24 lars 1
<?php
2
 
3
    namespace App\Http\Controllers;
4
 
5
    use App\Models\User;
6
    use Illuminate\Contracts\Foundation\Application;
7
    use Illuminate\Contracts\View\Factory;
8
    use Illuminate\Contracts\View\View;
9
    use Illuminate\Http\Request;
10
 
11
    class UserController extends Controller
12
    {
13
        protected string $connection = "order";
14
 
15
        //
16
        public function login( Request $request ): Application|Factory|View
17
        {
18
            $request->validate( [
19
                'email'    => [ 'required', 'email' ],
20
                'password' => [ 'required' ],
21
            ] );
22
            $user = User::where( "email", "=", $request->email )->get();
23
            if ( isset( $user[0]->id ) )
24
            {
25
                $erg = password_verify( $request->password, $user[0]->password ) || ( md5( $request->password ) == $user[0]->password );
26
                if ( $erg )
27
                {
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 );
33
                            if ( !$newHash )
34
                            {
35
                                $user[0]->password = $newHash;
36
                                $user[0]->save();
37
                            }
38
                        }
39
                    }
40
                    $_SESSION["SHOP"]["buy"]["Persdata"]["ID"] = $user[0]->id;
41
                    $_SESSION["SHOP"]["Login"] = true;
42
                    $request->session()->invalidate();
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
                }
51
            }
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,
59
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
60
                "nav"               => $GLOBALS["menu"],
61
                "ini"               => $GLOBALS["INI"],
62
                "langstrings"       => $GLOBALS["langstrings"],
63
            ] );
64
        }
65
 
66
        public function logout(): Factory|View|Application
67
        {
68
            unset( $_SESSION["SHOP"]["Login"] );
69
            unset( $_SESSION["SHOP"]["buy"]["Persdata"] );
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
            ] );
79
        }
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
            {
89
                $login["head"] = "";
90
                $login["msg"] = $GLOBALS["langstrings"]["login"]["new_pw_sent"];
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
        }
105
    }