浏览代码

HUE-9455 [filebrowser] part-1 File system user home directory is wrong in S3 only configuration

ayush.goyal 5 年之前
父节点
当前提交
369b2986cc

+ 1 - 3
apps/useradmin/src/useradmin/models.py

@@ -58,8 +58,6 @@ from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.idbroker.conf import is_idbroker_enabled
 from desktop.monkey_patches import monkey_patch_username_validator
 
-from filebrowser.conf import REMOTE_STORAGE_HOME
-
 from useradmin.conf import DEFAULT_USER_GROUP
 from useradmin.permissions import HuePermission, GroupPermission, LdapGroup
 
@@ -175,7 +173,7 @@ def create_profile_for_user(user):
   p = UserProfile()
   p.user = user
   p.last_activity = dtz.now()
-  p.home_directory = REMOTE_STORAGE_HOME.get() if REMOTE_STORAGE_HOME.get() else  "/user/%s" % p.user.username
+  p.home_directory = "/user/%s" % p.user.username
   try:
     p.save()
     return p

+ 6 - 4
desktop/core/src/desktop/models.py

@@ -1915,8 +1915,10 @@ class ClusterConfig(object):
     elif 'filebrowser' in self.apps and fsmanager.is_enabled_and_has_access('hdfs', self.user):
       hdfs_connectors.append(_('Files'))
 
+    remote_home_storage = REMOTE_STORAGE_HOME.get() if hasattr(REMOTE_STORAGE_HOME, 'get') and REMOTE_STORAGE_HOME.get() else None
+
     for hdfs_connector in hdfs_connectors:
-      home_path = REMOTE_STORAGE_HOME.get() if REMOTE_STORAGE_HOME.get() else self.user.get_home_directory().encode('utf-8')
+      home_path = remote_home_storage if remote_home_storage else self.user.get_home_directory().encode('utf-8')
       interpreters.append({
         'type': 'hdfs',
         'displayName': hdfs_connector,
@@ -1929,7 +1931,7 @@ class ClusterConfig(object):
       })
 
     if 'filebrowser' in self.apps and fsmanager.is_enabled_and_has_access('s3a', self.user):
-      home_path = REMOTE_STORAGE_HOME.get() if REMOTE_STORAGE_HOME.get() else 'S3A://'.encode('utf-8')
+      home_path = remote_home_storage if remote_home_storage else 'S3A://'.encode('utf-8')
       interpreters.append({
         'type': 's3',
         'displayName': _('S3'),
@@ -1939,7 +1941,7 @@ class ClusterConfig(object):
       })
 
     if 'filebrowser' in self.apps and fsmanager.is_enabled_and_has_access('adl', self.user):
-      home_path = REMOTE_STORAGE_HOME.get() if REMOTE_STORAGE_HOME.get() else 'adl:/'.encode('utf-8')
+      home_path = remote_home_storage if remote_home_storage else 'adl:/'.encode('utf-8')
       interpreters.append({
         'type': 'adls',
         'displayName': _('ADLS'),
@@ -1950,7 +1952,7 @@ class ClusterConfig(object):
 
     if 'filebrowser' in self.apps and fsmanager.is_enabled_and_has_access('abfs', self.user):
       from azure.abfs.__init__ import get_home_dir_for_ABFS
-      home_path = REMOTE_STORAGE_HOME.get() if REMOTE_STORAGE_HOME.get() else get_home_dir_for_ABFS().encode('utf-8')
+      home_path = remote_home_storage if remote_home_storage else get_home_dir_for_ABFS().encode('utf-8')
       interpreters.append({
         'type': 'abfs',
         'displayName': _('ABFS'),

+ 2 - 2
desktop/core/src/desktop/templates/global_js_constants.mako

@@ -27,7 +27,7 @@
   from beeswax.conf import DOWNLOAD_BYTES_LIMIT, DOWNLOAD_ROW_LIMIT, LIST_PARTITIONS_LIMIT, CLOSE_SESSIONS
   from dashboard.conf import HAS_SQL_ENABLED
   from jobbrowser.conf import ENABLE_HISTORY_V2
-  from filebrowser.conf import SHOW_UPLOAD_BUTTON
+  from filebrowser.conf import SHOW_UPLOAD_BUTTON, REMOTE_STORAGE_HOME
   from indexer.conf import ENABLE_NEW_INDEXER
   from metadata.conf import has_catalog, has_readonly_catalog, has_optimizer, has_workload_analytics, OPTIMIZER, get_optimizer_url, \
       get_catalog_url, get_optimizer_mode
@@ -655,7 +655,7 @@
     # TODO remove
     # Code moved from assist.mako
     try:
-      home_dir = user.get_home_directory()
+      home_dir = REMOTE_STORAGE_HOME.get() if hasattr(REMOTE_STORAGE_HOME, 'get') and REMOTE_STORAGE_HOME.get() else user.get_home_directory()
       if not request.fs.isdir(home_dir):
         home_dir = '/'
     except: