summaryrefslogtreecommitdiff
path: root/scheduler
diff options
context:
space:
mode:
Diffstat (limited to 'scheduler')
-rw-r--r--scheduler/auth.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/scheduler/auth.c b/scheduler/auth.c
index c910c131d..5bb80edc9 100644
--- a/scheduler/auth.c
+++ b/scheduler/auth.c
@@ -1166,7 +1166,23 @@ cupsdCheckGroup(
groupid = group->gr_gid;
+ for (i = 0; group->gr_mem[i]; i ++)
+ {
+ /*
+ * User appears in the group membership...
+ */
+
+ if (!_cups_strcasecmp(username, group->gr_mem[i]))
+ return (1);
+ }
+
#ifdef HAVE_GETGROUPLIST
+ /*
+ * If the user isn't in the group membership list, try the results from
+ * getgrouplist() which is supposed to return the full list of groups a user
+ * belongs to...
+ */
+
if (user)
{
int ngroups; /* Number of groups */
@@ -1187,13 +1203,6 @@ cupsdCheckGroup(
if ((int)groupid == (int)groups[i])
return (1);
}
-
-#else
- for (i = 0; group->gr_mem[i]; i ++)
- {
- if (!_cups_strcasecmp(username, group->gr_mem[i]))
- return (1);
- }
#endif /* HAVE_GETGROUPLIST */
}
else