From 47154fa5ef0bff2b372df823ab7d80913a888404 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Oct 03 2017 09:58:14 +0000 Subject: display suid bit in web ui Related: https://pagure.io/koji/issue/616 --- diff --git a/Makefile b/Makefile index 59a6345..988b773 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 0000000..0ead026 --- /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 6cdcecc..adea48b 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):