1
0
mirror of https://github.com/altlinux/gpupdate.git synced 2025-03-22 18:50:15 +03:00

Fix gpupdate run for user

This commit is contained in:
Evgeny Sinelnikov 2020-01-30 09:38:03 +04:00
parent d4cf42a8e5
commit 60d4038586
2 changed files with 15 additions and 11 deletions

View File

@ -91,14 +91,13 @@ def runner_factory(args, target):
else:
# User may only perform gpupdate for machine (None) or
# itself (os.getusername()).
if args.user:
username = pwd.getpwuid(os.getuid()).pw_name
if args.user != username:
logstring = (
'Unable to perform gpupdate for {} with current'
' permissions, will update current user settings'
)
logging.error(logstring.format(args.user))
username = pwd.getpwuid(os.getuid()).pw_name
if args.user != username:
logstring = (
'Unable to perform gpupdate for {} with current'
' permissions, will update current user settings'
)
logging.error(logstring.format(args.user))
if is_oddjobd_gpupdate_accessible():
logging.debug('Starting gpupdate via D-Bus')
@ -106,8 +105,9 @@ def runner_factory(args, target):
user_runner = None
if target == 'All' or target == 'Computer':
computer_runner = dbus_runner()
if target == 'All' or target == 'User':
user_runner = dbus_runner(username)
if username:
if target == 'All' or target == 'User':
user_runner = dbus_runner(username)
return (computer_runner, user_runner)
else:
logging.warning('oddjobd is inaccessible')

View File

@ -19,6 +19,7 @@ import logging
import dbus
from .logging import slogm
from .users import is_root
class dbus_runner:
@ -40,7 +41,10 @@ class dbus_runner:
#print(obj.Introspect()[0])
if self.username:
logging.info(slogm('Starting GPO applier for user {} via D-Bus'.format(self.username)))
result = self.interface.gpupdatefor(dbus.String(self.username))
if is_root():
result = self.interface.gpupdatefor(dbus.String(self.username))
else:
result = self.interface.gpupdate()
print_dbus_result(result)
else:
logging.info(slogm('Starting GPO applier for computer via D-Bus'))