added on local at 2026-07-01 12:34:28
| 1 | package MODS::PTMatrix::Urls; | |
| 2 | ||
| 3 | ################################################################################################################################## | |
| 4 | # ______ ____ ____ ______ ______ ____ ___ __ ___ ______ _ __ ____ ____ __ __ _ __ _____ ____ | |
| 5 | # / ____// __ \ / __ \ / ____/ / ____// __ \ / | / |/ // ____/| | / // __ \ / __ \ / //_/ | | / /|__ / / __ \ | |
| 6 | # / / / / / // / / // __/ / /_ / /_/ // /| | / /|_/ // __/ | | /| / // / / // /_/ // ,< | | / / /_ < / / / / | |
| 7 | # / /___ / /_/ // /_/ // /___ / __/ / _, _// ___ | / / / // /___ | |/ |/ // /_/ // _, _// /| | | |/ / ___/ /_ / /_/ / | |
| 8 | # \____/ \____//_____//_____/ /_/ /_/ |_|/_/ |_|/_/ /_//_____/ |__/|__/ \____//_/ |_|/_/ |_| |___/ /____/(_)\____/ | |
| 9 | # | |
| 10 | # - Written by: Shawn Pickering | |
| 11 | # - shawn@shawnpickering.com | |
| 12 | ################################################################################################################################## | |
| 13 | use strict; | |
| 14 | ||
| 15 | #Load the random alpha numeric code generator | |
| 16 | use MODS::RandCode; | |
| 17 | my $randcode = new MODS::RandCode; | |
| 18 | ||
| 19 | sub new { | |
| 20 | my($class, %args) = @_; | |
| 21 | my $self = bless({}, $class); | |
| 22 | ||
| 23 | return $self; | |
| 24 | } | |
| 25 | ||
| 26 | ||
| 27 | sub urls{ | |
| 28 | #Append this to all url's so that pages aren't cached | |
| 29 | my $nocache = 'c=' . $randcode->generate(5); | |
| 30 | ||
| 31 | #Append this to all url's that we want to keep the url short and don't care about cache on | |
| 32 | my $cache = ''; | |
| 33 | ||
| 34 | my $url = ({ | |
| 35 | #################################################################################### | |
| 36 | ##URLs#######################################################DO NOT MODIFY########## | |
| 37 | #Public / marketing | |
| 38 | 'index' => qq~/index.cgi?$nocache~, | |
| 39 | 'about' => qq~/about.cgi?$nocache~, | |
| 40 | 'features' => qq~/features.cgi?$nocache~, | |
| 41 | 'pricing' => qq~/pricing.cgi?$nocache~, | |
| 42 | 'contact' => qq~/contact.cgi?$nocache~, | |
| 43 | 'privacy' => qq~/privacy.cgi?$nocache~, | |
| 44 | 'terms' => qq~/terms.cgi?$nocache~, | |
| 45 | 'faq' => qq~/faq.cgi?$nocache~, | |
| 46 | 'status' => qq~/status.cgi?$nocache~, | |
| 47 | 'four_oh_four' => qq~/404.cgi?$nocache~, | |
| 48 | ||
| 49 | #Auth | |
| 50 | 'login' => qq~/login.cgi?$nocache~, | |
| 51 | 'logout' => qq~/logout.cgi?$nocache~, | |
| 52 | 'signup' => qq~/signup.cgi?$nocache~, | |
| 53 | 'forgot_password' => qq~/forgot_password.cgi?$nocache~, | |
| 54 | 'reset_password' => qq~/reset_password.cgi?$nocache~, | |
| 55 | 'verify_email' => qq~/verify_email.cgi?$nocache~, | |
| 56 | 'twofa' => qq~/twofa.cgi?$nocache~, | |
| 57 | 'accept_invite' => qq~/accept_invite.cgi?$nocache~, | |
| 58 | 'onboarding' => qq~/onboarding.cgi?$nocache~, | |
| 59 | 'unsubscribe' => qq~/unsubscribe.cgi?$nocache~, | |
| 60 | ||
| 61 | #SSO | |
| 62 | 'sso_setup' => qq~/sso_setup.cgi?$nocache~, | |
| 63 | 'sso_login' => qq~/sso_login.cgi?$nocache~, | |
| 64 | 'sso_callback' => qq~/sso_callback.cgi?$nocache~, | |
| 65 | 'sso_action' => qq~/sso_action.cgi?$nocache~, | |
| 66 | 'scim' => qq~/scim.cgi?$nocache~, | |
| 67 | ||
| 68 | #Workspace home | |
| 69 | 'dashboard' => qq~/dashboard.cgi?$nocache~, | |
| 70 | 'my_tasks' => qq~/my_tasks.cgi?$nocache~, | |
| 71 | 'tickets' => qq~/tickets.cgi?$nocache~, | |
| 72 | 'projects' => qq~/projects.cgi?$nocache~, | |
| 73 | 'project' => qq~/project.cgi?$nocache~, | |
| 74 | 'project_action' => qq~/project_action.cgi?$nocache~, | |
| 75 | 'kanban' => qq~/kanban.cgi?$nocache~, | |
| 76 | 'gantt' => qq~/gantt.cgi?$nocache~, | |
| 77 | 'calendar' => qq~/calendar.cgi?$nocache~, | |
| 78 | 'time' => qq~/time.cgi?$nocache~, | |
| 79 | 'task' => qq~/task.cgi?$nocache~, | |
| 80 | 'task_action' => qq~/task_action.cgi?$nocache~, | |
| 81 | 'task_quick' => qq~/task_quick.cgi?$nocache~, | |
| 82 | 'task_types' => qq~/task_types.cgi?$nocache~, | |
| 83 | 'tasks_export' => qq~/tasks_export.cgi?$nocache~, | |
| 84 | 'tasks_import' => qq~/tasks_import.cgi?$nocache~, | |
| 85 | 'attach_action' => qq~/attach_action.cgi?$nocache~, | |
| 86 | 'custom_fields' => qq~/custom_fields.cgi?$nocache~, | |
| 87 | 'labels' => qq~/labels.cgi?$nocache~, | |
| 88 | 'search' => qq~/search.cgi?$nocache~, | |
| 89 | 'notifications' => qq~/notifications.cgi?$nocache~, | |
| 90 | ||
| 91 | #Insights | |
| 92 | 'reports' => qq~/reports.cgi?$nocache~, | |
| 93 | 'cost' => qq~/cost.cgi?$nocache~, | |
| 94 | 'cycle_time' => qq~/cycle_time.cgi?$nocache~, | |
| 95 | 'portfolio' => qq~/portfolio.cgi?$nocache~, | |
| 96 | 'workload' => qq~/workload.cgi?$nocache~, | |
| 97 | 'activity' => qq~/activity.cgi?$nocache~, | |
| 98 | 'risks' => qq~/risks.cgi?$nocache~, | |
| 99 | 'decisions' => qq~/decisions.cgi?$nocache~, | |
| 100 | 'forms' => qq~/forms.cgi?$nocache~, | |
| 101 | 'form' => qq~/form.cgi?$nocache~, | |
| 102 | 'automations' => qq~/automations.cgi?$nocache~, | |
| 103 | ||
| 104 | #Organization | |
| 105 | 'people' => qq~/people.cgi?$nocache~, | |
| 106 | 'team' => qq~/team.cgi?$nocache~, | |
| 107 | 'team_action' => qq~/team_action.cgi?$nocache~, | |
| 108 | 'team_member' => qq~/team_member.cgi?$nocache~, | |
| 109 | 'team_import' => qq~/team_import.cgi?$nocache~, | |
| 110 | 'departments' => qq~/departments.cgi?$nocache~, | |
| 111 | 'department_action' => qq~/department_action.cgi?$nocache~, | |
| 112 | 'permission_groups' => qq~/permission_groups.cgi?$nocache~, | |
| 113 | 'permission_group_action' => qq~/permission_group_action.cgi?$nocache~, | |
| 114 | 'email_inboxes' => qq~/email_inboxes.cgi?$nocache~, | |
| 115 | 'sla_policies' => qq~/sla_policies.cgi?$nocache~, | |
| 116 | 'api_keys' => qq~/api_keys.cgi?$nocache~, | |
| 117 | 'api' => qq~/api.cgi?$nocache~, | |
| 118 | 'source_integrations' => qq~/source_integrations.cgi?$nocache~, | |
| 119 | 'portal' => qq~/portal.cgi?$nocache~, | |
| 120 | 'portal_settings' => qq~/portal_settings.cgi?$nocache~, | |
| 121 | 'kb' => qq~/kb.cgi?$nocache~, | |
| 122 | ||
| 123 | #Account | |
| 124 | 'profile' => qq~/profile.cgi?$nocache~, | |
| 125 | 'preferences' => qq~/preferences.cgi?$nocache~, | |
| 126 | 'save_pref' => qq~/save_pref.cgi?$nocache~, | |
| 127 | 'email_preferences' => qq~/email_preferences.cgi?$nocache~, | |
| 128 | 'billing' => qq~/billing.cgi?$nocache~, | |
| 129 | 'billing_checkout' => qq~/billing_checkout.cgi?$nocache~, | |
| 130 | 'company' => qq~/company.cgi?$nocache~, | |
| 131 | 'ai_settings' => qq~/ai_settings.cgi?$nocache~, | |
| 132 | 'ai_slip_analysis' => qq~/ai_slip_analysis.cgi?$nocache~, | |
| 133 | ||
| 134 | #Support | |
| 135 | 'support' => qq~/support.cgi?$nocache~, | |
| 136 | 'support_thread' => qq~/support_thread.cgi?$nocache~, | |
| 137 | 'help' => qq~/help.cgi?$nocache~, | |
| 138 | 'report_abuse' => qq~/report_abuse.cgi?$nocache~, | |
| 139 | ||
| 140 | #Webhooks (no nocache - external callers) | |
| 141 | 'github_webhook' => qq~/github_webhook.cgi~, | |
| 142 | 'stripe_webhook' => qq~/stripe_webhook.cgi~, | |
| 143 | 'email_webhook' => qq~/email_webhook.cgi~, | |
| 144 | 'push_action' => qq~/push_action.cgi~, | |
| 145 | 'track' => qq~/track.cgi~, | |
| 146 | 't_pixel' => qq~/t.cgi~, | |
| 147 | ||
| 148 | #Admin (super_admin) | |
| 149 | 'admin_action' => qq~/admin_action.cgi?$nocache~, | |
| 150 | 'admin_users' => qq~/admin_users.cgi?$nocache~, | |
| 151 | 'admin_user' => qq~/admin_user.cgi?$nocache~, | |
| 152 | 'admin_team' => qq~/admin_team.cgi?$nocache~, | |
| 153 | 'admin_companies' => qq~/admin_companies.cgi?$nocache~, | |
| 154 | 'admin_company' => qq~/admin_company.cgi?$nocache~, | |
| 155 | 'admin_billing' => qq~/admin_billing.cgi?$nocache~, | |
| 156 | 'admin_earnings' => qq~/admin_earnings.cgi?$nocache~, | |
| 157 | 'admin_funnels' => qq~/admin_funnels.cgi?$nocache~, | |
| 158 | 'admin_traffic' => qq~/admin_traffic.cgi?$nocache~, | |
| 159 | 'admin_visitors' => qq~/admin_visitors.cgi?$nocache~, | |
| 160 | 'admin_discounts' => qq~/admin_discounts.cgi?$nocache~, | |
| 161 | 'admin_test_cards' => qq~/admin_test_cards.cgi?$nocache~, | |
| 162 | 'admin_emails' => qq~/admin_emails.cgi?$nocache~, | |
| 163 | 'admin_email_controls' => qq~/admin_email_controls.cgi?$nocache~, | |
| 164 | 'admin_email_schedules' => qq~/admin_email_schedules.cgi?$nocache~, | |
| 165 | 'admin_seo' => qq~/admin_seo.cgi?$nocache~, | |
| 166 | 'admin_metrics' => qq~/admin_metrics.cgi?$nocache~, | |
| 167 | 'admin_support' => qq~/admin_support.cgi?$nocache~, | |
| 168 | 'admin_config' => qq~/admin_config.cgi?$nocache~, | |
| 169 | 'admin_maintenance' => qq~/admin_maintenance.cgi?$nocache~, | |
| 170 | 'admin_maintenance_action' => qq~/admin_maintenance_action.cgi?$nocache~ | |
| 171 | ##URLs#######################################################DO NOT MODIFY########## | |
| 172 | #################################################################################### | |
| 173 | }); | |
| 174 | ||
| 175 | return $url; | |
| 176 | } | |
| 177 | ||
| 178 | 1; |