register::doPost()   B
last analyzed

Complexity

Conditions 4
Paths 8

Size

Total Lines 26
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 1
Metric Value
c 2
b 1
f 1
dl 0
loc 26
rs 8.5806
cc 4
eloc 20
nc 8
nop 2
1
<?php
2
3
namespace cvweiss\projectbase\Controller\auth\misc;
4
5
use cvweiss\projectbase\Mongo;
6
use cvweiss\projectbase\MongoDoc;
7
use cvweiss\projectbase\Session;
8
9
class register
10
{
11
    public function doGet($render, $params)
12
    {
13
        $render->render("auth/misc/register", $params);
14
    }
15
16
    public function doPost($render, $params)
17
    {
18
        $userID = strtolower(filter_input(INPUT_POST, 'userid'));
19
        $password = filter_input(INPUT_POST, 'password');
20
21
        $error = null;
22
        $message = null;
23
        $user = Mongo::get()->findDoc("users", ["id" => $userID]);
24
25
        if ($user != null) {
26
            $error = 'User account already exists';
27
        } else {
28
            $user = new MongoDoc("users");
29
            $user->set("id", $userID);
30
            $user->set("name", $userID);
31
            $user->set("password", password_hash($password, PASSWORD_DEFAULT));
32
            $user->save();
33
            $message = "Account created!";
34
            $params['user_name'] = $userID;
35
            Session::getSession()->set("userID", $userID);
36
        }
37
38
        $params['errorCode'] = $error === null ? 'Success' : 'Error';
39
        $params['errorMessage'] = $error === null ? $message : $error;
40
        $render->render('error', $params);
41
    }
42
}
43