? 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);
