{= # # # delete_profile.cfv # # include "templates.util.base_util"; include "templates.util.rbac.rbac_util"; include "templates.util.get_web_server_root_path"; include "templates.admin_pages.profiles.delete_profile_util"; include "templates.util.profiles.get_profile_data_util"; debug_message("\n\n#### delete_profile.cfv \n\n"); debug_message("\n" . node_as_string("v.fp") . "\n"); string session_id = volatile.session_id; bool is_valid_profile = v.fp.is_valid_profile; string profile_name = v.fp.profile_name; string page_token = v.fp.page_token; # Make sure the user has permission to delete this profile bool is_delete_permission = get_is_delete_profile_permission(profile_name); if (is_delete_permission and get_is_valid_page_token(session_id, "profiles", page_token)) then ( node profiles = "profiles"; string user_node_name; if (profiles?{profile_name}) then ( if (is_valid_profile) then ( string lai_dir = LOGANALYSISINFO_DIRECTORY; string web_server_root_dir = get_web_server_root_path(); node user; # # # Delete the profile # # # Note, erase_database() requires the profile node, # hence execute delete_node() after erase_database()! debug_message("#### delete_profile.cfv - erase_database() START \n"); # # # Delete the database # # erase_database(); # # # Delete the profile file # # delete_node(profiles{profile_name}); # # # # # Delete caches and dependencies # # # The deleted profile has to be handled/removed in: # - schedule.cfg # - users.cfg # - filters_cache/profile_name # - profiles_cache/profile_name # - users_cache/user_node_name/profiles/profile_name # - WebServerRoot/csv_export/username/profile_name # - WebServerRoot/graphs/profile_name # # # # Handle schedule handle_delete_profile_in_schedule(profile_name); # Handle users handle_delete_profile_in_users(profile_name); # Handle filters_cache handle_delete_profile_by_pathname(lai_dir . "filters_cache/" . profile_name); # Handle profiles_cache handle_delete_profile_by_pathname(lai_dir . "profiles_cache/" . profile_name); # Handle WebServerRoot/graphs/ handle_delete_profile_by_pathname(web_server_root_dir . "graphs/" . profile_name); # # Handle delete per user items (users_cache and WebServerRoot/csv_export/) # foreach user "users" ( user_node_name = node_name(user); # Handle users_cache handle_delete_profile_by_pathname(lai_dir . "users_cache/" . user_node_name . "/profiles/" . profile_name); # Handle WebServerRoot/csv_export/ handle_delete_profile_by_pathname(web_server_root_dir . "csv_export/" . user_node_name . "/" . profile_name); ); ) else ( # This is an invalid version 7 profile, we just delete the profile. delete_node(profiles{profile_name}); ); ); # # # Get fresh profile data # # bool is_root_admin = get_is_root_admin(); user_node_name = node_name(volatile.authenticated_user_node_path); string profiles_dat = get_profiles_dat(is_root_admin, user_node_name); int number_of_all_profiles = num_subnodes(profiles); # Includes also profiles for which the user has no access permission! string dat = "{"; dat .= add_json("profilesDb", profiles_dat, "obj"); dat .= add_json("numberOfAllProfiles", number_of_all_profiles, "int"); dat = close_json(dat); # # # Send response # # 'deleteProfileResponse(' . dat . ')'; ) else ( # No permission to view this resource (URL) display_no_permission_html(); ); debug_message("#### delete_profile.cfv END \n\n"); =}