hanze/iwa-panda2

Model/Login_handler.php in login
Repositories | Summary | Log | Files | README.md

Login_handler.php (1957B) download


 1<?php
 2class Login_handler
 3{
 4    function login():bool{
 5        if ($_SERVER["REQUEST_METHOD"] == "POST") {
 6            // fetch data from the form pass to login_handler function
 7            if(isset($_POST['email']) || !isset($_POST['password'])){
 8                return ($this->authenticate($_POST['email'], $_POST['password']));
 9            }
10        }
11    }  
12    function authenticate(string $email, string $pwd) : bool
13    //this function return true when user is autheticated uses set_globals to set $_SESSION variables
14    {
15        //create a SQLDatabase class
16        $db = new Lollipop\SQLDatabase("86.92.67.21", "friedel", "hailiwa", "panda");
17        //create a Database object class, with the table User
18        $u = $db->get(User::class);
19        
20        //check if the email exists in db
21        if(!$u->where($email)){
22            //email does not exist
23            return false;
24        }else{
25            if(password_verify($pwd, $u->password)){
26                //authenticated -> set $_SESSION variables
27                $this->set_globals($u, $db);             
28                return true;
29            } else {
30                //password did not match
31                return false;
32            }
33        }
34    }
35     
36    private function set_globals(Lollipop\DatabaseObject $u, Lollipop\SQLDatabase $db)
37    //this function sets Session variables which incluse
38    //email, first_name, last_name and array user_permissions
39    {
40        //start session and set
41        session_start();
42        $_SESSION['email'] = $u->email;
43        $_SESSION['first_name'] = $u->first_name;
44        $_SESSION['last_name'] = $u->last_name;
45
46        //get permissions form db and set sessions_permissions
47        $p = $db->all_where(Permission_user::class, array('id_user' => $u->id));
48        foreach($p as $permission){
49            $user_permissions[] = $permission->id;
50        }
51        $_SESSION['user_permissions'] = $user_permissions;
52    }
53}
54?>