[geeklog-cvs] geeklog: Allow groups to be marked as a Default Group. New users...

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Sun Jan 3 16:15:06 EST 2010


changeset 7579:21c4ffae4200
url:  http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/21c4ffae4200
user: Dirk Haun <dirk at haun-online.de>
date: Sat Jan 02 20:56:41 2010 +0100
description:
Allow groups to be marked as a Default Group. New users will automatically be added to all default groups (feature request #0000798)

diffstat:

 language/english.php                                          |   4 +-
 language/english_utf-8.php                                    |   4 +-
 language/german.php                                           |   4 +-
 language/german_formal.php                                    |   4 +-
 language/german_formal_utf-8.php                              |   4 +-
 language/german_utf-8.php                                     |   4 +-
 public_html/admin/group.php                                   |  63 +++++++----
 public_html/admin/user.php                                    |  16 ++-
 public_html/docs/history                                      |   2 +
 public_html/layout/professional/admin/group/groupeditor.thtml |   8 +-
 sql/mssql_tableanddata.php                                    |   3 +-
 sql/mysql_tableanddata.php                                    |   1 +
 sql/updates/mssql_1.6.1_to_1.6.2.php                          |   3 +
 sql/updates/mysql_1.6.1_to_1.6.2.php                          |   3 +
 system/lib-admin.php                                          |  10 +-
 system/lib-user.php                                           |  85 +++++++++-------
 16 files changed, 142 insertions(+), 76 deletions(-)

diffs (truncated from 570 to 300 lines):

diff -r 05d0ecb57c45 -r 21c4ffae4200 language/english.php
--- a/language/english.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/language/english.php	Sat Jan 02 20:56:41 2010 +0100
@@ -962,7 +962,9 @@
     84 => "Your login name is: %s  for our site: {$_CONF['site_url']}",
     85 => 'If you have forgotten the password use the following link: %s',
     86 => 'Include',
-    87 => 'Reminders'
+    87 => 'Reminders',
+    88 => 'Default Group',
+    89 => 'Check to make this a default group for new users'
 );
 
 ###############################################################################
diff -r 05d0ecb57c45 -r 21c4ffae4200 language/english_utf-8.php
--- a/language/english_utf-8.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/language/english_utf-8.php	Sat Jan 02 20:56:41 2010 +0100
@@ -962,7 +962,9 @@
     84 => "Your login name is: %s  for our site: {$_CONF['site_url']}",
     85 => 'If you have forgotten the password use the following link: %s',
     86 => 'Include',
-    87 => 'Reminders'
+    87 => 'Reminders',
+    88 => 'Default Group',
+    89 => 'Check to make this a default group for new users'
 );
 
 ###############################################################################
diff -r 05d0ecb57c45 -r 21c4ffae4200 language/german.php
--- a/language/german.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/language/german.php	Sat Jan 02 20:56:41 2010 +0100
@@ -964,7 +964,9 @@
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
     85 => 'Wenn Du das Passwort vergessen hast, benutze folgenden Link: %s',
     86 => 'Enthalten',
-    87 => 'Erinnerungen'
+    87 => 'Erinnerungen',
+    88 => 'Default Group',
+    89 => 'Check to make this a default group for new users'
 );
 
 ###############################################################################
diff -r 05d0ecb57c45 -r 21c4ffae4200 language/german_formal.php
--- a/language/german_formal.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/language/german_formal.php	Sat Jan 02 20:56:41 2010 +0100
@@ -965,7 +965,9 @@
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
     85 => 'Wenn Sie Ihr Passwort vergessen haben, benutzen Sie folgenden Link: %s',
     86 => 'Enthalten',
-    87 => 'Erinnerungen'
+    87 => 'Erinnerungen',
+    88 => 'Default Group',
+    89 => 'Check to make this a default group for new users'
 );
 
 ###############################################################################
diff -r 05d0ecb57c45 -r 21c4ffae4200 language/german_formal_utf-8.php
--- a/language/german_formal_utf-8.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/language/german_formal_utf-8.php	Sat Jan 02 20:56:41 2010 +0100
@@ -965,7 +965,9 @@
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
     85 => 'Wenn Sie Ihr Passwort vergessen haben, benutzen Sie folgenden Link: %s',
     86 => 'Enthalten',
