From 469bddf537a22c4dd13b4c37ed3152d4765b6abd Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Thu, 10 May 2001 01:01:30 +0000 Subject: Replaced a whole bunch of lookup_name() requests in construct_default_printer_sdb() with checks of the owner rid instead. This should be much faster, work on non-English systems and systems with renamed user or group names. (This used to be commit 8b435b0a2ab1fa060473753fa05f0aba8406b607) --- source3/printing/nt_printing.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'source3/printing') diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index 9b22ed5227..164ad58742 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -3039,16 +3039,19 @@ static SEC_DESC_BUF *construct_default_printer_sdb(TALLOC_CTX *ctx) if (winbind_lookup_name(lp_workgroup(), &owner_sid, &name_type)) { sid_append_rid(&owner_sid, DOMAIN_USER_RID_ADMIN); } else { + uint32 owner_rid; - /* Backup plan - make printer owned by admins or root. This should - emulate a lanman printer as security settings can't be - changed. */ + /* Backup plan - make printer owned by admins or root. + This should emulate a lanman printer as security + settings can't be changed. */ - if (!lookup_name( "Printer Administrators", &owner_sid, &name_type) && - !lookup_name( "Administrators", &owner_sid, &name_type) && - !lookup_name( "Administrator", &owner_sid, &name_type) && - !lookup_name("root", &owner_sid, &name_type)) { - sid_copy(&owner_sid, &global_sid_World); + sid_peek_rid(&owner_sid, &owner_rid); + + if (owner_rid != BUILTIN_ALIAS_RID_PRINT_OPS && + owner_rid != BUILTIN_ALIAS_RID_ADMINS && + owner_rid != DOMAIN_USER_RID_ADMIN && + !lookup_name("root", &owner_sid, &name_type)) { + sid_copy(&owner_sid, &global_sid_World); } } -- cgit