Files
opensourcepos/app/Language/ro/Config.php
Ollama 8da4aff262 fix(security): prevent command injection in sendmail path configuration
Add validation for the mailpath POST parameter to prevent command injection
attacks. The path is validated to only allow alphanumeric characters,
underscores, dashes, forward slashes, and dots.

- Required mailpath when protocol is "sendmail"
- Validates format for all non-empty mailpath values
- Blocks common injection vectors: ; | & ` $() spaces newlines
- Added mailpath_invalid translation to all 43 language files
- Simplified validation logic to avoid redundant conditions

Files changed:
- app/Controllers/Config.php: Add regex validation with protocol check
- app/Language/*/Config.php: Add mailpath_invalid error message (43 languages)
- tests/Controllers/ConfigTest.php: Unit tests for validation
2026-04-06 18:37:07 +00:00

333 lines
19 KiB
PHP

<?php
return [
"address" => "Adresa companiei",
"address_required" => "Adresa companiei este un câmp obligatoriu.",
"all_set" => "All file permissions are set correctly!",
"allow_duplicate_barcodes" => "Permiteți coduri de bare duplicate",
"apostrophe" => "apostrof",
"backup_button" => "Backup",
"backup_database" => "Rezervă de date",
"barcode" => "Barcode",
"barcode_company" => "Numele Companiei",
"barcode_configuration" => "Configurarea codului de bare",
"barcode_content" => "Conținutul codului de bare",
"barcode_first_row" => "Rândul 1",
"barcode_font" => "Font",
"barcode_formats" => "Formate de intrare",
"barcode_generate_if_empty" => "Generați dacă este gol.",
"barcode_height" => "Înălțime (px)",
"barcode_id" => "Element Id / Nume",
"barcode_info" => "Informații privind configurația codurilor de bare",
"barcode_layout" => "Formatul de coduri de bare",
"barcode_name" => "Nume",
"barcode_number" => "Cod de bare",
"barcode_number_in_row" => "Numar în rânduri",
"barcode_page_cellspacing" => "Afișați spațiul celular în pagină.",
"barcode_page_width" => "Afișați lățimea paginii",
"barcode_price" => "Preț",
"barcode_second_row" => "Rândul 2",
"barcode_third_row" => "Rândul 3",
"barcode_tooltip" => "Avertisment: această caracteristică poate determina importul sau crearea elementelor duplicate. Nu utilizați dacă nu doriți coduri de bare duplicat.",
"barcode_type" => "Tipul codului de bare",
"barcode_width" => "Lățime (px)",
"bottom" => "Subsol",
"cash_button" => "",
"cash_button_1" => "",
"cash_button_2" => "",
"cash_button_3" => "",
"cash_button_4" => "",
"cash_button_5" => "",
"cash_button_6" => "",
"cash_decimals" => "Decimale de numerar",
"cash_decimals_tooltip" => "Dacă decimalele în numerar și decimalele monetare sunt aceleași, atunci nu va avea loc nicio rotunjire a numerarului.",
"cash_rounding" => "Rotunjire numerar",
"category_dropdown" => "",
"center" => "Centru",
"change_apperance_tooltip" => "",
"comma" => "virgula",
"company" => "Numele Companiei",
"company_avatar" => "",
"company_change_image" => "Schimbați imaginea",
"company_logo" => "Sigla companiei",
"company_remove_image" => "Eliminați imaginea",
"company_required" => "Numele companiei este obligatoriu",
"company_select_image" => "Selectati imaginea",
"company_website_url" => "Site-ul Web al companie nu este un URL valid (http://...).",
"country_codes" => "Cod tara",
"country_codes_tooltip" => "Lista separata prin virgula a codurilor tarilor pentru cautarea adresei.",
"currency_code" => "",
"currency_decimals" => "Zecimale Valuta",
"currency_symbol" => "Simbol Valuta",
"current_employee_only" => "",
"customer_reward" => "Recompensa",
"customer_reward_duplicate" => "Recompensa trebuie sa fie unica",
"customer_reward_enable" => "Activatie Recompensare Client",
"customer_reward_invalid_chars" => "Recompensa nu poate contine '_'",
"customer_reward_required" => "Recompensa este un camp obligatoriu",
"customer_sales_tax_support" => "Suport Clienti privind Taxele pe Vanzari",
"date_or_time_format" => "Filtru Data si Timp",
"datetimeformat" => "Format Data si Timp",
"decimal_point" => "",
"default_barcode_font_size_number" => "",
"default_barcode_font_size_required" => "",
"default_barcode_height_number" => "",
"default_barcode_height_required" => "",
"default_barcode_num_in_row_number" => "",
"default_barcode_num_in_row_required" => "",
"default_barcode_page_cellspacing_number" => "",
"default_barcode_page_cellspacing_required" => "",
"default_barcode_page_width_number" => "",
"default_barcode_page_width_required" => "",
"default_barcode_width_number" => "",
"default_barcode_width_required" => "",
"default_item_columns" => "",
"default_origin_tax_code" => "",
"default_receivings_discount" => "",
"default_receivings_discount_number" => "",
"default_receivings_discount_required" => "",
"default_sales_discount" => "",
"default_sales_discount_number" => "",
"default_sales_discount_required" => "",
"default_tax_category" => "",
"default_tax_code" => "",
"default_tax_jurisdiction" => "",
"default_tax_name_number" => "",
"default_tax_name_required" => "",
"default_tax_rate" => "",
"default_tax_rate_1" => "",
"default_tax_rate_2" => "",
"default_tax_rate_3" => "",
"default_tax_rate_number" => "",
"default_tax_rate_required" => "",
"derive_sale_quantity" => "",
"derive_sale_quantity_tooltip" => "",
"dinner_table" => "",
"dinner_table_duplicate" => "",
"dinner_table_enable" => "",
"dinner_table_invalid_chars" => "",
"dinner_table_required" => "",
"dot" => "",
"email" => "",
"email_configuration" => "",
"email_mailpath" => "",
"email_protocol" => "",
"email_receipt_check_behaviour" => "",
"email_receipt_check_behaviour_always" => "",
"email_receipt_check_behaviour_last" => "",
"email_receipt_check_behaviour_never" => "",
"email_smtp_crypto" => "",
"email_smtp_host" => "",
"email_smtp_pass" => "",
"email_smtp_port" => "",
"email_smtp_timeout" => "",
"email_smtp_user" => "",
"enable_avatar" => "",
"enable_avatar_tooltip" => "",
"enable_dropdown_tooltip" => "",
"enable_new_look" => "",
"enable_right_bar" => "",
"enable_right_bar_tooltip" => "",
"enforce_privacy" => "",
"enforce_privacy_tooltip" => "",
"fax" => "",
"file_perm" => "There are problems with file permissions please fix and reload this page.",
"financial_year" => "",
"financial_year_apr" => "",
"financial_year_aug" => "",
"financial_year_dec" => "",
"financial_year_feb" => "",
"financial_year_jan" => "",
"financial_year_jul" => "",
"financial_year_jun" => "",
"financial_year_mar" => "",
"financial_year_may" => "",
"financial_year_nov" => "",
"financial_year_oct" => "",
"financial_year_sep" => "",
"floating_labels" => "",
"gcaptcha_enable" => "",
"gcaptcha_secret_key" => "",
"gcaptcha_secret_key_required" => "",
"gcaptcha_site_key" => "",
"gcaptcha_site_key_required" => "",
"gcaptcha_tooltip" => "",
"general" => "",
"general_configuration" => "",
"giftcard_number" => "",
"giftcard_random" => "",
"giftcard_series" => "",
"image_allowed_file_types" => "",
"image_max_height_tooltip" => "",
"image_max_size_tooltip" => "",
"image_max_width_tooltip" => "",
"image_restrictions" => "",
"include_hsn" => "",
"info" => "",
"info_configuration" => "",
"input_groups" => "",
"integrations" => "",
"integrations_configuration" => "",
"invoice" => "",
"invoice_configuration" => "",
"invoice_default_comments" => "",
"invoice_email_message" => "",
"invoice_enable" => "",
"invoice_printer" => "",
"invoice_type" => "",
"is_readable" => "",
"is_writable" => "is writable, but the permissions are higher than 750.",
"item_markup" => "",
"jsprintsetup_required" => "",
"language" => "",
"last_used_invoice_number" => "",
"last_used_quote_number" => "",
"last_used_work_order_number" => "",
"left" => "",
"license" => "",
"license_configuration" => "",
"line_sequence" => "",
"lines_per_page" => "",
"lines_per_page_number" => "",
"lines_per_page_required" => "",
"locale" => "",
"locale_configuration" => "",
"locale_info" => "",
"location" => "",
"location_configuration" => "",
"location_info" => "",
"login_form" => "",
"logout" => "",
"mailchimp" => "",
"mailchimp_api_key" => "",
"mailchimp_configuration" => "",
"mailchimp_key_successfully" => "",
"mailchimp_key_unsuccessfully" => "",
"mailchimp_lists" => "",
"mailchimp_tooltip" => "",
"message" => "",
"message_configuration" => "",
"msg_msg" => "",
"msg_msg_placeholder" => "",
"msg_pwd" => "",
"msg_pwd_required" => "",
"msg_src" => "",
"msg_src_required" => "",
"msg_uid" => "",
"msg_uid_required" => "",
"multi_pack_enabled" => "",
"no_risk" => "No security/vulnerability risks.",
"none" => "",
"notify_alignment" => "",
"number_format" => "",
"number_locale" => "",
"number_locale_invalid" => "",
"number_locale_required" => "",
"number_locale_tooltip" => "",
"os_timezone" => "",
"ospos_info" => "",
"payment_options_order" => "",
"perm_risk" => "Permissions higher than 750 leaves this software at risk.",
"phone" => "",
"phone_required" => "",
"print_bottom_margin" => "",
"print_bottom_margin_number" => "",
"print_bottom_margin_required" => "",
"print_delay_autoreturn" => "",
"print_delay_autoreturn_number" => "",
"print_delay_autoreturn_required" => "",
"print_footer" => "",
"print_header" => "",
"print_left_margin" => "",
"print_left_margin_number" => "",
"print_left_margin_required" => "",
"print_receipt_check_behaviour" => "",
"print_receipt_check_behaviour_always" => "",
"print_receipt_check_behaviour_last" => "",
"print_receipt_check_behaviour_never" => "",
"print_right_margin" => "",
"print_right_margin_number" => "",
"print_right_margin_required" => "",
"print_silently" => "",
"print_top_margin" => "",
"print_top_margin_number" => "",
"print_top_margin_required" => "",
"quantity_decimals" => "",
"quick_cash_enable" => "",
"quote_default_comments" => "",
"receipt" => "",
"receipt_category" => "",
"receipt_configuration" => "",
"receipt_default" => "",
"receipt_font_size" => "",
"receipt_font_size_number" => "",
"receipt_font_size_required" => "",
"receipt_info" => "",
"receipt_printer" => "",
"receipt_short" => "",
"receipt_show_company_name" => "",
"receipt_show_description" => "",
"receipt_show_serialnumber" => "",
"receipt_show_tax_ind" => "",
"receipt_show_taxes" => "",
"receipt_show_total_discount" => "",
"receipt_template" => "",
"receiving_calculate_average_price" => "",
"recv_invoice_format" => "",
"register_mode_default" => "",
"report_an_issue" => "",
"return_policy_required" => "",
"reward" => "",
"reward_configuration" => "",
"right" => "",
"sales_invoice_format" => "",
"sales_quote_format" => "",
"mailpath_invalid" => "",
"saved_successfully" => "",
"saved_unsuccessfully" => "",
"security_issue" => "Security Vulnerability Warning",
"server_notice" => "Please use the below info for issue reporting.",
"service_charge" => "",
"show_due_enable" => "",
"show_office_group" => "",
"statistics" => "",
"statistics_tooltip" => "",
"stock_location" => "",
"stock_location_duplicate" => "",
"stock_location_invalid_chars" => "",
"stock_location_required" => "",
"suggestions_fifth_column" => "",
"suggestions_first_column" => "",
"suggestions_fourth_column" => "",
"suggestions_layout" => "",
"suggestions_second_column" => "",
"suggestions_third_column" => "",
"system_conf" => "Setup & Conf",
"system_info" => "System Info",
"table" => "",
"table_configuration" => "",
"takings_printer" => "",
"tax" => "",
"tax_category" => "",
"tax_category_duplicate" => "",
"tax_category_invalid_chars" => "",
"tax_category_required" => "",
"tax_category_used" => "",
"tax_configuration" => "",
"tax_decimals" => "",
"tax_id" => "",
"tax_included" => "",
"theme" => "",
"theme_preview" => "",
"thousands_separator" => "",
"timezone" => "",
"timezone_error" => "",
"top" => "",
"use_destination_based_tax" => "",
"user_timezone" => "",
"website" => "",
"wholesale_markup" => "",
"work_order_enable" => "",
"work_order_format" => "",
];