-    87 => 'Erinnerungen'
+    87 => 'Erinnerungen',
+    88 => 'Default Group',
+    89 => 'Check to make this a default group for new users'
 );
 
 ###############################################################################
diff -r 05d0ecb57c45 -r 21c4ffae4200 language/german_utf-8.php
--- a/language/german_utf-8.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/language/german_utf-8.php	Sat Jan 02 20:56:41 2010 +0100
@@ -964,7 +964,9 @@
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
     85 => 'Wenn Du das Passwort vergessen hast, benutze folgenden Link: %s',
     86 => 'Enthalten',
-    87 => 'Erinnerungen'
+    87 => 'Erinnerungen',
+    88 => 'Default Group',
+    89 => 'Check to make this a default group for new users'
 );
 
 ###############################################################################
diff -r 05d0ecb57c45 -r 21c4ffae4200 public_html/admin/group.php
--- a/public_html/admin/group.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/public_html/admin/group.php	Sat Jan 02 20:56:41 2010 +0100
@@ -106,11 +106,20 @@
     $group_templates->set_var('site_url', $_CONF['site_url']);
     $group_templates->set_var('site_admin_url', $_CONF['site_admin_url']);
     $group_templates->set_var('layout_url', $_CONF['layout_url']);
+    $group_templates->set_var('xhtml', XHTML);
+
     $group_templates->set_var('lang_save', $LANG_ADMIN['save']);
     $group_templates->set_var('lang_cancel', $LANG_ADMIN['cancel']);
     $group_templates->set_var('lang_admingroup', $LANG28[49]);
     $group_templates->set_var('lang_admingrp_msg', $LANG28[50]);
-    $group_templates->set_var('xhtml', XHTML);
+    $group_templates->set_var('lang_defaultgroup', $LANG28[88]);
+    $group_templates->set_var('lang_defaultgrp_msg', $LANG28[89]);
+    $group_templates->set_var('lang_groupname', $LANG_ACCESS['groupname']);
+    $group_templates->set_var('lang_description', $LANG_ACCESS['description']);
+    $group_templates->set_var('lang_securitygroups',
+                              $LANG_ACCESS['securitygroups']);
+    $group_templates->set_var('lang_rights', $LANG_ACCESS['rights']);
+
     $showall = 0;
     if (isset($_REQUEST['chk_showall']) && ($_REQUEST['chk_showall'] == 1)) {
         $showall = 1;
@@ -118,14 +127,18 @@
     $group_templates->set_var('show_all', $showall);
 
     if (! empty($grp_id)) {
-        $result = DB_query("SELECT grp_id,grp_name,grp_descr,grp_gl_core FROM {$_TABLES['groups']} WHERE grp_id ='$grp_id'");
+        $result = DB_query("SELECT grp_id,grp_name,grp_descr,grp_gl_core,grp_default FROM {$_TABLES['groups']} WHERE grp_id ='$grp_id'");
         $A = DB_fetchArray($result);
         if ($A['grp_gl_core'] > 0) {
             $group_templates->set_var('chk_adminuse', 'checked="checked"');
         }
+        if ($A['grp_default'] != 0) {
+            $group_templates->set_var('chk_defaultuse', 'checked="checked"');
+        }
     } else {
         // new group, so it's obviously not a core group
         $A['grp_gl_core'] = 0;
+        $A['grp_default'] = 0;
     }
 
     $token = SEC_createToken();
@@ -152,8 +165,6 @@
         $group_templates->set_var('group_core', 0);
     }
 
-    $group_templates->set_var('lang_groupname', $LANG_ACCESS['groupname']);
-
     if ($A['grp_gl_core'] != 1) {
         $group_templates->set_var('groupname_inputtype', 'text');
         $group_templates->set_var('groupname_static', '');
@@ -161,19 +172,17 @@
         $group_templates->set_var('groupname_inputtype', 'hidden');
         $group_templates->set_var('groupname_static', $A['grp_name']);
     }
