login   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 3
Bugs 1 Features 1
Metric Value
wmc 7
lcom 0
cbo 2
dl 0
loc 31
rs 10
c 3
b 1
f 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A doGet() 0 4 1
B doPost() 0 23 6
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