GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Studioforty9_Recaptcha_Model_Observer   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 110
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 11
lcom 0
cbo 1
dl 0
loc 110
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
B onPostPreDispatch() 0 40 5
A onFailedRecaptchaProductReview() 0 5 1
A onFailedRecaptchaCustomerRegistration() 0 5 1
A onFailedRecaptchaSendFriend() 0 5 1
A onFailedRecaptchaLogin() 0 6 2
A onFailedRecaptchaForgotPassword() 0 5 1
1
<?php
2
/**
3
 * Studioforty9_Recaptcha
4
 *
5
 * @category  Studioforty9
6
 * @package   Studioforty9_Recaptcha
7
 * @author    StudioForty9 <[email protected]>
8
 * @copyright 2015 StudioForty9 (http://www.studioforty9.com)
9
 * @license   https://github.com/studioforty9/recaptcha/blob/master/LICENCE BSD
10
 * @version   1.5.6
11
 * @link      https://github.com/studioforty9/recaptcha
12
 */
13
14
/**
15
 * Studioforty9_Recaptcha_Model_Observer
16
 *
17
 * @category   Studioforty9
18
 * @package    Studioforty9_Recaptcha
19
 * @subpackage Model
20
 * @author     StudioForty9 <[email protected]>
21
 */
22
class Studioforty9_Recaptcha_Model_Observer
23
{
24
    /**
25
     * Run the event on the pre dispatch observer for a controller action
26
     *
27
     * @param Varien_Event_Observer $observer The dispatched observer
28
     * @return Mage_Core_Controller_Front_Action
29
     */
30
    public function onPostPreDispatch(Varien_Event_Observer $observer)
31
    {   
32
        if (! Mage::helper('studioforty9_recaptcha')->isEnabled()) return;
33
34
        /** @var Mage_Core_Controller_Front_Action $controller */
35
        $controller = $observer->getEvent()->getControllerAction();
36
        if (! $controller->getRequest()->isPost()) return;
37
        
38
        $route = $controller->getFullActionName();
39
        if (! Mage::helper('studioforty9_recaptcha')->isAllowed($route)) return;
40
        
41
        /** @var Studioforty9_Recaptcha_Helper_Response $response */
42
        $response = Mage::helper('studioforty9_recaptcha/request')->verify();
43
        if ($response->isSuccess()) return;
44
        
45
        /** reCAPTCHA Verification Failed **/
46
        
47
        Mage::getSingleton('core/session')->addError(
48
            Mage::helper('studioforty9_recaptcha')->__(
49
                'There was an error with the recaptcha code, please try again.'
50
            )
51
        );
52
        
53
        $flag = Mage_Core_Controller_Varien_Action::FLAG_NO_DISPATCH;
54
        $redirectUrl = Mage::helper('studioforty9_recaptcha/redirect')->getUrl();
55
56
        $controller->getRequest()->setDispatched(true);
57
        $controller->setFlag('', $flag, true);
58
        $controller->getResponse()->setRedirect($redirectUrl);
59
        
60
        $payload = array(
61
            'controller_action'  => $controller,
62
            'recaptcha_response' => $response
63
        );
64
        
65
        Mage::dispatchEvent('studioforty9_recaptcha_failed', $payload);
66
        Mage::dispatchEvent('studioforty9_recaptcha_failed_' . $route, $payload);
67
				
68
        return $controller;
69
    }
70
    
71
    /**
72
     * Run additional logic on a failed recaptcha verification for the review form.
73
     *
74
     * @param Varien_Event_Observer $observer The dispatched observer
75
     * @return Mage_Core_Controller_Front_Action
76
     */
77
    public function onFailedRecaptchaProductReview(Varien_Event_Observer $observer)
78
    {
79
        $data = $observer->getEvent()->getControllerAction()->getRequest()->getPost();
80
        Mage::getSingleton('review/session')->setFormData($data);
81
    }
82
    
83
    /**
84
     * Run additional logic on a failed recaptcha verification for the customer registration form.
85
     *
86
     * @param Varien_Event_Observer $observer The dispatched observer
87
     * @return Mage_Core_Controller_Front_Action
88
     */
89
    public function onFailedRecaptchaCustomerRegistration(Varien_Event_Observer $observer)
90
    {
91
        $data = $observer->getEvent()->getControllerAction()->getRequest()->getPost();
92
        Mage::getSingleton('customer/session')->setCustomerFormData($data);
93
    }
94
    
95
    /**
96
     * Run additional logic on a failed recaptcha verification for the send to friend form.
97
     *
98
     * @param Varien_Event_Observer $observer The dispatched observer
99
     * @return Mage_Core_Controller_Front_Action
100
     */
101
    public function onFailedRecaptchaSendFriend(Varien_Event_Observer $observer)
102
    {
103
        $data = $observer->getEvent()->getControllerAction()->getRequest()->getPost();
104
        Mage::getSingleton('catalog/session')->setSendfriendFormData($data);
105
    }
106
    
107
    /**
108
     * Run additional logic on a failed recaptcha verification for the forgot password form.
109
     *
110
     * @param Varien_Event_Observer $observer The dispatched observer
111
     * @return Mage_Core_Controller_Front_Action
112
     */
113
    public function onFailedRecaptchaLogin(Varien_Event_Observer $observer)
114
    {
115
        $data = $observer->getEvent()->getControllerAction()->getRequest()->getPost('login');
116
        $login = isset($data['username']) ? $data['username'] : null;
117
        Mage::getSingleton('customer/session')->setUsername($login);
118
    }
119
120
    /**
121
     * Run additional logic on a failed recaptcha verification for the forgot password form.
122
     *
123
     * @param Varien_Event_Observer $observer The dispatched observer
124
     * @return Mage_Core_Controller_Front_Action
125
     */
126
    public function onFailedRecaptchaForgotPassword(Varien_Event_Observer $observer)
127
    {
128
        $email = $observer->getEvent()->getControllerAction()->getRequest()->getPost('email');
129
        Mage::getSingleton('customer/session')->setForgottenEmail($email);
130
    }
131
}
132