X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fcups.git;a=blobdiff_plain;f=scheduler%2Fauth.c;h=8d551abf044cd25d7e9ad1ab820ff8965f3fcc26;hp=9516f28babfaacdef99b6083fbdc584e17cfee22;hb=c9fc04c6ec14cb5073b49491ab90551183743b4d;hpb=969307f09661cc4884f54b3e5742b9768516d2a0 diff --git a/scheduler/auth.c b/scheduler/auth.c index 9516f28ba..8d551abf0 100644 --- a/scheduler/auth.c +++ b/scheduler/auth.c @@ -1404,12 +1404,24 @@ cupsdCheckGroup( * Check group membership through MacOS X membership API... */ - if (user && group) + if (group) + { + if (mbr_gid_to_uuid(group->gr_gid, groupuuid)) + uuid_clear(groupuuid); + } + else if (groupname[0] == '#') + { + if (uuid_parse((char *)groupname + 1, groupuuid)) + uuid_clear(groupuuid); + } + else + uuid_clear(groupuuid); + + if (user && !uuid_is_null(groupuuid)) if (!mbr_uid_to_uuid(user->pw_uid, useruuid)) - if (!mbr_gid_to_uuid(group->gr_gid, groupuuid)) - if (!mbr_check_membership(useruuid, groupuuid, &is_member)) - if (is_member) - return (1); + if (!mbr_check_membership(useruuid, groupuuid, &is_member)) + if (is_member) + return (1); #endif /* HAVE_MBR_UID_TO_UUID */ /*