login::doPost()   B
last analyzed

Complexity

Conditions 6
Paths 16

Size

Total Lines 23
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 1
Metric Value
dl 0
loc 23
rs 8.5906
c 3
b 1
f 1
cc 6
eloc 16
nc 16
nop 2
1
<?php
2
3
namespace cvweiss\projectbase\Controller\auth\misc;
4
5
use cvweiss\projectbase\Mongo;
6
use cvweiss\projectbase\Session;
7
8
class login
9
{
10
    public function doGet($render, $params)
11
    {
12
        $render->render("auth/misc/login", $params);
13
    }
14
15
    public function doPost($render, $params)
16
    {    
17
        $userID = strtolower(filter_input(INPUT_POST, 'userid'));
18
        $pass = filter_input(INPUT_POST, 'password');
19
         
20
        $error = null;
21
        $message = null;
22
23
        $user = Mongo::get()->findDoc('users', ['id' => $userID]);
24
        $hash = $user !== null ? $user->get('password') : null;
25
26
        if ($hash != null && password_verify($pass, $hash)) {
27
            $message = "Successful login.";
28
            Session::getSession()->set("userID", $userID);
29
            $params['user_name'] = $userID;
30
        } else {
31
            $error = "No such credentials.";
32
        }
33
        
34
        $params['errorCode'] = $error === null ? 'Success' : 'Error';
35
        $params['errorMessage'] = $error === null ? $message : $error;
36
        $render->render('error', $params);
37
    }
38
}
39