framework/base/Module.php
public function beforeAction($action)
    {
        $event = new ActionEvent($action);
        $this->trigger(self::EVENT_BEFORE_ACTION, $event);
        return $event->isValid;
    }
public function beforeAction($action)
    {
        $event = new ActionEvent($action);
        $this->trigger(self::EVENT_BEFORE_ACTION, $event);
        return $event->isValid;
    }
This method is invoked right before an action within this module is executed.

The method will trigger the [[EVENT_BEFORE_ACTION]] event. The return value of the method
will determine whether the action should continue to run.

In case the action should not run, the request should be handled inside of the `beforeAction` code
by either providing the necessary output or redirecting the request. Otherwise the response will be empty.

If you override this method, your code should look like the following:

```php
public function beforeAction($action)
{
if (!parent::beforeAction($action)) {
return false;
}

// your custom code here

return true; // or false to not run the action
}
```

@param Action $action the action to be executed.
@return bool whether the action should continue to be executed.