# # # # # delete_profile_util.cfv # # # # # handle_delete_profile_by_pathname() # handle_delete_profile_in_users() # handle_delete_profile_in_schedule() # # # # # # # handle_delete_profile_by_pathname() # # # subroutine(handle_delete_profile_by_pathname( string pathname), ( # This deletes the given pathname by moving it to TemporaryFiles if the pathnamne exists # The pathname already includes the profile_name directory, i.e.: # C:/LogAnalysisInfo/profiles_cache/profile_name # C:/LogAnalysisInfo/filters_cache/profile_name if (file_exists(pathname)) then ( # Move pathname to TemporaryFiles directory string checksum = md5_digest(pathname . now() . now_us()); string temporary_files_pathname = LOGANALYSISINFO_DIRECTORY . "TemporaryFiles/DeleteProfileData_" . checksum; move_file(pathname, temporary_files_pathname); ); )); # # # # handle_delete_profile_in_users() # # # subroutine(handle_delete_profile_in_users( string profile_name), ( node user_item; node access_item; node access; node user_access_profiles; node profile_item; bool is_modified_users = false; foreach user_item "users" ( if (user_item?{"access"}) then ( access = user_item{"access"}; foreach access_item access ( if (access_item?{"profiles"} and (num_subnodes(access_item{"profiles"}) > 0)) then ( user_access_profiles = access_item{"profiles"}; foreach profile_item user_access_profiles ( if (@profile_item eq profile_name) then ( delete_node(profile_item); is_modified_users = true; ); ); ); ); ); ); if (is_modified_users) then ( # One or more profiles have been removed in users, save users save_node("users"); ); )); # # # # handle_delete_profile_in_schedule() # # # subroutine(handle_delete_profile_in_schedule( string profile_name), ( node schedule_item; node actions; node action_item; bool is_deleted_schedule_action = false; foreach schedule_item "schedule" ( if (schedule_item?{"actions"}) then ( actions = schedule_item{"actions"}; foreach action_item actions ( if (action_item?{"profile"} and (@action_item{"profile"} eq profile_name)) then ( # Delete the action of the deleted profile delete_node(action_item); is_deleted_schedule_action = true; ); ); ); ); if (is_deleted_schedule_action) then ( save_node("schedule"); ); ));