-    if (isset ($A['grp_name'])) {
+    if (isset($A['grp_name'])) {
         $group_templates->set_var('group_name', $A['grp_name']);
     } else {
         $group_templates->set_var('group_name', '');
     }
 
-    $group_templates->set_var('lang_description', $LANG_ACCESS['description']);
-    if (isset ($A['grp_descr'])) {
+    if (isset($A['grp_descr'])) {
         $group_templates->set_var('group_description', $A['grp_descr']);
     } else {
         $group_templates->set_var('group_description', '');
     }
-    $group_templates->set_var('lang_securitygroups', $LANG_ACCESS['securitygroups']);
 
     $selected = '';
     if (! empty($grp_id)) {
@@ -258,7 +267,6 @@
                                    $defsort_arr, '', explode(' ', $selected));
     }
     $group_templates->set_var('group_options', $groupoptions);
-    $group_templates->set_var('lang_rights', $LANG_ACCESS['rights']);
 
     if ($A['grp_gl_core'] == 1) {
         $group_templates->set_var('lang_rightsmsg', $LANG_ACCESS['corerightsdescr']);
@@ -272,7 +280,7 @@
     $group_templates->set_var('gltoken', $token);
     $group_templates->parse('output','editor');
     $retval .= $group_templates->finish($group_templates->get_var('output'));
-    $retval .= COM_endBlock (COM_getBlockTemplate ('_admin_block', 'footer'));
+    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
 
     return $retval;
 }
@@ -458,12 +466,13 @@
 * @param    string  $grp_descr      Description of group
 * @param    boolean $grp_admin      Flag that indicates this is an admin use group
 * @param    boolean $grp_gl_core    Flag that indicates if this is a core Geeklog group
+* @param    boolean $grp_default    Flag that indicates if this is a default group
 * @param    array   $features       Features the group has access to
 * @param    array   $groups         Groups this group will belong to
 * @return   string                  HTML refresh or error message
 *
 */
-function savegroup($grp_id, $grp_name, $grp_descr, $grp_admin, $grp_gl_core, $features, $groups)
+function savegroup($grp_id, $grp_name, $grp_descr, $grp_admin, $grp_gl_core, $grp_default, $features, $groups)
 {
     global $_CONF, $_TABLES, $_USER, $LANG_ACCESS, $VERBOSE;
 
@@ -506,16 +515,17 @@
         $grp_descr = COM_stripslashes ($grp_descr);
         $grp_descr = addslashes ($grp_descr);
 
-        if (empty ($grp_id)) {
-            DB_save ($_TABLES['groups'], 'grp_name,grp_descr,grp_gl_core',
-                     "'$grp_name','$grp_descr',$grp_gl_core");
-            $grp_id = DB_getItem ($_TABLES['groups'], 'grp_id',
-                                  "grp_name = '$grp_name'");
+        if (empty($grp_id)) {
+            DB_save($_TABLES['groups'],
+                    'grp_name,grp_descr,grp_gl_core,grp_default',
+                    "'$grp_name','$grp_descr',$grp_gl_core,$grp_default");
+            $grp_id = DB_getItem($_TABLES['groups'], 'grp_id',
+                                 "grp_name = '$grp_name'");
             $new_group = true;
         } else {
-            DB_save ($_TABLES['groups'],
-                     'grp_id,grp_name,grp_descr,grp_gl_core',
-                     "$grp_id,'$grp_name','$grp_descr',$grp_gl_core");
+            DB_save($_TABLES['groups'],
+                    'grp_id,grp_name,grp_descr,grp_gl_core,grp_default',
+                    "$grp_id,'$grp_name','$grp_descr',$grp_gl_core,$grp_default");
             $new_group = false;
         }
 
@@ -585,14 +595,14 @@
         }
 
         if ($new_group) {
-            PLG_groupChanged ($grp_id, 'new');
+            PLG_groupChanged($grp_id, 'new');
         } else {
-            PLG_groupChanged ($grp_id, 'edit');
+            PLG_groupChanged($grp_id, 'edit');
         }
         if (isset($_REQUEST['chk_showall']) && ($_REQUEST['chk_showall'] == 1)) {
-            echo COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=49&chk_showall=1');
+            return COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=49&chk_showall=1');
         } else {
-            echo COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=49');
+            return COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=49');
         }
     } else {
         $retval .= COM_siteHeader ('menu', $LANG_ACCESS['groupeditor']);
@@ -775,6 +785,7 @@
         array('text' => $LANG_ACCESS['groupname'], 'field' => 'grp_name', 'sort' => true),
         array('text' => $LANG_ACCESS['description'], 'field' => 'grp_descr', 'sort' => true),
         array('text' => $LANG_ACCESS['coregroup'], 'field' => 'grp_gl_core', 'sort' => true),
+        array('text' => $LANG28[88], 'field' => 'grp_default', 'sort' => true),
         array('text' => $LANG_ACCESS['listusers'], 'field' => 'list', 'sort' => false)
     );
 
@@ -1107,6 +1118,10 @@
     }
 } elseif (($mode == $LANG_ADMIN['save']) && !empty($LANG_ADMIN['save']) && SEC_checkToken()) {
     $grp_gl_core = COM_applyFilter($_POST['grp_gl_core'], true);
+    $grp_default = 0;
+    if (isset($_POST['chk_grpdefault'])) {
+        $grp_default = 1;
+    }
     $chk_grpadmin = '';
     if (isset($_POST['chk_grpadmin'])) {
         $chk_grpadmin = COM_applyFilter($_POST['chk_grpadmin']);
@@ -1122,7 +1137,7 @@
     $display .= savegroup(COM_applyFilter($_POST['grp_id'], true),
                           COM_applyFilter($_POST['grp_name']),
                           $_POST['grp_descr'], $chk_grpadmin, $grp_gl_core,
-                          $features, $groups);
+                          $grp_default, $features, $groups);
 } elseif (($mode == 'savegroupusers') && SEC_checkToken()) {
     $grp_id = COM_applyFilter($_REQUEST['grp_id'], true);
     $display .= savegroupusers($grp_id, $_POST['groupmembers']);
diff -r 05d0ecb57c45 -r 21c4ffae4200 public_html/admin/user.php
--- a/public_html/admin/user.php	Sat Jan 02 15:56:38 2010 +0100
+++ b/public_html/admin/user.php	Sat Jan 02 20:56:41 2010 +0100
@@ -8,7 +8,7 @@
 // |                                                                           |
 // | Geeklog user administration page.                                         |
 // +---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2009 by the following authors:                         |
+// | Copyright (C) 2000-2010 by the following authors:                         |
 // |                                                                           |
 // | Authors: Tony Bibbs        - tony AT tonybibbs DOT com                    |
 // |          Mark Limburg      - mlimburg AT users DOT sourceforge DOT net    |
@@ -139,7 +139,7 @@
     $user_templates = new Template($_CONF['path_layout'] . 'admin/user');
     $user_templates->set_file (array ('form' => 'edituser.thtml',
                                       'groupedit' => 'groupedit.thtml'));
-    $user_templates->set_var( 'xhtml', XHTML );
+    $user_templates->set_var('xhtml', XHTML);
     $user_templates->set_var('site_url', $_CONF['site_url']);
     $user_templates->set_var('site_admin_url', $_CONF['site_admin_url']);
     $user_templates->set_var('layout_url', $_CONF['layout_url']);
@@ -236,7 +236,7 @@
     if (!empty($uid)) {
         if ($A['uid'] == $_USER['uid']) {
             $allow_ban = false; // do not allow to ban yourself
-        } else if (SEC_inGroup('Root', $A['uid'])) { // editing a Root user?
+        } elseif (SEC_inGroup('Root', $A['uid'])) { // editing a Root user?
             $count_root_sql = "SELECT COUNT(ug_uid) AS root_count FROM {$_TABLES['group_assignments']} WHERE ug_main_grp_id = 1 GROUP BY ug_uid;";
             $count_root_result = DB_query($count_root_sql);
             $C = DB_fetchArray($count_root_result); // how many are left?
@@ -294,6 +294,14 @@
                       . ' ';
             $selected .= DB_getItem($_TABLES['groups'], 'grp_id',
                                     "grp_name = 'Logged-in Users'");
+



More information about the geeklog-cvs mailing list