? jsomers_233997_hook_file_transferred.patch ? temp ? sites/default/files ? sites/default/settings.php Index: modules/translation/translation.module =================================================================== RCS file: /cvs/drupal/drupal/modules/translation/translation.module,v retrieving revision 1.42 diff -u -p -r1.42 translation.module --- modules/translation/translation.module 17 Apr 2009 06:55:07 -0000 1.42 +++ modules/translation/translation.module 18 Apr 2009 13:35:52 -0000 @@ -75,8 +75,10 @@ function translation_menu() { * all languages). */ function _translation_tab_access($node) { + global $user; + if (!empty($node->language) && translation_supported_type($node->type)) { - return user_access('translate content'); + return (user_access('translate content') || (($node->uid == $user->uid) && user_access('translate own content'))); } return FALSE; } @@ -90,6 +92,10 @@ function translation_perm() { 'title' => t('Translate content'), 'description' => t('Translate website content.'), ), + 'translate own content' => array( + 'title' => t('Translate own content'), + 'description' => t('Translate own website content.'), + ), ); } @@ -111,6 +117,8 @@ function translation_form_node_type_form * is about to be created. */ function translation_form_alter(&$form, &$form_state, $form_id) { + global $user; + if (isset($form['#id']) && $form['#id'] == 'node-form' && translation_supported_type($form['#node']->type)) { $node = $form['#node']; if (!empty($node->translation_source)) { @@ -133,7 +141,7 @@ function translation_form_alter(&$form, $form['translation'] = array( '#type' => 'fieldset', '#title' => t('Translation settings'), - '#access' => user_access('translate content'), + '#access' => user_access('translate content') || (($node->uid == $user->uid) && user_access('translate own content')), '#collapsible' => TRUE, '#collapsed' => !$node->translate, '#tree' => TRUE, @@ -193,11 +201,13 @@ function translation_node_view(&$node, $ * Implementation of hook_node_prepare(). */ function translation_node_prepare($node) { + global $user; + // Only act if we are dealing with a content type supporting translations. if (translation_supported_type($node->type)) { if (empty($node->nid) && isset($_GET['translation']) && isset($_GET['language']) && ($source_nid = $_GET['translation']) && ($language = $_GET['language']) && - (user_access('translate content'))) { + (user_access('translate content') || (($node->uid == $user->uid) && user_access('translate own content')))) { // We are translating a node from a source node, so // load the node to be translated and populate fields. $source_node = node_load($source_nid);