1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-29 15:42:04 +03:00

gpo: Fix unapply failure when multiple extensions run

When multiple Group Policy Extensions are present,
only the last executed extension saves it's
changes to the Group Policy Database, due to the
database being loaded seperately for each
extension.

Signed-off-by: David Mulder <dmulder@suse.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
This commit is contained in:
David Mulder
2020-08-06 17:25:47 -06:00
committed by David Mulder
parent 7e507dd886
commit c887f7a7d2
4 changed files with 17 additions and 20 deletions

View File

@ -453,6 +453,7 @@ def apply_gp(lp, creds, logger, store, gp_extensions, force=False):
store.start()
for ext in gp_extensions:
try:
ext = ext(logger, lp, creds, store)
ext.process_group_policy(del_gpos, changed_gpos)
except Exception as e:
logger.error('Failed to apply extension %s' % str(ext))
@ -476,6 +477,7 @@ def unapply_gp(lp, creds, logger, store, gp_extensions):
store.start()
for ext in gp_extensions:
try:
ext = ext(logger, lp, creds, store)
ext.process_group_policy(del_gpos, [])
except Exception as e:
logger.error('Failed to unapply extension %s' % str(ext))
@ -507,6 +509,7 @@ def rsop(lp, creds, gp_extensions, target):
print('GPO: %s' % gpo.display_name)
print('='*term_width)
for ext in gp_extensions:
ext = ext(logger, lp, creds, store)
print(' CSE: %s' % ext.__module__.split('.')[-1])
print(' ' + ('-'*int(term_width/2)))
for section, settings in ext.rsop(gpo).items():