Test Failed
Push — master ( 5f9190...472f53 )
by Fran
02:50
created

UserController::showAdminManager()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 2.004

Importance

Changes 0
Metric Value
cc 2
eloc 9
nc 2
nop 0
dl 0
loc 12
ccs 9
cts 10
cp 0.9
crap 2.004
rs 9.9666
c 0
b 0
f 0
1
<?php
2
namespace PSFS\controller;
3
4
use PSFS\base\config\AdminForm;
5
use PSFS\base\exception\ConfigException;
6
use PSFS\base\Logger;
7
use PSFS\base\Request;
8
use PSFS\base\Router;
9
use PSFS\base\Security;
10
use PSFS\base\Template;
11
use PSFS\controller\base\Admin;
12
use PSFS\services\AdminServices;
13
14
/**
15
 * Class UserController
16
 * @package PSFS\controller
17
 */
18
class UserController extends Admin
19
{
20
    /**
21
     * @return string
22
     */
23 1
    public static function showAdminManager()
24
    {
25 1
        if (Request::getInstance()->getMethod() != 'GET') {
26
            return self::updateAdminUsers();
27
        }
28 1
        $admins = AdminServices::getInstance()->getAdmins();
29 1
        $form = new AdminForm();
30 1
        $form->build();
31 1
        return Template::getInstance()->render('admin.html.twig', array(
32 1
            'admins' => $admins,
33 1
            'form' => $form,
34 1
            'profiles' => Security::getProfiles(),
35
        ));
36
    }
37
38
    /**
39
     * Método que gestiona los usuarios administradores de la plataforma
40
     * @GET
41
     * @route /admin/setup
42
     * @label Gestor de usuarios PSFS
43
     * @return string|null
44
     * @throws \HttpException
45
     */
46
    public function adminers()
47
    {
48
        return self::showAdminManager();
49
    }
50
51
    /**
52
     * @return string
53
     */
54
    public static function updateAdminUsers()
55
    {
56
        $admins = AdminServices::getInstance()->getAdmins();
57
        $form = new AdminForm();
58
        $form->build();
59
        $form->hydrate();
60
        if ($form->isValid()) {
61
            if (Security::save($form->getData())) {
62
                Logger::log('Configuration saved successful');
63
                Security::getInstance()->setFlash("callback_message", t("Usuario agregado correctamente"));
64
                Security::getInstance()->setFlash("callback_route", Router::getInstance()->getRoute("admin", true));
65
            } else {
66
                throw new ConfigException(t('Error al guardar los administradores, prueba a cambiar los permisos'));
67
            }
68
        }
69
        return Template::getInstance()->render('admin.html.twig', array(
70
            'admins' => $admins,
71
            'form' => $form,
72
            'profiles' => Security::getProfiles(),
73
        ));
74
    }
75
76
    /**
77
     * Servicio que guarda los usuarios de administración
78
     * @POST
79
     * @route /admin/setup
80
     * @visible false
81
     * @return string|void
82
     * @throws \HttpException
83
     */
84
    public function setAdminUsers()
85
    {
86
        return self::updateAdminUsers();
87
    }
88
89
    /**
90
     * Acción que pinta un formulario genérico de login pra la zona restringida
91
     * @param string $route
92
     * @GET
93
     * @route /admin/login
94
     * @visible false
95
     * @return string HTML
96
     */
97
    public function adminLogin($route = null)
98
    {
99
        if ($this->isAdmin()) {
100
            return $this->redirect('admin');
0 ignored issues
show
Bug introduced by
Are you sure the usage of $this->redirect('admin') targeting PSFS\base\types\Controller::redirect() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
101
        } else {
102
            return Admin::staticAdminLogon($route);
103
        }
104
    }
105
}
106