From 5ac2a6b8f0271cc6dcdfd6151803d4c142f069dc Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Tue, 3 Oct 2017 11:57:07 +0200 Subject: [PATCH] display suid bit in web ui Related: https://pagure.io/koji/issue/616 --- Makefile | 2 +- tests/test_www/test_util.py | 18 ++++++++++++++++++ www/lib/kojiweb/util.py | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/test_www/test_util.py diff --git a/Makefile b/Makefile index ec7ed431..51e9e958 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ git-clean: test: coverage erase - PYTHONPATH=hub/.:plugins/hub/.:plugins/builder/.:plugins/cli/.:cli/. coverage run \ + PYTHONPATH=hub/.:plugins/hub/.:plugins/builder/.:plugins/cli/.:cli/.:www/lib coverage run \ --source . /usr/bin/nosetests coverage report coverage html diff --git a/tests/test_www/test_util.py b/tests/test_www/test_util.py new file mode 100644 index 00000000..0ead026b --- /dev/null +++ b/tests/test_www/test_util.py @@ -0,0 +1,18 @@ +import unittest + +from kojiweb.util import formatMode + +class TestFormatMode(unittest.TestCase): + def test_format_mode(self): + formats = ( + ('drwxrwxr-x', 0x41fd), # dir + ('-rw-------', 0x8180), # reg. file + ('crw--w----', 0x2190), # /dev/tty0 + ('brw-rw----', 0x61b0), # /dev/sda + ('lrwxrwxrwx', 0xa1ff), # symlink + ('srwxr-xr-x', 0xc1ed), # socket + ('-rwsrwsr--', 0x8db4), # suid + ) + + for s, mode in formats: + self.assertEqual(formatMode(mode), s) diff --git a/www/lib/kojiweb/util.py b/www/lib/kojiweb/util.py index 6cdcecc1..adea48bf 100644 --- a/www/lib/kojiweb/util.py +++ b/www/lib/kojiweb/util.py @@ -459,6 +459,11 @@ def formatMode(mode): else: result += '-' + if mode & stat.S_ISUID: + result = result[:3] + 's' + result[4:] + if mode & stat.S_ISGID: + result = result[:6] + 's' + result[7:] + return result def rowToggle(template):