If we can't make polkit provide the desired information without real
authentication attempts, and since this is a GUI issue and not a
security issue, maybe a gsettings key could be a sufficient solution to
this bug.

try:
    gsettings_value = subprocess.check_output(
      ['gsettings', 'get', 'com.ubuntu.language-selector',
       'no-greyed-out-admin-buttons']).decode().rstrip()
except subprocess.CalledProcessError:
    gsettings_value = 'false'
if gsettings_value == 'true':
    self.is_admin = True
else:
    # find out if user has admin privileges via unix groups
    try:
        in_grp_admin = grp.getgrnam("admin")[2] in os.getgroups()
    except KeyError:
        in_grp_admin = False
    try:
        in_grp_sudo = grp.getgrnam("sudo")[2] in os.getgroups()
    except KeyError:
        in_grp_sudo = False
    self.is_admin = (os.getuid() == 0 or in_grp_sudo or in_grp_admin)

Then, when giving a user admin privileges without using the "sudo" or
"admin" unix group, changing the value of the gsettings key for that
user would prevent the buttons in question from being greyed out.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1008344

Title:
  checks "admin" group membership instead of querying polkit

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/language-selector/+bug/1008344/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to