When logged in as standard user and checking the node translations, the page is showing the link to admin page to which users doesn't have access.

Code:

function translation_help($path, $arg) {
...
    case 'node/%/translate':
      $output = '<p>' . t('Translations of a piece of content are managed with translation sets. Each translation set has one source post and any number of translations in any of the <a href="!languages">enabled languages</a>. All translations are tracked to be up to date or outdated based on whether the source post was modified significantly.', array('!languages' => url('admin/config/regional/language'))) . '</p>';

I think the link should be active only for users who has administrative permissions to that page.

Comments

dcam’s picture

Version: 7.33 » 7.x-dev
Status: Active » Closed (won't fix)

I think this is a "won't fix" since any way it's fixed will break translations. Either we break up the existing string which would break the translation or we add a second untranslated string for users without access.

This sort of thing has been discussed before in #2283717: Remove user_access function calls on hook_permission functions.

...also there are probably plenty of other similar 403 errors elsewhere in the admin interface (links in help text?), so just saying we're going to consistently show them the link in these situations regardless of whether they can access it is probably not so terrible.

The difference here is that a translator is much more likely to not have the permission to access the help page than the high-level permission-editing user in the other issue. Still, I don't think we can reasonably change it. If you feel differently, then feel free to re-open it and try to get the attention of our core committer so he can weigh in on the issue, but he is the one who wrote that other comment.