From 8e54a172302b847d8e7fb0ea715d7125bd257767 Mon Sep 17 00:00:00 2001 From: zarzuelo Date: Fri, 3 Sep 2010 07:20:39 +0000 Subject: [PATCH] 2010-09-03 Sergio Martin * godmode/massive/massive_operations.php godmode/massive/massive_delete_profiles.php godmode/massive/massive_add_profiles.php: Added the addition an deletion of profiles to users into massive operations git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3216 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_console/ChangeLog | 7 + .../godmode/massive/massive_add_profiles.php | 111 ++++++++++++ .../massive/massive_delete_profiles.php | 163 ++++++++++++++++++ .../godmode/massive/massive_operations.php | 22 ++- 4 files changed, 301 insertions(+), 2 deletions(-) create mode 100644 pandora_console/godmode/massive/massive_add_profiles.php create mode 100644 pandora_console/godmode/massive/massive_delete_profiles.php diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 267594ce33..a7d6de475d 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,10 @@ +2010-09-03 Sergio Martin + + * godmode/massive/massive_operations.php + godmode/massive/massive_delete_profiles.php + godmode/massive/massive_add_profiles.php: Added the + addition an deletion of profiles to users into + massive operations 2010-09-03 Sancho Lerena diff --git a/pandora_console/godmode/massive/massive_add_profiles.php b/pandora_console/godmode/massive/massive_add_profiles.php new file mode 100644 index 0000000000..c2d0f42d7a --- /dev/null +++ b/pandora_console/godmode/massive/massive_add_profiles.php @@ -0,0 +1,111 @@ + $user, "id_perfil" => $profile, "id_grupo" => $group)); + // If the profile doesnt exist, we create it + if ($profile_data === false) { + audit_db ($config['id_user'], $_SERVER['REMOTE_ADDR'], "User management", + "Added profile for user ".safe_input($user)); + $return = create_user_profile ($user, $profile, $group); + if($return !== false){ + $n_added ++; + } + } + } + } + } + } + + print_result_message ($n_added > 0, + __('Profiles added successfully').'('.$n_added.')', + __('Profiles cannot be added')); +} + +print_table ($table); + +unset($table); + +$table->width = '90%'; +$table->data = array (); +$table->head = array (); +$table->align = array (); +$table->style = array (); +$table->style[0] = 'font-weight: bold'; +$table->style[1] = 'font-weight: bold'; +$table->head[0] = __('Profile name'); +$table->head[1] = __('Group'); +$table->head[2] = __('Users'); +$table->align[2] = 'center'; +$table->size[0] = '34%'; +$table->size[1] = '33%'; +$table->size[2] = '33%'; + +$data = array (); +$data[0] = '
'; +$data[0] .= print_select (get_profiles (), 'profiles_id[]', '', '', '', + '', true, true, false, '', false, 'width: 100%'); +$data[1] = print_select_groups($config['id_user'], "UM", true, + 'groups_id[]', '', '', '', '', true, true, false, '', false, 'width: 100%'); +$data[2] = ''; +$users_profiles = ""; + +$data[2] .= print_select (get_users_info(), 'users_id[]', '', '', '', + '', true, true, true, '', false, 'width: 100%'); + + +array_push ($table->data, $data); + +print_table ($table); + +echo '
'; +print_input_hidden ('create_profiles', 1); +print_submit_button (__('Create'), 'go', false, 'class="sub add"'); +echo '
'; + +echo '
'; + +unset ($table); + +?> diff --git a/pandora_console/godmode/massive/massive_delete_profiles.php b/pandora_console/godmode/massive/massive_delete_profiles.php new file mode 100644 index 0000000000..16bfe19564 --- /dev/null +++ b/pandora_console/godmode/massive/massive_delete_profiles.php @@ -0,0 +1,163 @@ + $id_profile[0], "id_grupo" => $id_group[0])); + + echo json_encode (index_array ($profile_data, 'id_up', 'id_usuario')); + return; + } + return; +} + +$delete_profiles = (int) get_parameter ('delete_profiles'); + +if($delete_profiles) { + $profiles_id = get_parameter ('profiles_id', -1); + $groups_id = get_parameter ('groups_id', -1); + $users_id = get_parameter ('users_id', -1); + + if($profiles_id == -1 || $groups_id == -1 || $users_id == -1){ + $result = false; + }else{ + foreach($profiles_id as $profile){ + foreach($groups_id as $group){ + foreach($users_id as $id_up){ + $user = (string) get_db_value_filter ('id_usuario', 'tusuario_perfil', array('id_up' => $id_up)); + + audit_db ($config['id_user'], $_SERVER['REMOTE_ADDR'], "User management", + "Deleted profile for user ".safe_input($user)); + + $return = delete_user_profile ($user, $id_up); + } + } + } + } + + print_result_message ($result, + __('Profiles deleted successfully'), + __('Profiles cannot be deleted')); +} + +print_table ($table); + +unset($table); + +$table->width = '90%'; +$table->data = array (); +$table->head = array (); +$table->align = array (); +$table->style = array (); +$table->style[0] = 'vertical-align: top'; +$table->style[1] = 'vertical-align: top'; +$table->head[0] = __('Profile name'); +$table->head[1] = __('Group'); +$table->head[2] = __('Users'); +$table->align[2] = 'center'; +$table->size[0] = '34%'; +$table->size[1] = '33%'; +$table->size[2] = '33%'; + +$data = array (); +$data[0] = '
'; +$data[0] .= print_select (get_profiles (), 'profiles_id[]', '', '', '', + '', true, false, false, '', false, 'width: 100%'); +$data[1] = print_select_groups($config['id_user'], "UM", true, + 'groups_id[]', '', '', '', '', true, false, false, '', false, 'width: 100%'); +$data[2] = ''; +$users_profiles = ""; + +$data[2] .= print_select (array(), 'users_id[]', '', '', '', + '', true, true, true, '', false, 'width: 100%'); + + +array_push ($table->data, $data); + +print_table ($table); + +echo '
'; +print_input_hidden ('delete_profiles', 1); +print_submit_button (__('Delete'), 'del', false, 'class="sub delete"'); +echo '
'; + +echo '
'; + +unset ($table); + +echo ''; + +require_jquery_file ('form'); +require_jquery_file ('pandora.controls'); +?> + + diff --git a/pandora_console/godmode/massive/massive_operations.php b/pandora_console/godmode/massive/massive_operations.php index 58dc865e17..51f45c0424 100644 --- a/pandora_console/godmode/massive/massive_operations.php +++ b/pandora_console/godmode/massive/massive_operations.php @@ -32,13 +32,14 @@ enterprise_include ('godmode/massive/massive_operations.php'); $tab = (string) get_parameter ('tab', 'massive_agents'); $option = (string) get_parameter ('option', ''); - $options_alerts = array('add_alerts' => __('Massive alerts addition'), 'delete_alerts' => __('Massive alerts deletion'), 'add_action_alerts' => __('Massive alert actions addition'), 'delete_action_alerts' => __('Massive alert actions deletion'), 'enable_disable_alerts' => __('Massive alert enable/disable')); $options_agents = array('delete_agents' => __('Massive agents deletion')); +$options_users = array('add_profiles' => __('Massive profiles addition'), 'delete_profiles' => __('Massive profiles deletion')); + $options_modules = array('delete_modules' => __('Massive modules deletion'), 'edit_modules' => __('Massive modules edition'), 'copy_modules' => __('Massive modules copy')); @@ -61,6 +62,8 @@ if(in_array($option, array_keys($options_alerts))) { $tab = 'massive_alerts'; }elseif(in_array($option, array_keys($options_agents))) { $tab = 'massive_agents'; +}elseif(in_array($option, array_keys($options_users))) { + $tab = 'massive_users'; }elseif(in_array($option, array_keys($options_modules))) { $tab = 'massive_modules'; }elseif(in_array($option, array_keys($options_policies))) { @@ -79,6 +82,9 @@ switch($tab) { case 'massive_modules': $options = $options_modules; break; + case 'massive_users': + $options = $options_users; + break; case 'massive_policies': $options = $options_policies; break; @@ -93,6 +99,11 @@ $alertstab = array('text' => '' + . print_image ('images/group.png', true, array ('title' => __('Users operations'))) + . '', 'active' => $tab == 'massive_users'); + $agentstab = array('text' => '' . print_image ('images/bricks.png', true, array ('title' => __('Agents operations'))) . '', 'active' => $tab == 'massive_agents'); @@ -109,7 +120,8 @@ if ($policiestab == -1) $onheader = array('massive_agents' => $agentstab, 'massive_modules' => $modulestab, - 'massive_alerts' => $alertstab, 'policies' => $policiestab); + 'user_agents' => $userstab, 'massive_alerts' => $alertstab, + 'policies' => $policiestab); print_page_header (__('Massive operations'). ' » '. $options[$option], "images/sitemap_color.png", false, "", true, $onheader); @@ -137,6 +149,12 @@ switch ($option) { case 'enable_disable_alerts': require_once ('godmode/massive/massive_enable_disable_alerts.php'); break; + case 'add_profiles': + require_once ('godmode/massive/massive_add_profiles.php'); + break; + case 'delete_profiles': + require_once ('godmode/massive/massive_delete_profiles.php'); + break; case 'delete_agents': require_once ('godmode/massive/massive_delete_agents.php'); break;