[geeklog-cvs] geeklog: Fixed assigning groups to groups

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Sat Feb 21 17:03:34 EST 2009


details:   http://project.geeklog.net/cgi-bin/hgweb.cgi/rev/b4dc97200076
changeset: 6792:b4dc97200076
user:      Dirk Haun <dirk at haun-online.de>
date:      Sat Feb 21 22:41:54 2009 +0100
description:
Fixed assigning groups to groups

diffstat:

1 file changed, 18 insertions(+), 20 deletions(-)
public_html/admin/group.php |   38 ++++++++++++++++++--------------------

diffs (66 lines):

diff -r ba2231f87362 -r b4dc97200076 public_html/admin/group.php
--- a/public_html/admin/group.php	Sat Feb 21 19:52:03 2009 +0100
+++ b/public_html/admin/group.php	Sat Feb 21 22:41:54 2009 +0100
@@ -466,8 +466,8 @@
     global $_CONF, $_TABLES, $_USER, $LANG_ACCESS, $VERBOSE;
 
     $retval = '';
-    if (!empty ($grp_name) && !empty ($grp_descr)) {
-        $GroupAdminGroups = SEC_getUserGroups ();
+    if (!empty($grp_name) && !empty($grp_descr)) {
+        $GroupAdminGroups = SEC_getUserGroups();
         if (!empty ($grp_id) &&
             ($grp_id > 0) &&
             !in_array ($grp_id, $GroupAdminGroups) &&
@@ -537,19 +537,18 @@
         }
 
         // now save the features
-        DB_delete ($_TABLES['access'], 'acc_grp_id', $grp_id);
-        if (SEC_inGroup ('Root')) {
-            for ($i = 1; $i <= sizeof ($features); $i++) {
-                DB_query ("INSERT INTO {$_TABLES['access']} (acc_ft_id,acc_grp_id) VALUES (" . current ($features) . ",$grp_id)");
-                next ($features);
+        DB_delete($_TABLES['access'], 'acc_grp_id', $grp_id);
+        $num_features = count($features);
+        if (SEC_inGroup('Root')) {
+            foreach ($features as $f) {
+                DB_query ("INSERT INTO {$_TABLES['access']} (acc_ft_id,acc_grp_id) VALUES ($f,$grp_id)");
             }
         } else {
-            $GroupAdminFeatures = SEC_getUserPermissions ();
-            $availableFeatures = explode (',', $GroupAdminFeatures);
-            for ($i = 1; $i <= sizeof($features); $i++) {
-                if (in_array (current ($features), $availableFeatures)) {
-                    DB_query("INSERT INTO {$_TABLES['access']} (acc_ft_id,acc_grp_id) VALUES (" . current($features) . ",$grp_id)");
-                    next($features);
+            $GroupAdminFeatures = SEC_getUserPermissions();
+            $availableFeatures = explode(',', $GroupAdminFeatures);
+            foreach ($features as $f) {
+                if (in_array($f, $availableFeatures)) {
+                    DB_query("INSERT INTO {$_TABLES['access']} (acc_ft_id,acc_grp_id) VALUES ($f,$grp_id)");
                 }
             }
         }
@@ -558,15 +557,14 @@
             COM_errorLog("deleting all group_assignments for group $grp_id/$grp_name",1);
         }
 
-        DB_delete ($_TABLES['group_assignments'], 'ug_grp_id', $grp_id);
-        if (!empty ($groups)) {
-            for ($i = 1; $i <= sizeof ($groups); $i++) {
-                if (in_array ($grp_id, $GroupAdminGroups)) {
-                    if ($VERBOSE) COM_errorLog("adding group_assignment " . current($groups) . " for $grp_name",1);
-                    $sql = "INSERT INTO {$_TABLES['group_assignments']} (ug_main_grp_id, ug_grp_id) VALUES (" . current($groups) . ",$grp_id)";
+        DB_delete($_TABLES['group_assignments'], 'ug_grp_id', $grp_id);
+        if (! empty($groups)) {
+            foreach ($groups as $g) {
+                if (in_array($g, $GroupAdminGroups)) {
+                    if ($VERBOSE) COM_errorLog("adding group_assignment $g for $grp_name",1);
+                    $sql = "INSERT INTO {$_TABLES['group_assignments']} (ug_main_grp_id, ug_grp_id) VALUES ($g,$grp_id)";
                     DB_query($sql);
                 }
-                next($groups);
             }
         }
 



More information about the geeklog-cvs mailing list