Completed
Push — master ( a3d311...211d79 )
by Cheren
02:09
created

AuthComponent::_setDefaults()   B

Complexity

Conditions 3
Paths 3

Size

Total Lines 43
Code Lines 30

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 43
rs 8.8571
cc 3
eloc 30
nc 3
nop 0
1
<?php
2
/**
3
 * CakeCMS Community
4
 *
5
 * This file is part of the of the simple cms based on CakePHP 3.
6
 * For the full copyright and license information, please view the LICENSE
7
 * file that was distributed with this source code.
8
 *
9
 * @package     Community
10
 * @license     MIT
11
 * @copyright   MIT License http://www.opensource.org/licenses/mit-license.php
12
 * @link        https://github.com/CakeCMS/Community".
13
 * @author      Sergey Kalistratov <[email protected]>
14
 */
15
16
namespace Community\Controller\Component;
17
18
use Cake\Controller\Component\AuthComponent as BaseAuthComponent;
19
20
/**
21
 * Class AuthComponent
22
 *
23
 * @package Community\Controller\Component
24
 */
25
class AuthComponent extends BaseAuthComponent
26
{
27
28
    /**
29
     * Get login redirect by app client.
30
     *
31
     * @return  array
32
     */
33
    protected function _getLoginRedirect()
34
    {
35
        $redirect = [
36
            'action'     => 'index',
37
            'controller' => 'Users',
38
            'plugin'     => 'Community'
39
        ];
40
41
        if (!$this->request->getParam('prefix')) {
42
            $redirect = [
43
                'action'     => 'edit',
44
                'controller' => 'Users',
45
                'plugin'     => 'Community'
46
            ];
47
        }
48
        return $redirect;
49
    }
50
51
    /**
52
     * Sets defaults for configs.
53
     *
54
     * @return  void
55
     */
56
    protected function _setDefaults()
57
    {
58
        $defaults = [
59
            'authenticate' => [
60
                'Form' => [
61
                    'userModel' => 'Users',
62
                    'scope'     => ['Users.status' => 1],
63
                    'fields'    => [
64
                        'username' => 'login',
65
                        'password' => 'password'
66
                    ]
67
                ]
68
            ],
69
            'flash' => [
70
                'key'       => 'auth',
71
                'element'   => 'error',
72
                'params'    => ['class' => 'error']
73
            ],
74
            'loginAction' => [
75
                'controller' => 'Users',
76
                'action'     => 'login',
77
                'plugin'     => 'Community'
78
            ],
79
            'unauthorizedRedirect' => [
80
                'action'     => 'login',
81
                'controller' => 'Users',
82
                'plugin'     => 'Community'
83
            ],
84
            'authorize'      => ['Community.Base'],
85
            'loginRedirect'  => $this->_getLoginRedirect(),
86
            'logoutRedirect' => $this->_config['loginAction'],
87
            'authError'      => __d('community', 'You are not authorized to access that location.')
88
        ];
89
90
        $config = $this->getConfig();
91
        foreach ($config as $key => $value) {
92
            if ($value !== null) {
93
                unset($defaults[$key]);
94
            }
95
        }
96
97
        $this->setConfig($defaults);
98
    }
99
}
100