[ticket/378] Hide portal link if it's disabled

B3P-378
This commit is contained in:
Marc Alexander
2014-09-24 19:51:08 +02:00
parent c2bb81dbd6
commit b739cce3eb
3 changed files with 23 additions and 3 deletions

View File

@@ -82,6 +82,7 @@ services:
class: board3\portal\event\listener
arguments:
- @auth
- @config
- @controller.helper
- @path_helper
- @template

View File

@@ -16,6 +16,9 @@ class listener implements EventSubscriberInterface
/** @var \phpbb\auth\auth */
protected $auth;
/** @var \phpbb\config\config */
protected $config;
/** @var \phpbb\controller\helper */
protected $controller_helper;
@@ -35,15 +38,17 @@ class listener implements EventSubscriberInterface
* Constructor of Board3 Portal event listener
*
* @param \phpbb\auth\auth $auth phpBB auth object
* @param \phpbb\config\config $config phpBB config
* @param \phpbb\controller\helper $controller_helper Controller helper object
* @param \phpbb\path_helper $path_helper phpBB path helper
* @param \phpbb\template\template $template Template object
* @param \phpbb\user $user User object
* @param string $php_ext phpEx
*/
public function __construct(\phpbb\auth\auth $auth, \phpbb\controller\helper $controller_helper, \phpbb\path_helper $path_helper, \phpbb\template\template $template, \phpbb\user $user, $php_ext)
public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\controller\helper $controller_helper, \phpbb\path_helper $path_helper, \phpbb\template\template $template, \phpbb\user $user, $php_ext)
{
$this->auth = $auth;
$this->config = $config;
$this->controller_helper = $controller_helper;
$this->path_helper = $path_helper;
$this->template = $template;
@@ -103,7 +108,7 @@ class listener implements EventSubscriberInterface
*/
public function add_portal_link()
{
if (!$this->auth->acl_get('u_view_portal'))
if (!$this->has_portal_access())
{
return;
}
@@ -121,4 +126,14 @@ class listener implements EventSubscriberInterface
'U_PORTAL' => $portal_link,
));
}
/**
* Check if user should be able to access portal
*
* @return bool True of user should be able to access it, false if not
*/
protected function has_portal_access()
{
return $this->auth->acl_get('u_view_portal') && $this->config['board3_portal_enable'];
}
}

View File

@@ -63,7 +63,10 @@ class listener_test extends \phpbb_template_template_test_case
$request->overwrite('SCRIPT_FILENAME', 'app.php', \phpbb\request\request_interface::SERVER);
$request->overwrite('REQUEST_URI', 'app.php', \phpbb\request\request_interface::SERVER);
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$this->config = new \phpbb\config\config(array(
'enable_mod_rewrite' => '1',
'board3_portal_enable' => '1',
));
$provider = new \phpbb\controller\provider();
$provider->find_routing_files($finder);
$provider->find(dirname(__FILE__) . '/');
@@ -90,6 +93,7 @@ class listener_test extends \phpbb_template_template_test_case
$this->listener = new \board3\portal\event\listener(
$this->auth,
$this->config,
$this->controller_helper,
$this->path_helper,
$this->template,