[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_2_BRANCH: kdelibs/kdecore
From:       Waldo Bastian <bastian () kde ! org>
Date:       2004-09-13 12:38:26
Message-ID: 20040913123826.D534C98DB () office ! kde ! org
[Download RAW message or body]

CVS commit by waba: 

KIOSK: Fix group-based profile lookup


  M +18 -8     kstandarddirs.cpp   1.168.2.6


--- kdelibs/kdecore/kstandarddirs.cpp  #1.168.2.5:1.168.2.6
@@ -1264,4 +1264,7 @@ static QStringList lookupProfiles(const 
     QCString user = pw->pw_name;
 
+    gid_t sup_gids[512];
+    int sup_gids_nr = getgroups(512, sup_gids);
+
     KSimpleConfig mapCfg(mapFile, true);
     mapCfg.setGroup("Users");
@@ -1284,9 +1287,15 @@ static QStringList lookupProfiles(const 
         struct group *grp_ent = getgrnam(grp);
         if (!grp_ent) continue;
-
-        char ** members = grp_ent->gr_mem;
-        for(char * member; (member = *members); ++members)
+        int gid = grp_ent->gr_gid;
+        if (pw->pw_gid == gid)
         {
-            if (user == member)
+            // User is in this group --> add profiles
+            profiles += mapCfg.readListEntry(*it);
+        }
+        else
+        {
+            for(int i = 0; i < sup_gids_nr; i++)
+            {
+                if (sup_gids[i] == gid)
             {
                 // User is in this group --> add profiles
@@ -1296,4 +1305,5 @@ static QStringList lookupProfiles(const 
         }
     }
+    }
 
     if (profiles.isEmpty())


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic