diff --git a/admin/configuration.php b/admin/configuration.php index a381ef37d..de0c90c2d 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -43,7 +43,6 @@ $main_checkboxes = array( 'obligatory_user_mail_address', 'rate', 'rate_anonymous', - 'email_admin_on_new_user', 'allow_user_customization', 'log', 'history_admin', @@ -199,6 +198,26 @@ if (isset($_POST['submit'])) } } + if (empty($_POST['email_admin_on_new_user'])) + { + $_POST['email_admin_on_new_user'] = 'none'; + } + elseif ('all' == $_POST['email_admin_on_new_user_filter']) + { + $_POST['email_admin_on_new_user'] = 'all'; + } + else + { + if (empty($_POST['email_admin_on_new_user_filter_group'])) + { + $_POST['email_admin_on_new_user'] = 'all'; + } + else + { + $_POST['email_admin_on_new_user'] = 'group:'.$_POST['email_admin_on_new_user_filter_group']; + } + } + foreach( $main_checkboxes as $checkbox) { $_POST[$checkbox] = empty($_POST[$checkbox])?'false':'true'; @@ -372,6 +391,25 @@ switch ($page['section']) 'mail_theme_options' => $mail_themes, 'order_by' => $order_by, 'order_by_options' => $sort_fields, + 'email_admin_on_new_user' => 'none' != $conf['email_admin_on_new_user'], + 'email_admin_on_new_user_filter' => in_array($conf['email_admin_on_new_user'], array('none', 'all')) ? 'all' : 'group', + 'email_admin_on_new_user_filter_group' => preg_match('/^group:(\d+)$/', $conf['email_admin_on_new_user'], $matches) ? $matches[1] : -1, + ) + ); + + // list of groups + $query = ' + SELECT + id, + name + FROM '.GROUPS_TABLE.' + ;'; + $groups = query2array($query, 'id', 'name'); + natcasesort($groups); + + $template->assign( + array( + 'group_options' => $groups, ) ); diff --git a/admin/include/functions.php b/admin/include/functions.php index eab6e4bf7..3299b64db 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -2592,6 +2592,17 @@ function delete_groups($group_ids) return false; } + if (preg_match('/^group:(\d+)$/', conf_get_param('email_admin_on_new_user', 'undefined'), $matches)) + { + foreach ($group_ids as $group_id) + { + if ($group_id == $matches[1]) + { + conf_update_param('email_admin_on_new_user', 'all', true); + } + } + } + $group_id_string = implode(',', $group_ids); // destruction of the access linked to the group diff --git a/admin/themes/default/template/configuration_main.tpl b/admin/themes/default/template/configuration_main.tpl index e80b960db..cd208323b 100644 --- a/admin/themes/default/template/configuration_main.tpl +++ b/admin/themes/default/template/configuration_main.tpl @@ -5,7 +5,8 @@ (function(){ var targets = { 'input[name="rate"]' : '#rate_anonymous', - 'input[name="allow_user_registration"]' : '#email_admin_on_new_user' + 'input[name="allow_user_registration"]' : '#email_admin_on_new_user', + 'input[name="email_admin_on_new_user"]' : '#email_admin_on_new_user_filter' }; for (selector in targets) { @@ -67,6 +68,12 @@ jQuery("input[name='mail_theme']").change(function() { jQuery("input[name='mail_theme']").parents(".themeSelect").removeClass("themeDefault"); jQuery(this).parents(".themeSelect").addClass("themeDefault"); }); + +jQuery("input[name='email_admin_on_new_user_filter']").change(function() { + var val = jQuery("input[name='email_admin_on_new_user_filter']:checked").val(); + + jQuery('#email_admin_on_new_user_filter_group_options').toggle('group' == val); +}); {/footer_script}