Browse Source

HUE-2119 [filebrowser] Show extended permission in mode

Romain Rigaux 11 năm trước cách đây
mục cha
commit
1fa0c53

+ 2 - 2
apps/filebrowser/src/filebrowser/lib/rwx.py

@@ -60,7 +60,7 @@ def compress_mode(tup):
       mode += n
   return mode
 
-def rwx(mode):
+def rwx(mode, aclBit=False):
   """
   Returns "rwx"-style string like that ls would give you.
 
@@ -75,4 +75,4 @@ def rwx(mode):
   # Sticky bit should either be 't' or no char.
   if not bools[-1]:
     s = s[:-1]
-  return rwxtype(mode) + "".join(s)
+  return rwxtype(mode) + "".join(s) + ('+' if aclBit else '')

+ 7 - 0
apps/filebrowser/src/filebrowser/lib/rwx_test.py

@@ -43,5 +43,12 @@ class RwxTest(unittest.TestCase):
       all.add(t)
     self.assertEquals(2*8*8*8, len(all))
 
+  def test_aclbit(self):
+    self.assertEquals('?rw-rw---x', rwx.rwx(0661))
+    self.assertEquals('?rw-rw---x+', rwx.rwx(0661, True))
+
+    self.assertEquals('?-wx-wx-wxt', rwx.rwx(1755))
+    self.assertEquals('?-wx-wx-wxt+', rwx.rwx(1755, True))
+
 if __name__ == "__main__":
   unittest.main()

+ 1 - 1
apps/filebrowser/src/filebrowser/views.py

@@ -468,7 +468,7 @@ def _massage_stats(request, stats):
         'mtime': datetime.fromtimestamp(stats['mtime']).strftime('%B %d, %Y %I:%M %p'),
         'humansize': filesizeformat(stats['size']),
         'type': filetype(stats['mode']),
-        'rwx': rwx(stats['mode']),
+        'rwx': rwx(stats['mode'], stats['aclBit']),
         'mode': stringformat(stats['mode'], "o"),
         'url': make_absolute(request, "view", dict(path=urlquote(normalized))),
         }

+ 1 - 0
desktop/libs/hadoop/src/hadoop/fs/webhdfs_types.py

@@ -43,6 +43,7 @@ class WebHdfsStat(object):
     self.size = file_status['length']
     self.blockSize = file_status['blockSize']
     self.replication = file_status['replication']
+    self.aclBit = file_status.get('aclBit')
 
     self.mode = int(file_status['permission'], 8)
     if self.isDir: