Commit 203b4e61 authored by webchick's avatar webchick

Issue #1197622 by lyricnz, xjm, tim.plunkett, j0rd, x2x3x2: Fixed Can't enable...

Issue #1197622 by lyricnz, xjm, tim.plunkett, j0rd, x2x3x2: Fixed Can't enable a disabled My account menu link.
parent 3f926260
......@@ -104,7 +104,14 @@ function _menu_overview_tree_form($tree, $delta = 50) {
$mlid = 'mlid:' . $item['mlid'];
$form[$mlid]['#item'] = $item;
$form[$mlid]['#attributes'] = $item['hidden'] ? array('class' => array('menu-disabled')) : array('class' => array('menu-enabled'));
$form[$mlid]['title']['#markup'] = l($item['title'], $item['href'], $item['localized_options']) . ($item['hidden'] ? ' (' . t('disabled') . ')' : '');
$form[$mlid]['title']['#markup'] = l($item['title'], $item['href'], $item['localized_options']);
if ($item['hidden']) {
$form[$mlid]['title']['#markup'] .= ' (' . t('disabled') . ')';
}
elseif ($item['link_path'] == 'user' && $item['module'] == 'system') {
$form[$mlid]['title']['#markup'] .= ' (' . t('logged in users only') . ')';
}
$form[$mlid]['hidden'] = array(
'#type' => 'checkbox',
'#title' => t('Enable @title menu link', array('@title' => $item['title'])),
......
......@@ -10,9 +10,17 @@
use Drupal\simpletest\WebTestBase;
/**
* Test user-links in secondary menu.
* Tests user links in the secondary menu.
*/
class UserAccountLinksTests extends WebTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('menu');
public static function getInfo() {
return array(
'name' => 'User account links',
......@@ -56,4 +64,34 @@ function testSecondaryMenu() {
$element = $this->xpath('//ul[@id=:menu_id]', array(':menu_id' => 'secondary-menu'));
$this->assertEqual(count($element), 0, 'No secondary-menu for logged-out users.');
}
/**
* Tests disabling the 'My account' link.
*/
function testDisabledAccountLink() {
// Create an admin user and log in.
$this->drupalLogin($this->drupalCreateUser(array('access administration pages', 'administer menu')));
// Verify that the 'My account' link is enabled.
$this->drupalGet('admin/structure/menu/manage/user-menu');
$this->assertFieldChecked('edit-mlid2-hidden', "The 'My account' link is enabled by default.");
// Disable the 'My account' link.
$edit = array(
'mlid:2[hidden]' => FALSE,
);
$this->drupalPost('admin/structure/menu/manage/user-menu', $edit, t('Save configuration'));
// Get the homepage.
$this->drupalGet('<front>');
// Verify that the 'My account' link does not appear when disabled.
$link = $this->xpath('//ul[@id=:menu_id]/li/a[contains(@href, :href) and text()=:text]', array(
':menu_id' => 'secondary-menu',
':href' => 'user',
':text' => 'My account',
));
$this->assertEqual(count($link), 0, 'My account link is not in the secondary menu.');
}
}
......@@ -1445,7 +1445,7 @@ function user_menu_breadcrumb_alter(&$active_trail, $item) {
*/
function user_translated_menu_link_alter(&$link) {
// Hide the "User account" link for anonymous users.
if ($link['link_path'] == 'user' && $link['module'] == 'system' && user_is_anonymous()) {
if ($link['link_path'] == 'user' && $link['module'] == 'system' && !$GLOBALS['user']->uid) {
$link['hidden'] = 1;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment