SKYHAWK AI DEBUG REPORT
Task: Deep read-only reconciliation of Generic Intake upload-history truth
Generated: 2026-08-31T19:52:03+00:00
Report-ID: 20260831T195202Z-1605488
Archive-URL: https://skyhawk.org/downloads/chatgpt-debug-20260831T195202Z-1605488.txt
Host: s19522.use2.stableserver.net
Working directory: /home/darwus/drupalbeta/web
Drupal root: /home/darwus/drupalbeta/web
===== PRE-FLIGHT =====
MODE=READ_ONLY_EVIDENCE_AUDIT
DRUPAL_CONTENT_MUTATION=NO
DATABASE_MUTATION=NO
APPLICATION_SOURCE_MUTATION=NO
TOKEN_CREATION=NO
UPLOAD_EXECUTION=NO
REFERENCE_MODEL=ALIAS_TO_NODE_TO_ACTUAL_BODY_READ
REPORT_MODEL=TIMESTAMPED_IMMUTABLE_REPORT_ID
LATEST_MODEL=REPLACEABLE_HANDOFF_ONLY
BACKUP_REQUIRED=NO
===== ACTUAL REFERENCE BODY READ =====
No syntax errors detected in /tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/read-references.php
RULES_NID=49418
RULES_BODY_READ=PASS
RULES_BODY_BYTES=56104
RULES_BODY_SHA256=b8bfc47aa6415c18669c8e38ddbd21c85adfeb9d218e141474e0ecb7e71d603a
GENERIC_NID=49455
GENERIC_BODY_READ=PASS
GENERIC_BODY_BYTES=27319
GENERIC_BODY_SHA256=42fe77fbc0a2983d5c83237f01337c6a0f4b9d408066dba2594b610aff593d6d
LOSTD_NID=2479
LOSTD_BODY_READ=PASS
LOSTD_BODY_BYTES=8126
LOSTD_BODY_SHA256=d928bb9757de22e7eb712584e84d1bd440f84322080414554578f6dd8a245b06
ENVIRONMENT_NID=49461
ENVIRONMENT_BODY_READ=PASS
ENVIRONMENT_BODY_BYTES=50832
ENVIRONMENT_BODY_SHA256=5f4c896877d0c02e7453afcd817ae9e53b5058466ed3de8233b2ce3c8d937d85
REFERENCE_BODY_READ_COMPLETE=PASS
===== RELEVANT REFERENCE TEXT =====
===== RULES RELEVANT TEXT =====
1:ACTIVE RULES - READ BEFORE SKYHAWK WORKPurpose: These Rules are the durable operating contract for Skyhawk.org work. They exist to preserve progress, reduce repeated mistakes, and make external behavior from a probabilistic AI as deterministic and recoverable as practical.Mandatory Execution ContractEvery executable Skyhawk.org code block must begin with this literal first line:# RULES + GERMANE REFERENCE READIf that line is absent, the block is procedurally invalid and should not be run.Before writing executable code, reread this ACTIVE RULES block and the CURRENT STATE block of the germane project reference. Read deeper supporting sections only when they are relevant to the task.Inspect actual current state before modification when state is uncertain.Apply KISS. Use the simplest maintainable solution that satisfies the proven requirement. Complexity requires evidence.Prefer Drupal core, configuration, Views, and maintained contributed functionality before custom mechanisms.Do not reopen accepted work without new contradictory evidence.When one requirement fails, investigate that requirement rather than reaudit or redesign unrelated working functionality.Test user and business outcomes first. Inspect internal transitions only when an outcome fails and only deeply enough to identify and repair that failure.When an existing owner is identifiable, know and replace cleanly rather than append competing code or configuration.After every result, determine whether current truth actually changed. Update the Rules or project reference only when needed.
2-Authorization Establishment and Exercise
3-
4- Do not repeat an authorization ceremony when authoritative, scoped responsibility has already been established and remains valid.
5- Use durable authoritative principal identity for continuing responsibility. Tokens and verification links are mechanisms for establishing or verifying authority, not permanent identities.
6- Routine consequential actions must still re-check authenticated identity, current eligibility required by the product, scoped authority, persisted state, and the independent postconditions of the action.
7- If current eligibility cannot be determined from an authoritative source, do not invent or infer it. Restrict the operation to an explicitly accepted transitional fixture or stop until the authoritative contract is available.
--
180-6. Standard AI Debug Channel
181-
182-The debug channel exists to eliminate routine copy/paste between Termux, Windows, Mac, mobile devices, and the AI.
183-
184-Authoritative current-report URL: https://skyhawk.org/downloads/chatgpt-debug-latest.txt.
185-
186:The authoritative latest file contains the complete current report, not merely a pointer. Each diagnostic run also creates an immutable archive report named with a unique Report-ID, such as /downloads/chatgpt-debug-20260824T164135Z-698130.txt. The immutable archive is retained as historical execution evidence, but the AI normally reads the fixed latest URL directly.
187-
188-Publish atomically. Build the complete report in a temporary file. After the report is finished, move it into the immutable archive filename, then copy that completed archive to a temporary latest filename and atomically move the temporary latest file into /downloads/chatgpt-debug-latest.txt. Never stream a still-changing report directly into either public filename.
189-
190-The complete report must begin with:
191-
192-SKYHAWK AI DEBUG REPORT
193-Task:
194-Generated:
195:Report-ID:
196:Archive-URL: https://skyhawk.org/downloads/chatgpt-debug-.txt
197-Host:
198-Working directory:
199-Drupal root: /home/darwus/drupalbeta/web
200-
201-===== PRE-FLIGHT =====
202-...
--
207-===== VERIFICATION =====
208-...
209-===== ERRORS =====
210-...
211-===== END =====
212-
213:Freshness is mandatory. After Gene confirms that a report was updated, the AI reads chatgpt-debug-latest.txt and validates Task:, Generated:, Report-ID:, host, working directory, and Drupal root against the current work before relying on it.
214-
215-If the first retrieval is stale, that is a retrieval-layer failure, not evidence that the A2 command failed. Retry the known latest URL with a cache-busting query value when the retrieval tool permits it. Do not report server failure merely because an intermediary served an older object.
216-
217-Do not ask Gene to paste terminal output merely because retrieval is stale. Manual copy/paste is a fallback only when the fixed latest-report channel cannot be read after reasonable fresh-retrieval attempts.
218-
219-Never place secrets in public debug reports. Do not include passwords, private keys, session cookies, API keys, active upload tokens, personal data, database credentials, or other sensitive material. Redact before publication.
220-
221-Capture enough evidence to determine the next state, not thousands of irrelevant lines. Use the older A2-to-Windows report-transfer workflow only when Gene actually needs a local file.Debug Evidence Promotion
222-
223-
224-Promote the relevant final evidence automatically. Every diagnostic or test block must finish by placing the evidence that determines the next state into /downloads/chatgpt-debug-latest.txt. Gene must not be required to run a second copy/promote command after the test.
225-
226:Keep immutable evidence separately. Installation or diagnostic runs continue to create their immutable Report-ID archive. A temporary live-event stream may use its own fixed file while the test is occurring, but when the test produces the evidence needed for the next decision, that evidence must be atomically promoted to chatgpt-debug-latest.txt.
227-
228-The fixed latest URL is the normal machine handoff. After Gene reports that a command or requested test is complete, the AI should retrieve https://skyhawk.org/downloads/chatgpt-debug-latest.txt itself, force freshness when possible, and validate the contents before asking Gene for output. The immutable archive is fallback evidence, not a routine human relay requirement.
229-
230-Live browser instrumentation must self-report. When a browser/device action is the only human-dependent step, the observer or diagnostic mechanism must capture and publish the resulting evidence automatically. Gene's role should end with performing the irreducible device action, such as choosing files on the Pixel.
231-
232-Do not overwrite useful evidence prematurely. A subsequent installation report, smoke test, cleanup action, or unrelated diagnostic must not replace chatgpt-debug-latest.txt before the AI has consumed the evidence from the just-completed functional test.
--
460-Automation must explicitly use proven executables and environment facts rather than depend on interactive aliases or PATH behavior unless that behavior itself is the intended, proven mechanism.
461-Shared-hosting work must remain within the authorized user/account/project boundary unless the human explicitly authorizes a broader change that the host permits.
462-
463-
464-3. Evidence Automatically Controls the Next Step
465-
466:When executable work creates an authoritative or immutable report, the AI must retrieve and read it automatically before diagnosis or further executable work.
467-The human must never have to tell the AI to read evidence generated by the AI's own workflow.
468-Failure diagnosis must come from actual evidence, not intended behavior, memory, assumptions or footer wording.
469-When only one safe evidence-supported AI-owned next action remains, the AI must provide that executable action automatically in the same response. The human is not required to ask "next."
470-
471-
472-4. A Response Cannot Promise Its Own Missing Work
--
475-A response may stop only for genuine human judgment/action, unavailable required evidence, a safety/authorization boundary, or completed work.
476-Writing "NEXT: AI will provide code" without providing the code is a failure.
477-
478-
479-5. Executable Blocks Must Fail Closed
480-
481:Every executable block must begin with the literal first line # RULES + GERMANE REFERENCE READ.
482-AI-generated blocks must use control flow that is valid for the actual shell/context and mechanically prevents later mutating steps after a failed prerequisite.
483-Do not use top-level shell constructs that cannot stop the running context. Test shell syntax before mutation when practical.
484-PASS, FAIL, UPDATE REQUIRED, BACKUP REQUIRED and NEXT must reflect gates that actually completed. Intended results never override execution evidence.
485-After a failure, repair the proven failure only. Do not reopen completed work or redesign unrelated components.
486-
487-
===== GENERIC RELEVANT TEXT =====
1-
2-
3:Event Framework - Agreed First Consumer of Generic Intake
4-
5-Status: Design frozen for first Reunion/BOD Meeting implementation.
6-
7:Generic Intake remains the common transport and processing layer.
8-The first reusable consumer is an Event framework, initially proven
9-against Reunion and BOD Meeting workflows.
10-
11-Bootstrap, Durable Authority, and Reunion Continuity
12-
13-
14-For Reunion source updates, the contributor filename is provenance and presentation metadata, not semantic authority. Acceptance must not require a month, year, Event name, or other business meaning to be encoded in the filename. The workflow determines the target Event; exactly one real PDF and the applicable authorization, duplicate-content, persistence, and public-verification gates determine acceptance. Skyhawk may use a deterministic internal stored path while preserving the original contributor filename.
15- A Reunion benefit is initiated by the Association member who accepts responsibility for it. Normal future design requires that member to be authenticated.
16- The authenticated Drupal UID is the durable identity. Account email is the authoritative contact value presented from Drupal; a changed email must be verified before becoming authoritative.
17: Once responsibility has been established, routine Reunion newsletter/source updates are performed through authenticated Ready Room access. A new Generic Intake token is not required for each update.
18- Existing token/request records remain immutable historical evidence of how earlier authority was established. The 2026 A-4 JULY bootstrap remains token-established history.
19- Each consequential Reunion update records the executing UID, time, previous current file, resulting current file, and verification outcome. Drupal revision history is preferred where it provides that evidence without another custom tracking subsystem.
20- Current Association membership is required to exercise production Reunion authority. Reliable generalized current-member eligibility must use the authoritative membership state after the documented roster reconciliation; it must not be guessed from unrelated data.
21- Each durable Reunion Unit has one primary accountable current member and at least one additional current-member continuity contact by the start of the Reunion. Additional authorized helpers may be supported.
22- The Reunion Unit persists across successive reunion occurrences. A future reunion is a new occurrence associated with the same durable Unit rather than an overwrite of an earlier reunion occurrence.
23- Reunion photographs and historical material are retained and displayed for their historical and sentimental value. Loss of a responsible member does not automatically delete public history.
24- If all eligible responsible contacts are lost, the Association determines succession and continued stewardship.
25- Existing agreed reminder behavior remains unchanged. Reminders prompt authorized members to maintain their existing Reunion relationship; they do not recreate authority.
26- The model should remain reusable for other future member-supported benefits without prematurely constructing a universal custom framework.
27-Source-Material Workflow
28-
29-
30: The responsible authenticated member may provide Reunion source material either by uploading one ordinary source document through Drupal core managed_file or by pasting source text directly.
31- Uploaded source intake remains format-agnostic. PDF, DOC/DOCX, TXT and other ordinary source documents are not assigned business meaning from their filename or extension. Normal Drupal and hosting safety constraints still apply.
32- Pasted text is stored directly as submitted source content. The system does not manufacture a fake text file merely to force pasted material through a file-upload abstraction.
33- The submitted source is authoritative input. Parsing or model extraction produces proposed structured facts only. Extraction failure does not invalidate an otherwise preserved source.
34- A new self-service Reunion request creates an unpublished Reunion Event draft owned by the authenticated requester. That draft is the durable occurrence identity; later parsing/review updates the same entity rather than creating a duplicate Event.
35- General production activation still requires authoritative current-membership eligibility and the required primary/continuity-member relationship. Until the membership-roster reconciliation provides that deterministic contract, creation of a private draft does not itself grant publication/update authority.
36- Replacement/update sources reconcile the existing Event. Prior accepted sources and relevant source history remain associated with the same Event.
--
151-Success, information and error/action-required messages remain
152-inline, subdued and aesthetically integrated, but positioned and
153-styled so that a user is unlikely to miss required action. Generic
154-Drupal messenger popups are not the target UX for these custom
155-member-facing workflows.
156-
157:CURRENT STATE - GENERIC INTAKE SYSTEMProject: Generic Intake SystemStatus: In developmentUltimate goal: A self-service, reusable, aesthetically integrated intake framework that lets authorized nontechnical Ready Room users create purpose-specific public file requests without webmaster assistance. The underlying upload engine remains generic for future uses.Current accepted functionality:Drupal core managed_file owns automatic initial file transfer.Generic file acceptance is proven. Format-specific diagnosis is closed absent contradictory evidence.Token-specific private storage under private://uploads/[token]/ is proven.Finish submission and permanent-file finalization are proven.Reusable token behavior is proven.The current Pixel/Chrome public upload presentation is accepted.The redundant generic Upload title is closed work.Public Drupal status-popup behavior was corrected toward the established inline PageMessage pattern.Accepted request/invitation gate: real Ready Room testing proved explicit recipient routing, request-data persistence, the canonical https://skyhawk.org/upload/{token} invitation, the same stored request instructions in the actual email and public upload page, and on-page Ready Room request confirmation. Accepted by Report-ID 20260830T161100Z-2299062. Current implementation slice: prove the shared Event framework with the real 2026 A-4 Skyhawk Reunion corpus. JULY creates exactly one Event; AUGUST reconciles that same Event; SEPTEMBER reconciles the same Event to the current pre-event state while preserving prior updates. No duplicate Event nodes.Next implementation principle: preserve the proven uploader/finalization engine and evolve the surrounding request-management system. Do not rewrite the working upload path merely to implement the broader framework.Closed work: extension and MIME enumeration, image-versus-video diagnosis, synthetic upload triggering, custom serializer/queue transfer experiments, generic Upload page title, and repeated reproving of accepted core transfer/finalization behavior.Reopen closed work only when: new contradictory functional evidence demonstrates that the accepted behavior is no longer true.Current Agreed Product DecisionsThe Ready Room menu links directly to an Upload Requests dashboard. Individual public requests do not become menu entries.Granular Drupal permissions, assigned to roles, govern creation, management, reassignment, lifecycle actions, viewing submissions, and permanent deletion.Request-specific instructions are entered once and dynamically reused in both the invitation email and public upload page. The live page is authoritative when instructions change.The underlying uploader remains format-agnostic even when a request expects ZIP files, photographs, video, documents, or other material.Public size language uses industry-standard decimal MB where 1 MB equals 1,000,000 bytes, plus the exact comma-separated byte count where useful.The configured limit is per individual file, not the aggregate of multiple files in a submission.Large collections are split among multiple files or ZIP archives rather than reducing original photo or video quality merely to fit a limit.Removal before Finish submission is required. Each file gets a clear individual Remove action rather than Drupal selection checkboxes.The pre-finish manifest shows filename, MB, exact bytes, status, and Remove, plus file count and aggregate size.Resumable transfer is desirable for large files if a maintained Drupal-compatible solution can provide it simply. Do not build a custom resumable-upload platform.SA controls stored/internal filenames for sortable, collision-resistant recovery. Original contributor filenames remain preserved as metadata. Database fields, not filename parsing, remain authoritative for Views.Each request has an immutable human-friendly ID and each Finish submission has a batch identity.Useful provenance is retained, including original/generated filename, request, batch, known source/contributor information, timestamps, size, and relevant supplied metadata.Exact duplicate hashes may be retained for integrity and later duplicate identification, but exact duplicates are not automatically rejected because provenance can differ.The responsible party determines the intended disposition of each request. Receipt and automatic publication are separate concepts.Original files are preserved by default, while storage and retention policy may be revisited if storage becomes a material constraint.ZIP preservation or extraction depends on purpose, permissions, and downstream workflow rather than one universal rule.Copyright remains with whoever legally owns it. Upload does not itself transfer copyright to SA.Contributors should represent, to the best of their knowledge, that they are entitled to provide the material and are not knowingly violating another persons rights.Applicable photo policy grants SA appropriate continuing non-exclusive permission to preserve, reproduce, migrate or convert, adapt for presentation, publish, and use contributed material in Association activities and publications.SA remains the sole arbiter of whether and under what conditions photographs administered or distributed through the SA website are provided or authorized for third-party use, without claiming copyright SA does not own.Known photographer/source and SA credit may both be used publicly as appropriate, while full provenance remains preserved internally.The upload system does not ask contributors to manage future contact requests. SA may forward a legitimate contact request to the known owner/source. The requester is told that no response within the defined period means no permission or contact. Silence is never consent.Photo-oriented requests may support both a batch description and optional per-photo descriptions plus other appropriate configurable metadata.The exact applicable rights/agreement version, request, batch, and acceptance time are retained.The existing photo-contribution workflow is superseded only after the generic framework proves equivalent or better required functionality.Successful submission normally produces one internal summary per completed batch.Requests may generate up to two sensible expiration reminders, but any successful submission cancels outstanding reminder prompting for that request.The system does not automatically nag the contributor. The creator can resend the active request and current dynamically generated instructions.Successful received material is not automatically deleted. Truly abandoned temporary material may be cleaned up conservatively under documented policy.Arbitrary contributed files are treated as untrusted until appropriately reviewed or scanned. Prefer a simple maintained scanning mechanism rather than custom antivirus infrastructure.Desktop, tablet, and mobile are supported where practical. Device parity must not make important functionality unreasonably complex or impossible.After Finish submission, show a meaningful receipt before offering Upload another batch while the request remains active.Errors remain inline and explain what happened, why, and what the contributor should do. Successfully transferred files are not needlessly retransmitted because another file failed.KISS governs implementation.Implementation order: request data model and Ready Room dashboard; shared instructions and email workflow; public manifest/removal/size/receipt/error UX; naming/batch/history/accounting/provenance/hash; permissions/expiration/reminders/lifecycle; then evaluate maintained resumable upload and malware scanning; replace photo-contribute only after parity is proven.Deterministic AI instruction: routine work on this project must begin by rereading the ACTIVE RULES block and this CURRENT STATE block. Deeper historical or diagnostic material is supporting evidence and must not override current accepted truth unless new evidence changes that truth.
158-Upload Token System
159-
160-This is the authoritative reference for the generic public upload-token product implemented in skyhawk_site_fixes.
161-
162-Architecture
163-
164-
165-Public route: /upload/{token}.
166-Admin route: /admin/skyhawk/upload-tokens.
167-The public route is owned by UploadTokenForm.
168:Drupal core managed_file owns file selection, AJAX transfer, validation, and temporary file entities.
169-Files are stored under private://uploads/[token]/.
170-No custom synthetic mouse event or parallel direct-upload controller participates in the live product.
171-
172-
173-Public Upload Page Workflow
174-
175-The public page has no redundant generic Upload page title. Its identifying heading is Upload Files: [label].
176-The secret token value is never displayed.
177:Selecting files is the upload action. Drupal core managed_file immediately starts AJAX transfer from the file-input change event.
178-Successful initial uploads become temporary Drupal managed files under private://uploads/[token]/.
179:The final action is Finish submission.
180-Skyhawk custom-form results never use Drupal messenger/status popups. Upload/finalization results render inline on the form using the established PageMessageTrait pattern required by Tier-1 Rule 8.3.
181-
182-Token Lifecycle
183-
184-
185-A token is valid when it exists, has status active, and has not expired.
--
193-Upload Rules
194-
195-
196-Multiple files may be selected.
197-Maximum individual file size is 511 MiB (535,822,336 bytes).
198-The hosting transport ceiling remains 512 MiB for an HTTP POST, so exceptionally large batches may need to be selected/uploaded separately even though each individual file is legal.
199:After Drupal receives temporary managed files, final submission makes them permanent, records each file in skyhawk_upload_file, increments cumulative file accounting, and sends the configured batch notification.
200-Completion notifications contain only the files finalized in that batch, not every historical file associated with the token.
201-
202-
203-Administration
204-
205-
--
215-
216-The old UploadTokenController and upload_token_mobile_fix.js are retired into the timestamped replacement backup rather than destroyed during initial acceptance testing.
217-
218-Functional acceptance remains pending until the Pixel test verifies: legal multi-file upload, final submission, private storage, history rows, notification, reuse of the same token, explicit revocation, expiry rejection, and oversize rejection.
219-
220-Current Functional State
221:Generic initial upload: ACCEPTED. Drupal core managed_file selection and automatic AJAX transfer to token-scoped private storage are proven. File-format diagnosis is closed.
222:Finish submission permanent-file transition: ACCEPTED. Direct Pixel testing proved selection, automatic upload, Finish submission, permanent managed-file state in private://uploads/[token]/, and reset of the form for another batch.
223-Public upload-page UX: ACCEPTED on Pixel/Chrome. The redundant generic Upload title is absent. Upload Files: [label] remains as the identifying heading. The repaired public-page presentation has passed direct browser inspection. This branch is closed absent contradictory evidence.
224:Current acceptance boundary: upload history. The first remaining unproven transition is whether Finish submission creates the required skyhawk_upload_file history row for each finalized file. Do not reopen generic upload, permanent-file finalization, or the accepted Pixel UX while resolving history.
225-
226-Current Regression Token
227-No token label is permanently reserved as the regression token. Use a currently active, unexpired test token from the existing token system. Do not create a replacement token merely because an upload test fails.
228-
229-Reunion Keeper Communication and Acknowledgment
230-
===== LOSTD RELEVANT TEXT =====
1-
2-
3-LOST-D
4-
5:Current implementation slice: The 2026 A-4 acceptance corpus remains complete on Event 49464 with JULY and AUGUST retained as history and SEPTEMBER current. Reunion self-service source intake and Request a Reunion are installed. The established Ready Room management destination is My Reunion Events; the redundant My Reunions entry is retired. The next consequential boundary is the proof-of-concept keeper handoff: verify the intended primary and continuity member email/account relationships first. Do not rename Event 49464, reassign it, change authoritative account email, establish keeper authority, or send keeper instructions until those identity/email checks pass.
6-
7-
8-Member Communications
9-Improve logged-in member communication while protecting personal
10-email addresses and other private contact information.
11-
--
59-Skyhawk Working Rules
60-- authoritative human/AI operating contract. Intentionally not
61-required in the Blade navigation menu.
62-
63-
64-
65:Generic Intake System
66-- current state and specification for reusable file intake.
67-
68-
69-
70-Drupal Environment Reference
71-- durable environment facts when germane.
===== ENVIRONMENT RELEVANT TEXT =====
10-Real error log: /home/darwus/drupalbeta/web/error_log (there are other error_log files on this account belonging to unrelated sites — e.g. drupaltest.emconalfa.net — do not trust a log without confirming which site it belongs to)
11-
12-
13-Custom Modules
14-
15-skyhawk_site_fixes — primary site-specific integration module. Contains the upload token system, mail hooks, reunion system, journal upload, PageMessageTrait.
16:skyhawk_gallery — renders dir_listing nodes as filesystem image galleries. Contains PhotoContributionForm.php — the established working pattern for managed_file uploads on this site. Still uses Drupal messenger() popups (not yet converted to PageMessageTrait) — do not copy that part of the pattern.
17-yp_memorial — displays YP memorial memories from Webform submissions.
18-skyhawk_sdo_contact.zip, skyhawk_sdo_contact_patch.zip, skyhawk_sdo_router.zip — present on disk, not extracted/audited. See /blade/sdo-system-status.
19-
20-
21-Key Contrib Modules Installed (partial list, direct deps)
22-
--
29-drupal/image_effects, drupal/file_mdm, drupal/sophron
30-drupal/layout_builder_restrictions, drupal/layout_builder_styles
31-
32-
33-Established Patterns to Reuse
34-
35:File upload: Drupal's native managed_file form element with #multiple => TRUE, #upload_location, #upload_validators — see skyhawk_gallery/PhotoContributionForm.php and skyhawk_site_fixes/UploadTokenForm.php.
36-Inline one-shot messages (no Drupal messenger popup): skyhawk_site_fixes/src/Traits/PageMessageTrait.php.
37-Email sending: hook_mail() in skyhawk_site_fixes.module, dispatched via \Drupal::service('plugin.manager.mail')->mail().
38-Per-request/token-gated routes: always call \Drupal::service('page_cache_kill_switch')->trigger() to prevent Drupal's page cache (default max-age 3600) from serving stale state.
39-
40-
41-
--
53-The Drupal-native journal_index content type and its Drupal Views are the authoritative live Journal Index architecture.
54-The former standalone raw SQL table journal_index was a legacy Raven/import artifact and was retired on 2026-08-27 after live-use auditing.
55-raven_journal_index_534.csv is retained as the historical Raven source data.
56-Do not recreate the standalone raw journal_index SQL table unless a future proven requirement specifically requires it.
57-
58-
59:Drupal Environment - Live Technical MapPurpose: Durable current architecture needed to continue Skyhawk.org work without rediscovery. Transient diagnostics and rapidly aging update availability are generated when needed rather than stored here.Runtime and PlatformDrupal core: 11.4.5PHP: 8.4.20Drush: Composer: Composer version 2.9.4 2026-01-22 14:08:50Drupal document root: /home/darwus/drupalbeta/webDatabase driver: mysql; server version: 11.4.11-MariaDBCurrent Drupal DB-session isolation: REPEATABLE-READHTTP server header: server: LiteSpeedCommand-Line AccessNormal command-line work occurs interactively at the A2 prompt.Canonical Pixel connection: ssh -p 22 darwus@65.181.120.151.Do not invent or assume an SSH alias. Pixel file transfers use the same explicit host/user/port.Normal work leaves the A2 session open. Exit/reconnect is reserved for required local downloads such as verified database backups.Themes and Asset DeliveryDefault theme: bootstrap_barrioAdmin theme: bootstrap_barrioCSS aggregation: enabled; JS aggregation: enabled.Aggregated browser filenames are delivery artifacts and are not authoritative evidence of source ownership.Installed/enabled themes (2)Bootstrap Barrio [bootstrap_barrio] | themes/contrib/bootstrap_barrio | DEFAULT, ADMINClaro [claro] | core/themes/claroCanonical Skyhawk CSS / JS OwnershipGlobal Skyhawk CSS owner: modules/custom/skyhawk_site_fixes/css/skyhawk-global.css - present.Site-specific integration belongs under modules/custom/skyhawk_site_fixes, not inside contributed projects.Semantic visual vocabulary: skyhawk-focus, skyhawk-feature, skyhawk-context, skyhawk-note, skyhawk-reference, skyhawk-navy, skyhawk-marine, skyhawk-joint, skyhawk-heritage.Bold colors are punctuation; muted colors are prose. Color is never the sole indicator of meaning.LOST-D is the proving page for the semantic visual system.Custom CSS / JS files (27)modules/custom/skyhawk_site_fixes/backups/attach-managed-file-queue-20260825T215707Z-3404996/managed_file_queue.jsmodules/custom/skyhawk_site_fixes/backups/core-handoff-20260825T194442Z-3404996/serial_managed_file_upload.jsmodules/custom/skyhawk_site_fixes/backups/deployment-gate-reconcile-20260825T145100Z-2795997/upload_transition_observer.jsmodules/custom/skyhawk_site_fixes/backups/fix-two-proven-defects-20260825T205540Z-3404996/upload_token_public.cssmodules/custom/skyhawk_site_fixes/backups/live-observer-integration-20260825T145539Z-2795997/upload_transition_observer.jsmodules/custom/skyhawk_site_fixes/backups/native-serial-cleanup-20260825T202106Z-3404996/serial_managed_file_upload.jsmodules/custom/skyhawk_site_fixes/backups/observer-execution-proof-20260825T150130Z-2795997/upload_transition_observer.jsmodules/custom/skyhawk_site_fixes/backups/observer-standalone-20260825T150751Z-2795997/upload_transition_observer.jsmodules/custom/skyhawk_site_fixes/backups/pixel-picker-transition-20260825T151419Z-2795997/pixel_execution_probe.jsmodules/custom/skyhawk_site_fixes/backups/remove-serializer-20260825T203611Z-3404996/serial_managed_file_upload.jsmodules/custom/skyhawk_site_fixes/backups/remove-serializer-artifacts-20260825T203955Z-3404996/serial_managed_file_upload.jsmodules/custom/skyhawk_site_fixes/backups/serial-three-trace-20260825T195352Z-3404996/serial_managed_file_upload.jsmodules/custom/skyhawk_site_fixes/backups/trace-prereq-20260825T195657Z-3404996/serial_managed_file_upload.jsmodules/custom/skyhawk_site_fixes/backups/universal-uploader-20260825T233305Z-3404996/managed_file_queue.jsmodules/custom/skyhawk_site_fixes/backups/universal-uploader-20260825T234003Z/managed_file_queue.jsmodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/upload_token_mobile_fix.jsmodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/upload_token_mobile_fix.jsmodules/custom/skyhawk_site_fixes/css/legacy.cssmodules/custom/skyhawk_site_fixes/css/model-build.cssmodules/custom/skyhawk_site_fixes/css/modeling-review.cssmodules/custom/skyhawk_site_fixes/css/skyhawk-global.cssmodules/custom/skyhawk_site_fixes/css/squadron.cssmodules/custom/skyhawk_site_fixes/css/upload_token_public.cssmodules/custom/skyhawk_site_fixes/js/gabby-unit-autocomplete.jsmodules/custom/skyhawk_site_fixes/js/pixel_execution_probe.jsmodules/custom/skyhawk_site_fixes/js/squadron.jsmodules/custom/skyhawk_site_fixes/js/upload_transition_observer.jsEnabled Drupal ModulesDescriptions below come from the installed extension metadata. Current update availability is intentionally not stored here; query Composer/Drupal live.Enabled modules (99)Actions Permissions [actions_permissions] | Views Bulk Operations | Adds access permissions on all actions allowing admins to restrict access on a per-role basis.Automated Cron [automated_cron] | Core | Provides an automated way to run cron jobs, by executing them at the end of a server response.Automatic Entity Labels [auto_entitylabel] | Entity | Allows hiding of entity label fields and automatic label creation.Ban [ban] | Core | Allows banning visits from specific IP addresses.BigPipe [big_pipe] | Core | Sends pages using the BigPipe technique that allows browsers to show them much faster.Block Content [block_content] | Core | Allows the creation of content blocks and block types.Block [block] | Core | Allows users to configure blocks (containing content, forms, etc.) and to place them in the regions of a theme.Breakpoint [breakpoint] | Core | Manages breakpoints and breakpoint groups for responsive designs.Chaos Tools [ctools] | Chaos tool suite | Provides a number of utility and helper APIs for Drupal developers and site builders.CKEditor5 Table Fix [ckeditor5_table_fix] | CKEditor 5 | Adds support for tables in CKEditor5, including and other elements.CKEditor 5 [ckeditor5] | Core | Provides the CKEditor 5 rich text editor.Configuration Manager [config] | Core | Allows importing and exporting configuration changes.Contact storage [contact_storage] | Other | Provides storage and edit capability for contact messages.Contact [contact] | Core | Provides site-wide contact forms and forms to contact individual users.Content Moderation [content_moderation] | Core | Provides additional publication states that can be used by other modules to moderate content.Contextual Links [contextual] | Core | Provides contextual links to directly access tasks related to page elements.CSV Importer [csv_importer] | CSV | Import content from CSV.Custom Menu Links [menu_link_content] | Core | Allows users to create menu links.Database Logging [dblog] | Core | Logs system events in the database.Datetime Range [datetime_range] | Field types | Provides the ability to store end dates.Datetime [datetime] | Field types | Defines field types for storing dates and times.Devel [devel] | Development | Various blocks, pages, and functions for developers.DropzoneJS entity browser widget [dropzonejs_eb_widget] | Media | DropzoneJS Entity browser widget.dropzonejs [dropzonejs] | Media | The Drupal integration for DropzoneJS.Embed [embed] | Filters | Provides a framework for different types of embeds in text editors.Entity Browser Block [entity_browser_block] | Media | Derives block plugins for every Entity Browser on your siteEntity Browser [entity_browser] | Media | Provide a generic entity browser/picker/selector.Entity Embed [entity_embed] | Filters | Allows entities to be embedded using a text editor.Entity Mask [ctools_entity_mask] | Other | Allows an entity type to borrow the fields and display configuration of another entity type.Entity [entity] | Other | Provides expanded entity APIs, which will be moved to Drupal core one day.Feeds [feeds] | Feeds | Aggregates RSS/Atom/RDF feeds, imports CSV files and more.Field UI [field_ui] | Core | Provides a user interface for the Field module.Field [field] | Core | Provides the capabilities to add fields to entities.File Download Link Media [file_download_link_media] | Field | Adds field formatter to render Media reference fields as download link very directly.File Download Link [file_download_link] | Field | Adds field formatter to render file field as configurable download link.File metadata - EXIF [file_mdm_exif] | File metadata | Provides a file metadata plugin for EXIF image information.File metadata - Font [file_mdm_font] | File metadata | Provides a file metadata plugin for TTF/OTF/WOFF font information.File metadata manager [file_mdm] | File metadata | Provides a service to manage file metadata.File [file] | Field types | Provides a field type for files and defines a "managed_file" Form API element.Filter [filter] | Core | Filters text content in preparation for display.Image Effects [image_effects] | Media | Provides effects and operations for the Image API.Image [image] | Field types | Defines a field type for image media and provides display configuration tools.Inline Entity Form [inline_entity_form] | Fields | Provides a widget for inline management (creation, modification, removal) of referenced entities.Inline Form Errors [inline_form_errors] | Core | Places error messages adjacent to form inputs, for improved usability and accessibility.Internal Dynamic Page Cache [dynamic_page_cache] | Core | Caches pages, including those with dynamic content, for all users.Internal Page Cache [page_cache] | Core | Caches pages for anonymous users and can be used when external page cache is not available.Layout Builder Expose All Field Blocks [layout_builder_expose_all_field_blocks] | Core | When enabled, this module exposes all fields for all entity view displays. When disabled, only entity type bundles that have layout builder enabled will have their fields exposed. Enabling this module could significantly decrease performance on sites with a large number of entity types and bundles.Layout Builder Restrictions [layout_builder_restrictions] | Layout Builder | Manage which fields & layouts are available in Layout BuilderLayout Builder Styles [layout_builder_styles] | Layout Builder | Apply styles to blocks in Layout Builder.Layout Builder [layout_builder] | Core | Allows users to add and arrange blocks and content fields directly on the content.Layout Discovery [layout_discovery] | Core | Provides a way for modules or themes to register layouts.Libraries [libraries] | Other | Allows version-dependent and shared usage of external libraries.Link [link] | Field types | Provides a field type for internal and external URLs.Media Library [media_library] | Core | Enhances the media list with additional features to more easily find and use existing media items.Media [media] | Core | Manages the creation, configuration, and display of media items.Menu UI [menu_ui] | Core | Provides a user interface for managing menus.MySQL [mysql] | Core | Provides the MySQL database driver.Node [node] | Core | Manages the creation, configuration, and display of the main site content.Options [options] | Field types | Defines field types with select lists, checkboxes, and radio buttons to select values from fixed lists of options.Password Compatibility [phpass] | Core | Provides the password checking algorithm for user accounts created with Drupal prior to version 10.1.0.Path alias [path_alias] | Core | Provides the API allowing to rename URLs.Pathauto [pathauto] | Other | Provides a mechanism for modules to automatically generate aliases for the content they manage.Path [path] | Core | Allows users to create custom URLs for existing paths on the site.Redirect [redirect] | Other | Allows users to redirect from old URLs to new URLs.RESTful Web Services [rest] | Web services | Provides a framework for exposing REST resources.Search node [search_node] | Core | Provides a search plugin for searching content.Search [search] | Core | Allows users to create search pages based on plugins provided by other modules.Serialization (CSV) [csv_serialization] | Web services | Provides CSV as a serialization format.Serialization [serialization] | Web services | Provides a service for converting data to and from formats such as JSON and XML.Serial [serial] | Field types | Defines atomic auto increment (serial) field type.Simplenews [simplenews] | Mail | Send newsletters to subscribed email addresses. For uninstall go to Configuration > Web services > Simplenews > Settings and hit "Prepare uninstall".Simple XML Sitemap [simple_sitemap] | SEO | Generates standard-compliant hreflang XML sitemaps to enhance your site's SEO, notifies search engines of website changes via IndexNow and sitemap ping protocols, and provides a framework for developing other sitemap types.Skyhawk Gallery [skyhawk_gallery] | Custom | Renders dir_listing nodes as filesystem image galleries.Skyhawk Site Fixes [skyhawk_site_fixes] | Custom | Site-specific CSS fixes for Skyhawk Drupal 10.Sophron [sophron] | Other | Provides an extensive MIME types management API.Standard [standard] | Other | Install with commonly used features pre-configured.Syslog [syslog] | Core | Logs events to the web server's system log.System [system] | Core | Provides user interfaces for core systems.Taxonomy [taxonomy] | Core | Enables the categorization of content.Telephone [telephone] | Field types | Defines a field type for telephone numbers.Text Editor [editor] | Core | Provides a framework to associate text editors (like WYSIWYGs) and toolbars with text formats.Text [text] | Field types | Defines field types for short and long text with optional summaries.Token Filter [token_filter] | Other | Allows token values to be used as filters.Token [token] | Other | Provides a user interface for the Token API and some missing core tokens.Toolbar [toolbar] | Core | Provides an administration toolbar to display links provided by modules.Typed Data [typed_data] | Other | Extends the core Typed Data API with new APIs and features.Update Status [update] | Core | Checks for updates and can notify users if there are new releases available.User [user] | Core | Allows users to register and log in, and manages user roles and permissions.Video Embed Field [video_embed_field] | Video Embed Field | Provides a field type for displaying videos from 3rd party providers such as YouTube and Vimeo.Views Bootstrap 5 [views_bootstrap] | Views | Allows for different styles to be used in views to work with Bootstrap 5 components.Views Bulk Operations [views_bulk_operations] | Views | Adds an ability to perform bulk operations on selected entities from view results.Views Data Export [views_data_export] | Views | Plugin to export views data into various file formats.Views Infinite Scroll [views_infinite_scroll] | Views | A pager which allows an infinite scroll effect for views.Views UI [views_ui] | Core | Provides a user interface for creating and managing views.Views [views] | Core | Provides a framework to fetch information from the database and to display it in different formats.Webform UI [webform_ui] | Webform | Provides a user interface for building and maintaining webforms.Webform [webform] | Webform | Enables the creation of webforms and questionnaires.Workflows [workflows] | Core | Provides an interface to create workflows with transitions between different states (for example publication or user status) provided by other modules.YP Memorial [yp_memorial] | Custom | Displays YP memorial memories from Webform submissions.Custom Modules and PurposeSkyhawk Gallery [skyhawk_gallery] - Renders dir_listing nodes as filesystem image galleries. - modules/custom/skyhawk_gallerySkyhawk Site Fixes [skyhawk_site_fixes] - Site-specific CSS fixes for Skyhawk Drupal 10. - modules/custom/skyhawk_site_fixesYP Memorial [yp_memorial] - Displays YP memorial memories from Webform submissions. - modules/custom/yp_memorialCustom architecture files (57)modules/custom/skyhawk_gallery/skyhawk_gallery.info.ymlmodules/custom/skyhawk_gallery/skyhawk_gallery.modulemodules/custom/skyhawk_gallery/skyhawk_gallery.permissions.ymlmodules/custom/skyhawk_gallery/skyhawk_gallery.routing.ymlmodules/custom/skyhawk_gallery/skyhawk_gallery.services.ymlmodules/custom/skyhawk_site_fixes/backups/attach-managed-file-queue-20260825T215707Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/core-handoff-20260825T194442Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/core-managed-file-control-20260825T165546Z-3404996/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/deployment-gate-20260825T144330Z-2795997/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/deployment-gate-20260825T144330Z-2795997/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/deployment-gate-reconcile-20260825T145100Z-2795997/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/deployment-gate-reconcile-20260825T145100Z-2795997/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/fix-two-proven-defects-20260825T205540Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/generic-uploader-reconcile-20260826T012923Z-1245077/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/live-observer-integration-20260825T145539Z-2795997/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/live-observer-integration-20260825T145539Z-2795997/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/managed-file-queue-20260825T215118Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/managed-file-server-trace-20260825T210301Z-3404996/skyhawk_site_fixes.modulemodules/custom/skyhawk_site_fixes/backups/multipart-ingress-20260825T182043Z-3404996/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/native-serial-cleanup-20260825T202106Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/native-serial-cleanup-20260825T202106Z-3404996/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/observer-execution-proof-20260825T150130Z-2795997/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/observer-execution-proof-20260825T150130Z-2795997/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/observer-standalone-20260825T150751Z-2795997/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/pixel-direct-probe-20260825T151003Z-2795997/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/pixel-observer-20260825T140951Z-2676184/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/pixel-observer-20260825T140951Z-2676184/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/pixel-picker-transition-20260825T151419Z-2795997/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/public-upload-inline-status-20260826T023619Z-1245077/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/public-upload-three-failures-20260826T030142Z-1245077/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/public-upload-ux-owner-fix-20260826T025756Z-1245077/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/remove-serializer-20260825T203611Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/remove-serializer-artifacts-20260825T203955Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/request-size-probe-20260825T181121Z-3404996/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/rollback-ingress-observer-20260825T212918Z-3404996/skyhawk_site_fixes.services.ymlmodules/custom/skyhawk_site_fixes/backups/runtime-route-rebuild-20260825T145745Z-2795997/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/serial-managed-file-20260825T184306Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/serial-three-trace-20260825T195352Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/trace-discovery-fix-20260825T195928Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/trace-discovery-fix-20260825T195928Z-3404996/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/trace-prereq-20260825T195657Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/trace-prereq-20260825T195657Z-3404996/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/universal-uploader-20260825T233305Z-3404996/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/universal-uploader-20260825T234003Z/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/skyhawk_site_fixes.modulemodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.modulemodules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/skyhawk_site_fixes.info.ymlmodules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlmodules/custom/skyhawk_site_fixes/skyhawk_site_fixes.modulemodules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlmodules/custom/skyhawk_site_fixes/skyhawk_site_fixes.services.ymlmodules/custom/yp_memorial/yp_memorial.info.ymlmodules/custom/yp_memorial/yp_memorial.routing.ymlCustom routes (14)skyhawk_gallery.photo_contribute | modules/custom/skyhawk_gallery/skyhawk_gallery.routing.ymlskyhawk_gallery.photo_review | modules/custom/skyhawk_gallery/skyhawk_gallery.routing.ymlskyhawk_gallery.unknowns | modules/custom/skyhawk_gallery/skyhawk_gallery.routing.ymlskyhawk_site_fixes.journal_upload | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.managed_file_core_control | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.reunion_manage | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.reunion_token_admin | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.reunion_upload | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.reunion_verify | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.system_status | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.upload_token_admin | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.upload_token_view | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlskyhawk_site_fixes.upload_transition_observation | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.ymlyp_memorial.memories | modules/custom/yp_memorial/yp_memorial.routing.ymlCustom services (0)Custom libraries (8)skyhawk_site_fixes/gabby_unit_autocomplete | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/global | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/legacy | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/model_build | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/modeling_review | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/squadron | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/upload_token_public | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlskyhawk_site_fixes/upload_transition_observer | modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.libraries.ymlContent ArchitectureNode content types (26)155242-155289 [155242_155289]Article [article]Article-Board [article_board]Article-Journal-Private [article_journal_private]Article-Journal-Public [article_journal_public]article-modeling [article_modeling]article-readyroom [article_readyroom]article-unit [article_unit]Attendee Memory [attendee_memory]Book page [book]BuNo Purchase Batch [buno_batch]Bureau Numbers [bureau_numbers]Directory listing [dir_listing]Gabby's Histories [gabby_s_histories]Journal [journal]Journal Index [journal_index]Model Build [model_build]Modeling Review Page [modeling_review_page]Newsletter Issue [newsletter_issue]Basic page [page]PDF [pdf]Reunion Event [reunion_event]Newsletter Issue [simplenews_issue]Skyhawk Association Journal Index [skyhawk_association_journal_inde]Song [song]State Abbreviations [state_abbreviations]Node fields by bundle (92)155242_155289 | body | text_with_summary | Body155242_155289 | feeds_item | feeds_item | Feeds item155242_155289 | field_buno_image | image | Buno Imagearticle_board | body | text_with_summary | Bodyarticle_journal_private | body | text_with_summary | Bodyarticle_journal_public | body | text_with_summary | Bodyarticle_modeling | body | text_with_summary | Bodyarticle_readyroom | body | text_with_summary | Bodyarticle_unit | body | text_with_summary | Bodyarticle | body | text_with_summary | Bodyattendee_memory | field_attendee_name | string | Your Nameattendee_memory | field_memory_photo | image | Photoattendee_memory | field_memory_story | text_long | Memorybook | body | text_with_summary | Bodybuno_batch | field_batch_end | integer | field_batch_endbuno_batch | field_batch_start | integer | field_batch_startbuno_batch | field_batch_variant | string | field_batch_variantbureau_numbers | body | text_with_summary | Bodybureau_numbers | field_bureau_number | list_integer | Bureau Numberdir_listing | body | text_with_summary | Bodydir_listing | field_directory_uri | string | Directory URIgabby_s_histories | body | text_with_summary | Bodygabby_s_histories | feeds_item | feeds_item | Feeds itemgabby_s_histories | field_buno | string | BUNOgabby_s_histories | field_count | serial | Countgabby_s_histories | field_custodian | string | Custodiangabby_s_histories | field_date | datetime | Dategabby_s_histories | field_description | string | Descriptiongabby_s_histories | field_location | string | Locationgabby_s_histories | field_manufacturer_serial_number | integer | Manufacturer Serial Numbergabby_s_histories | field_model | string | Modelgabby_s_histories | field_notes | string | Notesgabby_s_histories | field_record | integer | Recordjournal_index | field_journal_index | list_string | Journal Indexjournal | body | text_with_summary | Bodyjournal | field_journal_issue | integer | Issuejournal | field_journal_is_print | boolean | Print-Friendly Versionjournal | field_journal_label | string | Season Labeljournal | field_journal_thumbnail | image | Cover Thumbnailjournal | field_journal_volume | integer | Volumejournal | field_journal_year | integer | Yearjournal | field_pdf_print | file | Spreads PDFjournal | field_pdf | file | PDFmodeling_review_page | body | text_with_summary | Review Contentmodel_build | body | text_with_summary | Description / Build Notesmodel_build | field_aircraft_variant | string | Aircraft Variantmodel_build | field_bureau_number | list_integer | BuNo / Serial Numbermodel_build | field_carrier | string | Carriermodel_build | field_kit_manufacturer | string | Kit Manufacturermodel_build | field_model_builder | string | Buildermodel_build | field_model_event_year | string | Event / Yearmodel_build | field_model_images | image | Model Photographsmodel_build | field_model_scale | string | Scalemodel_build | field_squadron_operator | string | Squadron / Operatornewsletter_issue | field_issue_date | datetime | Issue Datenewsletter_issue | field_issue_pdf | file | Newsletter PDFpage | body | text_with_summary | Bodypdf | body | text_with_summary | Bodypdf | field_journal_index | list_string | Journal Indexpdf | field_journal_pdf | file | Journal PDFpdf | field_pdf_thumbnail | entity_reference | PDF Thumbnailpdf | layout_builder__layout | layout_section | Layoutreunion_event | body | text_with_summary | Bodyreunion_event | field_event_date | datetime | Event Datereunion_event | field_event_location | string | Locationreunion_event | field_hotel_link | link | Hotel Booking Linkreunion_event | field_lost_comm | text_long | Lost Comm Listreunion_event | field_manage_token | string | Management Tokenreunion_event | field_organizer_email | email | Organizer Emailreunion_event | field_registration_link | link | Registration Linkreunion_event | field_reunion_newsletter | file | Newsletter PDFreunion_event | field_taps | text_long | Tapsreunion_event | field_verify_expiry | integer | Verification Expiryreunion_event | field_verify_token | string | Verification Tokensimplenews_issue | body | text_with_summary | Bodysimplenews_issue | simplenews_issue | simplenews_issue | Newsletterskyhawk_association_journal_inde | body | text_with_summary | Bodyskyhawk_association_journal_inde | field_article | string | Articleskyhawk_association_journal_inde | field_author_last_name | string | Author Last Nameskyhawk_association_journal_inde | field_category | list_string | Categoryskyhawk_association_journal_inde | field_first_name | string | First Nameskyhawk_association_journal_inde | field_issue | list_string | Issueskyhawk_association_journal_inde | field_journal_number | list_float | Journal Numberskyhawk_association_journal_inde | field_page | integer | Pageskyhawk_association_journal_inde | field_pdf_access | link | PDF Accessskyhawk_association_journal_inde | field_record | integer | Recordskyhawk_association_journal_inde | field_year | list_integer | Yearsong | body | text_with_summary | Lyricssong | field_song_audio | entity_reference | Audiosong | field_song_byline | string | Bylinestate_abbreviations | body | text_with_summary | Bodystate_abbreviations | field_two_letter_state_id_s | list_string | Two Letter State ID'sTaxonomy vocabularies (1)Skyhawk Units [skyhawk_units]Enabled Views and exposed paths (30)BuNo Search [buno_search] | /buno-searchBureau Number 159778-159790 [bureau_number_159778_159790] | /bureau-number-159778-159790Contact messages [contact_messages] | /admin/structure/contact/messagesContent [content] | /admin/content/node, /admin/content/node/editDrupal 10 Gabby's Histories [drupal_10_gabby_s_histories] | /gabby-s-histories, /gabby-s-histories/restDuplicate of People [duplicate_of_people] | /admin/people/listFiles [files] | /admin/content/files, /admin/content/files/usage/%Gabby's Histories [gabby_s_histories] | /gabby-s-histories, /gabby-s-histories/restGlossary [glossary] | /site-glossaryJournal Grid [journal_grid] | /journalsMailing Lists [mailing_lists] | /mailing-listsMedia library [media_library] | /admin/content/media-grid, /admin/content/media-widget, /admin/content/media-widget-tableMedia [media] | /admin/content/mediaModeling Builds [modeling_builds_review] | /modeling/buildsModerated content [moderated_content] | /admin/content/moderatedNewsletter issues [simplenews_newsletters] | /admin/content/simplenewsPDF Image Entity [pdf_image_entity] | /admin/media-pdf-thumbnail/settings/listPeople [user_admin_people] | /admin/people/listPublic Skyhawk Journal Index [public_skyhawk_journal_index] | /download/views, /skyhawk-public-journal-index, /skyhawk-public-journal-index-page2Redirect [redirect] | /admin/config/search/redirectReunion Index [reunion_index] | /reunionSA Journal Grid [sa_journal_grid] | /sa-journalSDO Directory Review [sdo_directory_review] | /admin/people/sdo-directory-reviewSDO User Email Reference [sdo_user_email_reference]Skyhawk Journal Index [skyhawk_journal_index] | /skyhawk-journal-indexSkyhawk Songs [skyhawk_songs] | /skyhawk-songsSkyhawk Videos [skyhawk_videos]Subscribers [simplenews_subscribers] | /admin/people/simplenewsWatchdog [watchdog] | /admin/reports/dblogWebform submissions [webform_submissions]Image styles (12)full960 [full960]Journal Cover (480px no watermark) [journal_cover]Journal Thumb (160px no watermark) [journal_thumb]Media Library thumbnail (220×220) [media_library]onehalf480 [onehalf480]onethird320 [onethird320]skyhawk_gallery_large [skyhawk_gallery_large]skyhawk_gallery_thumb [skyhawk_gallery_thumb]thumbnail192 [thumbnail192]thumbnail [thumbnail]twothirds640 [twothirds640]Watermark [watermark]Storage and ConfigurationPublic files: sites/default/filesPrivate files: /home/darwus/drupalbeta/web/privateTemporary files: /tmpConfiguration sync: sites/default/files/config_Ubo9gqxEHpoMEZNKbhJkVBUc9sN2NnzSV17M10F5hE7w77uws5OFNHtqnAAjUCO9dChbQn6-2A/syncMaintenance/debug reports: web/downloads/chatgpt-debug*.txt. These are operational artifacts, not architecture.Composer and Reconstructioncomposer.json: present.composer.lock: present.Composer-managed code and the lock file define reconstructable Drupal/core/contrib dependencies.Do not store rapidly aging latest-version or update-availability lists here. Generate them with Composer when maintenance begins.Do not patch Drupal core or contributed projects for permanent Skyhawk customization.Backup ArchitectureA2 maintenance database-backup directory: /home/darwus/skyhawk_backups - present.Before destructive or material database work, create a full A2 database backup, download it to the local machine being used, compare SHA-256 hashes, and require an exact match before mutation.After successful local SHA verification, temporary/superseded A2 database backups are removed; the verified local copy is the rollback copy for that maintenance operation.Normal database/files backups remain separate from future Git version control.Journal Index ArchitectureThe Drupal-native journal_index content type and Drupal Views are authoritative.The obsolete standalone raw SQL journal_index import table is retired / absent.Historical Raven CSV: /home/darwus/drupalbeta/journal_index_work/raven_journal_index_534.csv - present.Do not recreate the retired standalone SQL table without a new proven requirement.Generated on Demand - Do Not Maintain as ProseComposer/Drupal update availability.Current cache state and temporary diagnostics.Disk usage and transient file counts.Current log entries, warnings, token activity, request traces, and temporary report filenames/hashes.Architecture Rules That Prevent RediscoveryLet Drupal be Drupal: prefer core, established contrib, fields, taxonomy, Views, Webform, revisions, permissions, services, configuration and themes before custom mechanisms.KISS governs architecture and collaboration.Know and replace in toto rather than layering conflicting CSS/configuration.Preserve completed decisions unless new evidence or explicit direction requires reopening them.Use LOST-D for unfinished work and NEXT; use this reference for durable technical truth.Last live reconciliation: 2026-08-28 17:05:12 UTC.
60-
61-
62-A2 Shell Execution Constraints
63-
64-Normal Skyhawk command-line work occurs interactively at the A2 prompt.
65-On this A2 environment, do not use Bash process substitution such as < <(...) for Skyhawk work. It has repeatedly failed through /dev/fd/*.
===== ACTIVE SOURCE HISTORY OWNERS =====
ACTIVE_SKYHAWK_UPLOAD_FILE_SOURCE_HITS=1
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
===== ACTIVE GENERIC FINISH/PERSISTENCE SOURCE =====
===== FILE: /home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php =====
SHA256=862ca045c49fdcda6ee0bb4e97630cc25049f4a9ac35433192d40aae858fbf94
222- '';
223- }
224- else {
225- $items = '';
226-
227- foreach ($ready_names as $ready_name) {
228- $items .=
229- 'Ready to submit: ' .
230- \Drupal\Component\Utility\Html::escape(
231- $ready_name
232- ) .
233- '';
234- }
235-
236- $ready_markup =
237- '' .
238- '
Upload complete.' .
239- '
' .
240: 'These are the files that Finish submission will finalize.' .
241- '
';
242- }
243-
244- $form['token_identity'] = [
245- '#type' => 'html_tag',
246- '#tag' => 'h2',
247- '#value' => $this->t(
248- 'Upload Files: @label',
249- ['@label' => $token_label]
250- ),
251- '#weight' => 0,
252- ];
253-
254- $form['intro'] = [
255- '#markup' =>
256- 'Each file may be up to 511 MiB. ' .
257- 'Selecting a file starts its upload. ' .
258- 'Wait until its filename says Ready to submit ' .
--
264- '#markup' =>
265- '
' .
266- 'UPLOAD YOUR FILE IN THE BOX IMMEDIATELY BELOW.' .
267- '
Request instructions follow below the upload controls.' .
268- '
',
269- '#weight' => 20,
270- ];
271-
272- /*
273- * Drupal core remains the upload owner.
274- *
275- * The ready-state markup belongs INSIDE this element so
276- * core uploadAjaxCallback replaces it when the fid changes.
277- */
278- $form['files'] = [
279- '#type' => 'managed_file',
280- '#title' => $this->t('Upload files'),
281- '#upload_location' =>
282: 'private://uploads/' . $token . '/',
283- '#multiple' => TRUE,
284- '#weight' => 30,
285- '#description' =>
286- \Drupal\Core\Render\Markup::create(
287- $ready_markup
288- ),
289- '#upload_validators' => [
290- 'FileSizeLimit' => [
291- 'fileLimit' => self::MAX_FILE_BYTES,
292- ],
293- 'FileExtension' => [],
294- ],
295- ];
296-
297- /*
298: * Finish belongs directly under the upload widget.
299- */
300- $form['actions'] = [
301- '#type' => 'actions',
302- '#weight' => 31,
303- ];
304-
305- $form['actions']['submit'] = [
306- '#type' => 'submit',
307- '#value' =>
308: $this->t('Finish submission'),
309- '#button_type' => 'primary',
310- '#attributes' => [
311- 'class' => [
312- 'skyhawk-finish-submission',
313- ],
314- ],
315- '#states' => [
316- 'disabled' => [
317- ':input[name="files[fids]"]' => [
318- 'empty' => TRUE,
319- ],
320- ],
321- ],
322- ];
323-
324- /*
325: * Receipt is local to Finish.
326- */
327- $form['page_message'] =
328- $this->renderPageMessage();
329-
330- $form['page_message']['#weight'] = 32;
331-
332- /*
333- * Still below the upload box, but no longer separating
334: * the file widget from Finish submission.
335- */
336- $form['request_instructions'] = [
337- '#type' => 'details',
338- '#title' =>
339- $this->t('Request instructions'),
340- '#open' => TRUE,
341- '#weight' => 40,
342- 'content' => [
343- '#markup' =>
344- $request_instructions !== ''
345- ? '' .
346- nl2br(
347- \Drupal\Component\Utility\Html::escape(
348- $request_instructions
349- )
350- ) .
351- '
'
352- : '' .
--
380- if (
381- isset($trigger['#parents']) &&
382- is_array($trigger['#parents']) &&
383- in_array('files', $trigger['#parents'], TRUE)
384- ) {
385- return;
386- }
387-
388- $fids = $form_state->getValue('files') ?: [];
389-
390- if (empty($fids)) {
391- $form_state->setErrorByName(
392- 'files',
393- $this->t('Select at least one file.')
394- );
395- }
396- }
397-
398: public function submitForm(
399- array &$form,
400- FormStateInterface $form_state
401- ): void {
402-
403- $token = (string) $form_state->get(
404- 'skyhawk_upload_token'
405- );
406-
407- if (!preg_match('/^[a-f0-9]{32}$/', $token)) {
408- $this->messenger()->addError(
409- $this->t('Upload token state was lost.')
410- );
411- return;
412- }
413-
414- $row = $this->loadToken($token);
415-
416- if (
--
527- )
528- );
529-
530- return;
531- }
532-
533- /*
534- * Only count a newly accepted FID.
535- */
536- if (
537- !empty(
538- $accepted[
539- 'new_acceptance'
540- ]
541- )
542- ) {
543-
544- \Drupal::database()
545: ->update(
546- 'skyhawk_upload_token'
547- )
548- ->expression(
549: 'uses_count',
550: 'uses_count + :inc',
551- [
552- ':inc' => 1,
553- ]
554- )
555- ->condition(
556- 'token',
557- $token
558- )
559- ->condition(
560- 'status',
561- 'active'
562- )
563- ->execute();
564- }
565-
566- $this->setPageMessage(
567- $this->t(
568- 'Reunion PDF verified and published: @file',
--
585- return;
586- }
587-
588- $storage =
589- \Drupal::entityTypeManager()
590- ->getStorage('file');
591-
592- $files = $storage->loadMultiple($fids);
593-
594- $count = 0;
595- $submitted_names = [];
596-
597- foreach ($files as $file) {
598- /*
599- * Core managed_file created the temporary file entity.
600- * Final submission makes that exact current-batch file
601- * permanent.
602- */
603: $file->setPermanent();
604- $file->save();
605-
606- $submitted_names[] =
607- (string) $file->getFilename();
608-
609- $count++;
610- }
611-
612- if ($count < 1) {
613- $this->messenger()->addError(
614- $this->t(
615- 'No uploaded files could be finalized.'
616- )
617- );
618- return;
619- }
620-
621- /*
622- * Token remains reusable authorization.
623- */
624- \Drupal::database()
625: ->update('skyhawk_upload_token')
626- ->fields([
627: 'uses_count' =>
628: (int) $row->uses_count + $count,
629- ])
630- ->condition('token', $token)
631- ->condition('status', 'active')
632- ->execute();
633-
634- $submitted_list =
635- implode(', ', $submitted_names);
636-
637- $this->setPageMessage(
638- $this->formatPlural(
639- $count,
640- 'Submission complete. 1 file finalized: @files',
641- 'Submission complete. @count files finalized: @files',
642- [
643- '@files' => $submitted_list,
644- ]
645- )
646- );
===== BROADER ACTIVE SOURCE CONTEXT =====
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-80- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-81-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-82- const widget =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-83- input.closest(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-84- '.form-managed-file'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-85- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-86-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-87- if (!widget) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-88- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-89- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-90-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-91- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js:92: * This is Drupal core managed_file's own
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-93- * AJAX Upload submit control.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-94- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-95- const uploadButton =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-96- widget.querySelector(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-97- '[data-drupal-selector$="-upload-button"]'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-98- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-99-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-100- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-101- uploadButton &&
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-102- !uploadButton.disabled
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-103- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/js/upload-token-auto-upload.js-104- const finish =
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-190- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-191- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-192- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-193- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-194- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-195- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-196- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-197-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-198- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-199- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-200- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-201- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:202: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-203- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-204- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-205- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-206- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-207- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-208- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-209- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-210-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-211- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-212- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-213- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-214- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-995- $variables['content']['created']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-996- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-997- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-998-}
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-999-/* SKYHAWK LOSTD AUTHOR PRIVACY END */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1000-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1001-/* SKYHAWK GENERIC INTAKE REQUEST FORM START */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1002-/**
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1003- * Implements hook_form_alter().
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1004- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1005- * UploadTokenAdminForm remains the owner of request creation.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1006- * Generic Intake uses one nontechnical request UI:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1007: * purpose, intended recipient, recipient confirmation, instructions,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1008- * expiration, and the existing Generate & Send action.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1009- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1010-function skyhawk_site_fixes_form_alter(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1011- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1012- \Drupal\Core\Form\FormStateInterface $form_state,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1013- string $form_id
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1014-): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1015- $object = $form_state->getFormObject();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1016-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1017- if (!$object instanceof \Drupal\skyhawk_site_fixes\Form\UploadTokenAdminForm) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1018- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1019- }
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1029- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1030- unset(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1031- $form['create']['contact_select'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1032- $form['create']['new_contact_name'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1033- $form['create']['new_contact_username'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1034- $form['create']['new_contact_email']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1035- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1036-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1037- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1038- * Reuse the existing Purpose owner rather than creating a second
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1039- * field with the same semantic responsibility.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1040- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1041: $form['create']['purpose']['#title'] = t('Purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1042: $form['create']['purpose']['#options'] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1043- \Drupal\skyhawk_site_fixes\IntakePurpose::options();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1044: $form['create']['purpose']['#required'] = TRUE;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1045: $form['create']['purpose']['#description'] = t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1046- 'Choose what this request is for. Purpose controls instructions and downstream processing; the uploader remains format-agnostic.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1047- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1048-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1049- $form['create']['recipient_email'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1050- '#type' => 'email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1051- '#title' => t('Recipient email'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1052- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1053- '#description' => t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1054- 'Enter the email address of the person who should receive this request.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1055- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1056- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1057-
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1098- if (!preg_match(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1099- '#https?://[^\s]+/upload/([A-Za-z0-9_-]+)#',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1100- $body,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1101- $match
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1102- )) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1103- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1104- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1105-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1106- $token = $match[1];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1107-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1108- $row = \Drupal::database()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1109- ->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1110: ->fields('t', ['purpose', 'data'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1111- ->condition('token', $token)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1112- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1113- ->fetchObject();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1114-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1115- if (!$row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1116- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1117- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1118-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1119- $data = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1121- if (!empty($row->data)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1122- $decoded = json_decode((string) $row->data, TRUE);
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1124- if (is_array($decoded)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1125- $data = $decoded;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1126- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1127- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1128-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1129- $instructions = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1130- (string) ($data['instructions'] ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1131- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1132-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1133- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1134- $instructions =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1135- \Drupal\skyhawk_site_fixes\IntakePurpose::instructions(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1136: (string) $row->purpose
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1137- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1138- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1139-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1140- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1141- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1142- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1143-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1144- $message['body'][] = '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1145- $message['body'][] = 'REQUEST INSTRUCTIONS';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1146- $message['body'][] = '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1147- $message['body'][] = $instructions;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1148-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1526- isset($form['reunion_security']) &&
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1527- is_array($form['reunion_security'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1528- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1529- $reunion_security =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1530- $form['reunion_security'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1531-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1532- unset($form['reunion_security']);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1533-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1534- $reunion_security['#open'] = TRUE;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1535-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1536- $reunion_security['#states'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1537- 'visible' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1538: ':input[name="purpose"]' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1539- 'value' => 'reunion_event',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1540- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1541- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1542- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1543-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1544- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1545- * Rebuild Create section in its existing order and insert
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1546- * Reunion controls directly after Purpose.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1547- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1548- $create = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1549- $inserted = FALSE;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1550-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1551- foreach ($form['create'] as $key => $element) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1552- $create[$key] = $element;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1553-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1554: if ($key === 'purpose') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1555- $create['reunion_security'] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1556- $reunion_security;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1557-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1558- $inserted = TRUE;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1559- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1560- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1561-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1562- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1563- * Defensive fallback if the Purpose key changes later.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1564- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1565- if (!$inserted) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1566- $create['reunion_security'] =
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1575- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1576- * Drupal renders siblings according to #weight. Establish the
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1577- * actual human workflow explicitly rather than relying on PHP
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1578- * array insertion order.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1579- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1580- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1581- isset($form['create']) &&
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1582- is_array($form['create'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1583- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1584-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1585- $weights = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1586- 'label' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1587: 'purpose' => 10,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1588: 'purpose_other' => 11,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1589- 'reunion_security' => 20,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1590- 'recipient_email' => 30,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1591- 'recipient_confirmed' => 31,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1592- 'request_instructions' => 40,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1593- 'expiry_days' => 50,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1594- 'generate' => 60,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1595- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1596-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1597- foreach ($weights as $key => $weight) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1598- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1599- isset($form['create'][$key]) &&
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1600- is_array($form['create'][$key])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1601- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1602- $form['create'][$key]['#weight'] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1603- $weight;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1604- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1605- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1606-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1607- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1608- * Reunion controls are only relevant when the persisted
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1609: * machine purpose is reunion_event.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1610- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1611- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1612- isset(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1613- $form['create']['reunion_security']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1614- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1615- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1616- $form['create']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1617- ['reunion_security']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1618- ['#states'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1619- 'visible' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:1620: ':input[name="purpose"]' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1621- 'value' => 'reunion_event',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1622- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1623- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1624- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1625-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1626- $form['create']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1627- ['reunion_security']
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1628- ['#open'] = TRUE;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1629- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1630- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module-1631-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-11-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-12-/**
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-13- * Deterministic Reunion authorization and PDF-first acceptance.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-14- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-15- * SKYHAWK_REUNION_INTAKE_V1
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-16- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-17-final class ReunionIntake {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-18-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-19- public const PURPOSE = 'reunion_event';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-20-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-21-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-22- public static function isReunionPurpose(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:23: string $purpose
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-24- ): bool {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-25-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-26- return strcasecmp(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:27: trim($purpose),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-28- self::PURPOSE
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-29- ) === 0;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-30- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-31-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-32-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-33- public static function data(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-34- object $row
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-35- ): array {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-36-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-37- $data =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-38- json_decode(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-39- (string) ($row->data ?? ''),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-95- if ((string) $fresh !== $encoded) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-96- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-97- 'Request state did not persist.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-98- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-99- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-100- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-101-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-102-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-103- /**
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-104- * Prepare recipient trust provenance at token issuance.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-105- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-106- public static function prepareIssuanceData(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:107: string $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-108- string $recipientEmail,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-109- FormStateInterface $formState,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-110- int $issuerUid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-111- int $now
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-112- ): array {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-113-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-114- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-115- !self::isReunionPurpose(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:116: $purpose
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-117- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-118- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-119- return [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-120- 'ok' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-121- 'data' => [],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-122- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-123- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-124-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-125- $email =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-126- trim($recipientEmail);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-127-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-128- $accounts =
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-271-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-273- /**
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-274- * Require authenticated execution for Reunion requests.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-275- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-276- public static function executionAuthorization(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-277- object $row,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-278- AccountInterface $account
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-279- ): array {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-280-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-281- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-282- !self::isReunionPurpose(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:283: (string) ($row->purpose ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-284- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-285- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-286- return [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-287- 'allowed' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-288- 'mode' => 'not_reunion',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-289- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-290- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-291-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-292- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-293- * SKYHAWK_SESSION_ACCOUNT_INTERFACE_V2
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-294- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-295- * Drupal\Core\Session\AccountInterface is the single access
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-428- TRUE
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-429- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-430- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-431- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-432- 'The uploaded file is not identified as a PDF.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-433- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-434- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-435-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-436- $uri =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-437- (string) $file->getFileUri();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-438-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-439- $privatePrefix =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:440: 'private://uploads/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-441- $token .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-442- '/';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-443-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-444- $publicPrefix =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-445- $eventNid > 0
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-446- ? 'public://reunions/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-447- $eventNid .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-448- '/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-449- $file->id() .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-450- '/'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-451- : '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-452-
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-701- $event =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-702- \Drupal\node\Entity\Node::create([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-703- 'type' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-704- 'reunion_event',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-705- 'title' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-706- $title,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-707- 'uid' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-708- $executorUid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-709- 'status' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-710- 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-711- ]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-712-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:713: $event->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-714-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-715- $eventNid =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-716- (int) $event->id();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-717-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-718- if ($eventNid < 1) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-719- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-720- 'The Reunion Event did not receive a node ID.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-721- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-722- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-723-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-724- $freshData['event_nid'] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-725- $eventNid;
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-890- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-891- @unlink($targetPath);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-892-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-893- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-894- 'The public copy failed checksum verification.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-895- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-896- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-897- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-898-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-899- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-900- * Only now change the managed file entity.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-901- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:902: $file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-903- $file->setFileUri(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-904- $targetUri
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-905- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:906: $file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-907-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-908- $fresh =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-909- \Drupal\file\Entity\File::load(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-910- $fid
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-911- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-912-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-913- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-914- !$fresh ||
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-915- !$fresh->isPermanent() ||
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-916- $fresh->getFileUri() !==
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-917- $targetUri
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-918- ) {
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1067- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1068-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1069- $link->set(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1070- 'parent',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1071- $parentPlugin
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1072- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1073-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1074- $link->set(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1075- 'enabled',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1076- TRUE
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1077- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1078-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:1079: $link->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1080-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1081- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1082- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1083-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1084- $storage->create([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1085- 'title' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1086- $event->label(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1087-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1088- 'link' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1089- 'uri' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1090- 'entity:node/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1091- $event->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1092- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1093-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1094- 'menu_name' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1095- (string) $parent
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1096- ->get('menu_name')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1097- ->value,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1098-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1099- 'parent' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1100- $parentPlugin,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1101-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1102- 'enabled' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1103- TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:1104: ])->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1105- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1106-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1107-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1108- /**
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1109- * Accept and publish one Reunion PDF.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1110- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1111- public static function acceptSubmission(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1112- object $row,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1113- array $files,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1114- int $executorUid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1115- string $executionMode = 'live_authenticated'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1116- ): array {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1117-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1118- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1119- !self::isReunionPurpose(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:1120: (string) ($row->purpose ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1121- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1122- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1123- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1124- 'A non-Reunion request reached Reunion acceptance.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1125- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1126- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1127-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1128- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1129- (string) ($row->status ?? '') !==
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1130- 'active'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1131- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1132- throw new \RuntimeException(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1316- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1317- $event
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1318- ->get(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1319- 'field_reunion_newsletter'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1320- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1321- ->appendItem([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1322- 'target_id' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1323- (int) $promoted['fid'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1324- ]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1325- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1326-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1327- $event->setPublished();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php:1328: $event->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1329-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1330- $freshEvent =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1331- \Drupal\node\Entity\Node::load(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1332- $eventNid
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1333- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1334-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1335- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1336- !$freshEvent ||
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1337- !$freshEvent->isPublished()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1338- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1339- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/ReunionIntake.php-1340- 'The Event publication state did not persist.'
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-76- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-77- catch (\Throwable $e) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-78- $add('Observer route', FALSE, $e->getMessage());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-79- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-80-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-81- $downloads = $root . '/downloads';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-82- $add(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-83- 'Debug output directory writable',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-84- is_dir($downloads) && is_writable($downloads),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-85- $downloads
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-86- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-87-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php:88: $private = \Drupal::service('file_system')->realpath('private://uploads');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-89- $add(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-90- 'Private upload destination',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-91- is_string($private) && $private !== '' && is_dir($private) && is_writable($private),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-92- $private ?: 'UNRESOLVED'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-93- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-94-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-95- $failed = array_filter($checks, static fn(array $check): bool => $check['status'] !== 'PASS');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-96- $overall = empty($failed) ? 'PASS' : 'FAIL';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-98- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-99-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/SystemStatusController.php-100- foreach ($checks as $check) {
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-29- // Check expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-30- $expiry = $node->get('field_verify_expiry')->value;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-31- if ($expiry && time() > $expiry) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-32- $node->delete();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-33- \Drupal::messenger()->addError('This verification link has expired. Please submit your reunion announcement again.');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-34- return new RedirectResponse('/');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-35- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-36-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-37- // Publish node and clear verify token
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-38- $node->set('status', 1);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-39- $node->set('field_verify_token', NULL);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-40- $node->set('field_verify_expiry', NULL);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php:41: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-42-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-43- // Add menu entry under Reunions
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-44- $reunions_link = \Drupal::service('entity_type.manager')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-45- ->getStorage('menu_link_content')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-46- ->load(92);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-47-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-48- if ($reunions_link) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-49- $alias = \Drupal::service('path_alias.manager')->getAliasByPath('/node/' . $node->id());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-50- \Drupal::service('entity_type.manager')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-51- ->getStorage('menu_link_content')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-52- ->create([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-53- 'title' => substr($node->getTitle(), 0, 80),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-54- 'link' => ['uri' => 'internal:' . $alias],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-55- 'menu_name' => 'main',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-56- 'parent' => 'menu_link_content:' . $reunions_link->uuid(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-57- 'weight' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-58- 'enabled' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php:59: ])->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-60- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-61-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-62- // Send management URL email
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-63- $email = $node->get('field_organizer_email')->value;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-64- $manage_url = \Drupal::request()->getSchemeAndHttpHost() . '/reunion/manage/' . $node->get('field_manage_token')->value;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-65- $alias = \Drupal::service('path_alias.manager')->getAliasByPath('/node/' . $node->id());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-66- $page_url = \Drupal::request()->getSchemeAndHttpHost() . $alias;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-67-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-68- \Drupal::service('plugin.manager.mail')->mail(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-69- 'skyhawk_site_fixes', 'reunion_published', $email, 'en',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-70- [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Controller/ReunionController.php-71- 'title' => $node->getTitle(),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-93- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-94-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-95- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-96- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-98- public function validateForm(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-99- $mode = $form_state->getValue('mode');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-100- if ($mode === 'missing' && !$form_state->getValue('missing_issue')) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-101- $form_state->setErrorByName('missing_issue', 'Please select a missing issue.');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-102- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-103- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php:105: public function submitForm(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-106- $mode = $form_state->getValue('mode');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-107- $missing = $form_state->getValue('missing_issue');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-108-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-109- // Store selections in session for the upload form to pick up
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-110- $session = \Drupal::request()->getSession();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-111- $session->set('journal_upload_mode', $mode);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-112- $session->set('journal_upload_missing', $missing);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-113-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-114- $form_state->setRedirect('skyhawk_site_fixes.journal_upload');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-115- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-116-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php-117-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-156- '#submit' => ['::replaceSubmit'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-157- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-158- $form['actions']['cancel'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-159- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-160- '#value' => $this->t('Cancel'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-161- '#submit' => ['::cancelSubmit'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-162- '#limit_validation_errors' => [],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-163- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-164- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-165- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-166-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-167- $form['canonical_pdf'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:168: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-169- '#title' => $this->t('Single Page PDF'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-170- '#description' => $this->t('Single page layout PDF.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-171- '#upload_location' => 'private://sajournals/',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-172- '#upload_validators' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-173- 'file_validate_extensions' => ['pdf'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-174- 'file_validate_size' => [50 * 1024 * 1024],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-175- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-176- '#required' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-177- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-179- $form['print_pdf'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:180: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-181- '#title' => $this->t('Spreads PDF'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-182- '#description' => $this->t('Two-page spreads layout for printing.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-183- '#upload_location' => 'private://sajournals/',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-184- '#upload_validators' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-185- 'file_validate_extensions' => ['pdf'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-186- 'file_validate_size' => [50 * 1024 * 1024],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-187- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-188- '#required' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-189- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-191- $form['actions'] = ['#type' => 'actions'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-192- $form['actions']['submit'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-269- $form_state->set('replace_nid', $existing->id());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-270- $form_state->set('replace_label', $existing->getTitle());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-271- $form_state->set('replace_info', $info);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-272- $form_state->set('pending_canonical_fids', $canonical_fids);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-273- $form_state->set('pending_print_fids', $print_fids);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-274- $form_state->setRebuild(TRUE);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-275- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-276- elseif ($adding_new) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-277- $form_state->set('existing_nid', $existing->id());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-278- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-279- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-280-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:281: public function submitForm(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-282- $meta = $form_state->get('meta');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-283- if (!$meta) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-284- $canonical_fids = $form_state->getValue('canonical_pdf');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-285- $print_fids = $form_state->getValue('print_pdf');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-286- $source_file = NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-287- if (!empty($canonical_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-288- $source_file = File::load(reset($canonical_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-289- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-290- elseif (!empty($print_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-291- $source_file = File::load(reset($print_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-292- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-293- if ($source_file) {
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-296- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-297-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-298- $existing_nid = $form_state->get('existing_nid');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-299- if ($existing_nid) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-300- $node = Node::load($existing_nid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-301- if ($node) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-302- $canonical_fids = $form_state->getValue('canonical_pdf');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-303- $print_fids = $form_state->getValue('print_pdf');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-304-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-305- if (!empty($canonical_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-306- $pdf_file = File::load(reset($canonical_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-307- if ($pdf_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:308: $pdf_file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:309: $pdf_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-310- $node->set('field_pdf', ['target_id' => $pdf_file->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-311- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-312- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-313- if (!empty($print_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-314- $print_file = File::load(reset($print_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-315- if ($print_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:316: $print_file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:317: $print_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-318- $node->set('field_pdf_print', ['target_id' => $print_file->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-319- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-320- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:321: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-322- $this->setPageMessage('Added to existing journal: ' . $node->getTitle());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-323- $form_state->setRedirect('entity.node.canonical', ['node' => $node->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-324- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-325- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-326- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-327-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-328- $this->createJournalNode(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-329- $form_state->getValue('canonical_pdf'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-330- $form_state->getValue('print_pdf'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-331- $meta,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-332- $form_state
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-333- );
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-339-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-340- if (!$node) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-341- $this->setPageMessage('Could not load existing node.', 'error');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-342- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-343- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-344-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-345- $canonical_fids = $form_state->get('pending_canonical_fids');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-346- $print_fids = $form_state->get('pending_print_fids');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-347-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-348- if (!empty($canonical_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-349- $pdf_file = File::load(reset($canonical_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-350- if ($pdf_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:351: $pdf_file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:352: $pdf_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-353- $node->set('field_pdf', ['target_id' => $pdf_file->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-354- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-355- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-356- if (!empty($print_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-357- $print_file = File::load(reset($print_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-358- if ($print_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:359: $print_file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:360: $print_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-361- $node->set('field_pdf_print', ['target_id' => $print_file->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-362- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-363- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-364-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:365: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-366- $this->setPageMessage('Updated existing journal: ' . $node->getTitle());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-367- $form_state->setRedirect('entity.node.canonical', ['node' => $node->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-368- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-369-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-370- public function cancelSubmit(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-371- $this->setPageMessage('Upload cancelled.');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-372- $form_state->setRedirect('skyhawk_site_fixes.journal_upload');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-373- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-374-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-375- protected function createJournalNode($canonical_fids, $print_fids, $meta, $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-376- $season_map = [1 => 'Spring', 2 => 'Summer', 3 => 'Fall', 4 => 'Winter'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-377- $year = $meta['year'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-378- $vol = $meta['volume'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-379- $iss = $meta['issue'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-380- $season = $season_map[$iss] ?? 'Issue ' . $iss;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-381- $label = "$season $year (Vol. $vol No. $iss)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-382-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-383- $pdf_file = NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-384- if (!empty($canonical_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-385- $pdf_file = File::load(reset($canonical_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:386: if ($pdf_file) { $pdf_file->setPermanent(); $pdf_file->save(); }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-387- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-388-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-389- $print_file = NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-390- if (!empty($print_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-391- $print_file = File::load(reset($print_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:392: if ($print_file) { $print_file->setPermanent(); $print_file->save(); }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-393- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-394-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-395- $thumb_source = $pdf_file ?: $print_file;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-396- $thumb_file = NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-397-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-398- if ($thumb_source) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-399- $pdf_realpath = \Drupal::service('file_system')->realpath($thumb_source->getFileUri());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-400- $thumb_dir = 'public://sajournals/thumbnails/';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-401- $thumb_filename = $year . '-' . $vol . '.' . $iss . '.jpg';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-402- $thumb_uri = $thumb_dir . $thumb_filename;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-403- $thumb_realpath = \Drupal::service('file_system')->realpath($thumb_dir) . '/' . $thumb_filename;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-404-
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-413- ->accessCheck(FALSE)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-414- ->condition('uri', $thumb_uri)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-415- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-416- if (!empty($existing)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-417- $thumb_file = File::load(reset($existing));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-418- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-419- else {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-420- $thumb_file = File::create([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-421- 'uri' => $thumb_uri,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-422- 'status' => 1,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-423- 'uid' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-424- ]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:425: $thumb_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-426- image_path_flush(\Drupal::service('file_system')->realpath($thumb_uri));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-427- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-428- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-429- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-430-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-431- $values = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-432- 'type' => 'journal',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-433- 'title' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-434- 'status' => 1,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-435- 'uid' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-436- 'field_journal_year' => $year,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-437- 'field_journal_volume' => $vol,
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-445- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-446- if ($print_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-447- $values['field_pdf_print'] = ['target_id' => $print_file->id()];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-448- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-449- if ($thumb_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-450- $values['field_journal_thumbnail'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-451- 'target_id' => $thumb_file->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-452- 'alt' => "$label cover",
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-453- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-454- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-455-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-456- $node = Node::create($values);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:457: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-458-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-459- $this->setPageMessage("Journal created: $label (nid:{$node->id()})");
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-460- if (!$thumb_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-461- $this->setPageMessage("Thumbnail generation failed. Add one manually via the node edit page.", "warning");
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-462- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-463-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-464- $form_state->setRedirect('entity.node.canonical', ['node' => $node->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-465- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-466-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php-467-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-136-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-137- $form['expected_current_fid'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-138- '#type' => 'hidden',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-139- '#value' => $current_fid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-140- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-141-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-142- $form['expected_count'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-143- '#type' => 'hidden',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-144- '#value' => count($items),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-145- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-146-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-147- $form['newsletter'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php:148: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-149- '#title' => $this->t('Next Reunion newsletter PDF'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-150- '#description' => $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-151- 'Choose exactly one PDF containing the next Reunion newsletter/update.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-152- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-153- '#upload_location' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-154- 'private://reunion-updates/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-155- self::ACCEPTANCE_EVENT_NID .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-156- '/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-157- $account->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-158- '#multiple' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-159- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-160- ];
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-295- $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-296- 'This file is identical to the current accepted newsletter. Nothing was changed.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-297- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-298- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-299- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-300- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-301- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-302- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-303-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-304- $form_state->set('validated_fid', $fid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-305- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-306-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php:307: public function submitForm(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-308- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-309- FormStateInterface $form_state
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-310- ): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-312- $fid = (int) $form_state->get('validated_fid');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-313- $uid = (int) $this->currentUser()->id();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-314-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-315- $report = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-316- 'Task: Accept authenticated AUGUST Reunion PDF update for Event 49464',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-317- 'EVENT_NID=49464',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-318- 'EXECUTING_UID=' . $uid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-319- 'FILENAME_POLICY=original_filename_is_provenance_pdf_content_gate_controls_acceptance',
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-417-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-418- $copied_real = $fs->realpath($copied_uri);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-419-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-420- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-421- !$copied_real ||
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-422- !is_file($copied_real) ||
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-423- hash_file('sha256', $copied_real) !== $source_hash
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-424- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-425- throw new \RuntimeException('PUBLIC_COPY_HASH_VERIFICATION_FAILED');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-426- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-427-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-428- $file->setFileUri($copied_uri);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php:429: $file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php:430: $file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-431-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-432- $items[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-433- 'target_id' => $fid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-434- 'display' => 1,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-435- 'description' => '',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-436- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-437-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-438- $audit = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-439- 'operation' => 'reunion_newsletter_update',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-440- 'event_nid' => self::ACCEPTANCE_EVENT_NID,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-441- 'executing_uid' => $uid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-442- 'previous_current_fid' => $previous_fid,
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-444- 'verification' => 'pending_post_save',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-445- 'authorization' => 'authenticated_existing_owner_transitional_fixture',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-446- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-447-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-448- $event->set('field_reunion_newsletter', $items);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-449- $event->setNewRevision(TRUE);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-450- $event->setRevisionUserId($uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-451- $event->setRevisionCreationTime(time());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-452- $event->setRevisionLogMessage(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-453- 'SKYHAWK_REUNION_UPDATE ' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-454- json_encode($audit, JSON_UNESCAPED_SLASHES)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-455- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php:456: $event->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-457-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-458- $node_saved = TRUE;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-459-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-460- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-461- * The private source can now be removed because the same FID
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-462- * points to the verified public copy and the Event revision has
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-463- * persisted the accepted relationship.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-464- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-465- if ($source_real && is_file($source_real)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-466- @unlink($source_real);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-467- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-468-
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-653- $fs = \Drupal::service('file_system');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-654- $public_real = $fs->realpath($copied_uri);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-655-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-656- if ($public_real && is_file($public_real)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-657- @unlink($public_real);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-658- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-659-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-660- $rollback_file = File::load($fid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-661-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-662- if ($rollback_file && $source_uri) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-663- $rollback_file->setFileUri($source_uri);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-664- $rollback_file->setTemporary();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php:665: $rollback_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-666- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-667-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-668- $report[] = 'ROLLBACK=PASS';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-669- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-670- catch (\Throwable $rollback_error) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-671- $report[] = 'ROLLBACK=FAIL';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-672- $report[] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-673- 'ROLLBACK_ERROR=' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-674- str_replace(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-675- ["\r", "\n"],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-676- ' ',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionNewsletterUpdateForm.php-677- $rollback_error->getMessage()
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-2-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-3-declare(strict_types=1);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-4-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-5-namespace Drupal\skyhawk_site_fixes\Form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-6-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-7-use Drupal\Core\Form\FormBase;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-8-use Drupal\Core\Form\FormStateInterface;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-9-use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-10-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-11-final class ManagedFileCoreControlForm extends FormBase {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-12-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-13- public function getFormId(): string {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:14: return 'skyhawk_managed_file_core_control';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-15- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-16-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-17- public function buildForm(array $form, FormStateInterface $form_state): array {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-18- $key_file = '/home/darwus/.skyhawk-managed-file-control-key';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-19-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-20- $expected = is_file($key_file)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-21- ? trim((string) file_get_contents($key_file))
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-22- : '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-23-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-24- $supplied = (string) \Drupal::request()->query->get(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-25- 'key',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-26- ''
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-27- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-28-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-29- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-30- $expected === '' ||
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-31- !hash_equals($expected, $supplied)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-32- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-33- throw new AccessDeniedHttpException();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-34- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-35-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-36- $form['explanation'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-37- '#markup' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:38: '
Drupal 11 core managed_file control. '
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-39- . 'No token workflow, no custom AJAX, no observer, '
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-40- . 'no custom JavaScript, no custom validation.
',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-41- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-42-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-43- $form['files'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:44: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-45- '#title' => $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:46: '#upload_location' => 'private://uploads/core-control/',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-47- '#multiple' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-48- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-49-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-50- $form['instructions'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-51- '#markup' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-52- '
Select one small file first. Drupal core should '
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:53: . 'upload it immediately through its own managed_file AJAX path.
',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-54- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-55-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-56- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-57- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-58-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:59: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php:60: // Intentionally empty. This control tests only core managed_file AJAX.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-61- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-62-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ManagedFileCoreControlForm.php-63-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-58- '#markup' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-59- '
' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-60- 'This upload link has expired.' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-61- '
',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-62- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-63-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-64- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-65- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-66-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-67- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-68- * SKYHAWK_REUNION_BUILD_AUTH_V1
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-69- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:70: * Generic Intake remains public for other purposes.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-71- * Reunion requests require authenticated execution.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-72- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-73- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-74- \Drupal\skyhawk_site_fixes\ReunionIntake::isReunionPurpose(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:75: (string) ($row->purpose ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-76- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-77- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-78-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-79- $authorization =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-80- \Drupal\skyhawk_site_fixes\ReunionIntake::executionAuthorization(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-81- $row,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-82- \Drupal::currentUser()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-83- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-84-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-85- if (empty($authorization['allowed'])) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-86-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-87- if (
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-134- 'This Reunion request is not authorized for the current account.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-135- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-136- ) .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-137- '
',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-138- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-139- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-140-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-141- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-142- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-143- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-144-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-145- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:146: * Authorization must survive core managed_file AJAX.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-147- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-148- $form_state->set(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-149- 'skyhawk_upload_token',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-150- $token
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-151- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-152-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-153- $form['#attached']['library'][] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-154- 'skyhawk_site_fixes/upload_token_public';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-155-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-156- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-157- * This behavior does NOT upload a file itself.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:158: * It clicks Drupal core managed_file's own Upload control
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-159- * immediately after file selection.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-160- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-161- $form['#attached']['library'][] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-162- 'skyhawk_site_fixes/upload_token_auto_upload';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-163-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-164- $form['#attributes']['class'][] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-165- 'skyhawk-public-upload';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-166-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-167- $token_label =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-168- trim((string) ($row->label ?? ''));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-169-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-170- if ($token_label === '') {
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-228- $items .=
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-229- 'Ready to submit: ' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-230- \Drupal\Component\Utility\Html::escape(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-231- $ready_name
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-232- ) .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-233- '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-234- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-235-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-236- $ready_markup =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-237- '' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-238- '
Upload complete.' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-239- '
' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:240: 'These are the files that Finish submission will finalize.' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-241- '
';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-242- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-243-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-244- $form['token_identity'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-245- '#type' => 'html_tag',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-246- '#tag' => 'h2',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-247- '#value' => $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-248- 'Upload Files: @label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-249- ['@label' => $token_label]
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-250- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-251- '#weight' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-252- ];
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-267- '
Request instructions follow below the upload controls.' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-268- '',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-269- '#weight' => 20,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-270- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-271-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-272- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-273- * Drupal core remains the upload owner.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-274- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-275- * The ready-state markup belongs INSIDE this element so
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-276- * core uploadAjaxCallback replaces it when the fid changes.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-277- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-278- $form['files'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:279: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-280- '#title' => $this->t('Upload files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-281- '#upload_location' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:282: 'private://uploads/' . $token . '/',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-283- '#multiple' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-284- '#weight' => 30,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-285- '#description' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-286- \Drupal\Core\Render\Markup::create(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-287- $ready_markup
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-288- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-289- '#upload_validators' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-290- 'FileSizeLimit' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-291- 'fileLimit' => self::MAX_FILE_BYTES,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-292- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-293- 'FileExtension' => [],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-294- ],
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-296-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-297- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-298- * Finish belongs directly under the upload widget.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-299- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-300- $form['actions'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-301- '#type' => 'actions',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-302- '#weight' => 31,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-303- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-304-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-305- $form['actions']['submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-306- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-307- '#value' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:308: $this->t('Finish submission'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-309- '#button_type' => 'primary',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-310- '#attributes' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-311- 'class' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-312- 'skyhawk-finish-submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-313- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-314- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-315- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-316- 'disabled' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-317- ':input[name="files[fids]"]' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-318- 'empty' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-319- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-320- ],
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-322- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-323-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-324- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-325- * Receipt is local to Finish.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-326- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-327- $form['page_message'] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-328- $this->renderPageMessage();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-329-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-330- $form['page_message']['#weight'] = 32;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-331-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-332- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-333- * Still below the upload box, but no longer separating
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:334: * the file widget from Finish submission.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-335- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-336- $form['request_instructions'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-337- '#type' => 'details',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-338- '#title' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-339- $this->t('Request instructions'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-340- '#open' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-341- '#weight' => 40,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-342- 'content' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-343- '#markup' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-344- $request_instructions !== ''
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-345- ? '' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-346- nl2br(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-357-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-358- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-359- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-360-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-361- public function validateForm(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-362- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-363- FormStateInterface $form_state
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-364- ): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-365-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-366- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-367- * Intentionally minimal.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-368- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:369: * managed_file performs its own upload validation.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-370- * Product validation returns only after Drupal core has
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-371- * completed the AJAX upload.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-372- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-373-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-374- $trigger = $form_state->getTriggeringElement();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-375-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-376- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-377- * Do not run final-form validation during Drupal's own
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:378: * managed_file Upload/Remove AJAX transaction.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-379- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-380- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-381- isset($trigger['#parents']) &&
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-382- is_array($trigger['#parents']) &&
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-383- in_array('files', $trigger['#parents'], TRUE)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-384- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-385- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-386- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-387-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-388- $fids = $form_state->getValue('files') ?: [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-389-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-390- if (empty($fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-391- $form_state->setErrorByName(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-392- 'files',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-393- $this->t('Select at least one file.')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-394- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-395- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-396- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-397-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:398: public function submitForm(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-399- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-400- FormStateInterface $form_state
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-401- ): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-402-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-403- $token = (string) $form_state->get(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-404- 'skyhawk_upload_token'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-405- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-406-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-407- if (!preg_match('/^[a-f0-9]{32}$/', $token)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-408- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-409- $this->t('Upload token state was lost.')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-410- );
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-449- if (empty($fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-450- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-451- $this->t('No uploaded files were found.')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-452- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-453- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-454- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-455-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-456- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-457- * SKYHAWK_REUNION_SUBMIT_ACCEPT_V1
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-458- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-459- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-460- \Drupal\skyhawk_site_fixes\ReunionIntake::isReunionPurpose(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:461: (string) ($row->purpose ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-462- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-463- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-464-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-465- $authorization =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-466- \Drupal\skyhawk_site_fixes\ReunionIntake::executionAuthorization(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-467- $row,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-468- \Drupal::currentUser()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-469- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-470-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-471- if (empty($authorization['allowed'])) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-472- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-473- $this->t(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-537- !empty(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-538- $accepted[
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-539- 'new_acceptance'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-540- ]
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-541- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-542- ) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-543-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-544- \Drupal::database()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-545- ->update(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-546- 'skyhawk_upload_token'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-547- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-548- ->expression(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:549: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:550: 'uses_count + :inc',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-551- [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-552- ':inc' => 1,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-553- ]
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-554- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-555- ->condition(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-556- 'token',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-557- $token
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-558- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-559- ->condition(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-560- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-561- 'active'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-562- )
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-587-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-588- $storage =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-589- \Drupal::entityTypeManager()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-590- ->getStorage('file');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-591-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-592- $files = $storage->loadMultiple($fids);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-593-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-594- $count = 0;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-595- $submitted_names = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-596-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-597- foreach ($files as $file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-598- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:599: * Core managed_file created the temporary file entity.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-600- * Final submission makes that exact current-batch file
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-601- * permanent.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-602- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:603: $file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:604: $file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-605-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-606- $submitted_names[] =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-607- (string) $file->getFilename();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-608-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-609- $count++;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-610- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-611-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-612- if ($count < 1) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-613- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-614- $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-615- 'No uploaded files could be finalized.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-616- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-617- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-618- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-619- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-620-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-621- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-622- * Token remains reusable authorization.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-623- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-624- \Drupal::database()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-625- ->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-626- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:627: 'uses_count' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:628: (int) $row->uses_count + $count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-629- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-630- ->condition('token', $token)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-631- ->condition('status', 'active')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-632- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-633-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-634- $submitted_list =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-635- implode(', ', $submitted_names);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-636-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-637- $this->setPageMessage(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-638- $this->formatPlural(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-639- $count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-640- 'Submission complete. 1 file finalized: @files',
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-217- $contact_select = (string) $form_state->getValue('contact_select');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-218- if ($contact_select === '_new') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-219- $name = trim((string) $form_state->getValue('new_contact_name'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-220- $username = trim((string) $form_state->getValue('new_contact_username'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-221- $email = trim((string) $form_state->getValue('new_contact_email'));
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-267- $email = $contact->email;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-268- if (!empty($contact->uid)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-269- $user = User::load((int) $contact->uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-270- $email = $user ? $user->getEmail() : NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-271- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-273- if (!$email) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-274- $this->messenger()->addError($this->t('No email address could be resolved for this contact.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-275- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-276- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-277-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-278- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:279: $purpose = (string) $form_state->getValue('purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:280: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:281: $purpose = trim((string) $form_state->getValue('purpose_other'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-282- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-283-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:284: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:285: $this->messenger()->addError($this->t('A purpose is required.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-286- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-287- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-289- $expiry_days = max(7, (int) $form_state->getValue('expiry_days'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-290- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-291- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-292-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-293- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-294- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-295- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-296- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-297- 'recipient_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:298: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-299- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138:300: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-301- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-302- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-303- 'contact_id' => $contact_id,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-304- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-305- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-306- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-307- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-308-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-309- $upload_url = \Drupal::request()->getSchemeAndHttpHost() . '/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-310- $expiry_text = \Drupal::service('date.formatter')->format($expiry, 'long');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134429Z-2668138-312- $result = \Drupal::service('plugin.manager.mail')->mail(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-217- $contact_select = (string) $form_state->getValue('contact_select');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-218- if ($contact_select === '_new') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-219- $name = trim((string) $form_state->getValue('new_contact_name'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-220- $username = trim((string) $form_state->getValue('new_contact_username'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-221- $email = trim((string) $form_state->getValue('new_contact_email'));
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-267- $email = $contact->email;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-268- if (!empty($contact->uid)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-269- $user = User::load((int) $contact->uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-270- $email = $user ? $user->getEmail() : NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-271- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-273- if (!$email) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-274- $this->messenger()->addError($this->t('No email address could be resolved for this contact.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-275- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-276- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-277-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-278- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:279: $purpose = (string) $form_state->getValue('purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:280: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:281: $purpose = trim((string) $form_state->getValue('purpose_other'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-282- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-283-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:284: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:285: $this->messenger()->addError($this->t('A purpose is required.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-286- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-287- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-289- $expiry_days = max(7, (int) $form_state->getValue('expiry_days'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-290- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-291- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-292-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-293- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-294- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-295- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-296- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-297- 'recipient_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:298: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-299- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138:300: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-301- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-302- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-303- 'contact_id' => $contact_id,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-304- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-305- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-306- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-307- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-308-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-309- $upload_url = \Drupal::request()->getSchemeAndHttpHost() . '/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-310- $expiry_text = \Drupal::service('date.formatter')->format($expiry, 'long');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T134911Z-2668138-312- $result = \Drupal::service('plugin.manager.mail')->mail(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-102- '#title' => $this->t('How would you like to provide the source?'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-103- '#options' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-104- 'upload' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-105- $this->t('Upload a source document'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-106- 'paste' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-107- $this->t('Paste source text'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-108- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-109- '#default_value' => 'upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-110- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-113- $form['source_upload'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php:114: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-115- '#title' => $this->t('Source document'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-116- '#description' => $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-117- 'Choose one ordinary source file such as PDF, DOC/DOCX, TXT, or similar. The original file is preserved privately.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-118- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-119- '#upload_location' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-120- 'private://reunion-requests/' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-121- $account->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-122- '#multiple' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-123- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-124- 'visible' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-125- ':input[name="source_mode"]' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-126- 'value' => 'upload',
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-275- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-276- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-277- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-278- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-279-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-280- $form_state->set(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-281- 'source_text_exact',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-282- $text
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-283- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-284- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-285- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-286-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php:287: public function submitForm(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-288- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-289- FormStateInterface $form_state
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-290- ): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-291-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-292- $uid =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-293- (int) $this->currentUser()->id();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-294-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-295- $account =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-296- User::load($uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-297-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-298- if (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-299- !$account ||
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-398- $node->setRevisionLogMessage(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-399- 'REUNION_REQUEST source=' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-400- $mode .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-401- ' sha256=' .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-402- $source_hash .
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-403- (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-404- $fid
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-405- ? ' fid=' . $fid
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-406- : ''
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-407- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-408- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-409-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php:410: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-411-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-412- $nid =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-413- (int) $node->id();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-414-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-415- if ($mode === 'upload') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-416-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-417- $file =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-418- File::load($fid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-419-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-420- if (!$file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-421- $node->delete();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-422-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-423- throw new \RuntimeException(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-424- 'SOURCE_FILE_MISSING_AFTER_DRAFT_CREATE'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-425- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-426- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-427-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php:428: $file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php:429: $file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-430-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-431- \Drupal::service('file.usage')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-432- ->add(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-433- $file,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-434- 'skyhawk_site_fixes',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-435- 'reunion_request_source',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-436- $nid
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-437- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-438-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-439- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-440- * Verify the file usage relationship, not merely the API call.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionRequestForm.php-441- */
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-217- $contact_select = (string) $form_state->getValue('contact_select');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-218- if ($contact_select === '_new') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-219- $name = trim((string) $form_state->getValue('new_contact_name'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-220- $username = trim((string) $form_state->getValue('new_contact_username'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-221- $email = trim((string) $form_state->getValue('new_contact_email'));
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-267- $email = $contact->email;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-268- if (!empty($contact->uid)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-269- $user = User::load((int) $contact->uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-270- $email = $user ? $user->getEmail() : NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-271- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-273- if (!$email) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-274- $this->messenger()->addError($this->t('No email address could be resolved for this contact.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-275- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-276- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-277-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-278- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:279: $purpose = (string) $form_state->getValue('purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:280: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:281: $purpose = trim((string) $form_state->getValue('purpose_other'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-282- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-283-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:284: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:285: $this->messenger()->addError($this->t('A purpose is required.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-286- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-287- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-289- $expiry_days = max(7, (int) $form_state->getValue('expiry_days'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-290- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-291- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-292-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-293- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-294- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-295- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-296- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-297- 'recipient_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:298: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-299- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557:300: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-301- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-302- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-303- 'contact_id' => $contact_id,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-304- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-305- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-306- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-307- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-308-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-309- $upload_url = \Drupal::request()->getSchemeAndHttpHost() . '/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-310- $expiry_text = \Drupal::service('date.formatter')->format($expiry, 'long');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030538Z-3327557-312- $result = \Drupal::service('plugin.manager.mail')->mail(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-217- $contact_select = (string) $form_state->getValue('contact_select');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-218- if ($contact_select === '_new') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-219- $name = trim((string) $form_state->getValue('new_contact_name'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-220- $username = trim((string) $form_state->getValue('new_contact_username'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-221- $email = trim((string) $form_state->getValue('new_contact_email'));
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-267- $email = $contact->email;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-268- if (!empty($contact->uid)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-269- $user = User::load((int) $contact->uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-270- $email = $user ? $user->getEmail() : NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-271- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-273- if (!$email) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-274- $this->messenger()->addError($this->t('No email address could be resolved for this contact.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-275- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-276- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-277-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-278- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:279: $purpose = (string) $form_state->getValue('purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:280: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:281: $purpose = trim((string) $form_state->getValue('purpose_other'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-282- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-283-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:284: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:285: $this->messenger()->addError($this->t('A purpose is required.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-286- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-287- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-289- $expiry_days = max(7, (int) $form_state->getValue('expiry_days'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-290- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-291- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-292-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-293- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-294- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-295- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-296- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-297- 'recipient_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:298: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-299- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557:300: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-301- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-302- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-303- 'contact_id' => $contact_id,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-304- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-305- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-306- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-307- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-308-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-309- $upload_url = \Drupal::request()->getSchemeAndHttpHost() . '/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-310- $expiry_text = \Drupal::service('date.formatter')->format($expiry, 'long');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030305Z-3327557-312- $result = \Drupal::service('plugin.manager.mail')->mail(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-217- $recipient_email = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-218- (string) $form_state->getValue('recipient_email')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-219- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-220-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-221- if (
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-228- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-229- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-230-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-231- if (!(bool) $form_state->getValue('recipient_confirmed')) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-232- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-233- $this->t('Confirm that the recipient email address was verified.')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-234- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-235- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-236- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-237-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-238- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-239-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:240: $purpose = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:241: (string) $form_state->getValue('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-242- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-243-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:244: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:245: $purpose = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:246: (string) $form_state->getValue('purpose_other')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-247- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-248- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-249-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:250: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-251- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:252: $this->t('A purpose is required.')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-253- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-254- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-255- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-256-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-257- $instructions = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-258- (string) $form_state->getValue('request_instructions')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-259- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-260-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-261- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-262- $instructions =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-263- \Drupal\skyhawk_site_fixes\IntakePurpose::instructions(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:264: $purpose
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-265- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-266- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-267-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-268- if (trim($instructions) === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-269- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-270- $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:271: 'Request instructions are required when the selected purpose has no standard instructions.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-272- )
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-273- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-274- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-275- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-276-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-277- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-278- * SKYHAWK_REUNION_IDENTITY_ISSUANCE_V1
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-279- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-280- $reunion_identity =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-281- \Drupal\skyhawk_site_fixes\ReunionIntake::prepareIssuanceData(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:282: $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-283- $recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-284- $form_state,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-285- (int) \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-286- $now
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-287- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-289- if (empty($reunion_identity['ok'])) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-290- $this->messenger()->addError(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-291- $this->t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-292- (string) (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-293- $reunion_identity['error'] ??
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-294- 'The Reunion recipient identity could not be verified.'
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-336- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-337- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-338-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-339- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-340- * Persist the complete request before constructing or sending
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-341- * the invitation. contact_id remains NULL by schema design.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-342- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-343- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-344- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-345- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-346- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-347- 'recipient_email' => $recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:348: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-349- 'data' => $request_data,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-350- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:351: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-352- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-353- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-354- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-355- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-356- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-357- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-358-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-359- $upload_url =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-360- 'https://skyhawk.org/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-361-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-362- $expiry_text =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php-363- \Drupal::service('date.formatter')
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-95-
After submission you will receive an email to verify your address and publish your page.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-96-
',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-97- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-98-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-99- $form['organizer_email'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-100- '#type' => 'email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-101- '#title' => $this->t('Your Email Address'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-102- '#description' => $this->t('A verification link will be sent here. This email will appear on your reunion page as a contact link.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-103- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-104- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-105-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-106- $form['reunion_pdf'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php:107: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-108- '#title' => $this->t('Reunion Announcement PDF'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-109- '#description' => $this->t('Upload your reunion flyer or announcement as a PDF file. Maximum 20MB.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-110- '#upload_location' => 'public://reunions/',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-111- '#upload_validators' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-112- 'file_validate_extensions' => ['pdf'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-113- 'file_validate_size' => [20 * 1024 * 1024],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-114- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-115- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-116- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-117-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-118- $form['actions'] = ['#type' => 'actions'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-119- $form['actions']['submit'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-206-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-207- $parts = explode(':', $result, 5);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-208- $form_state->set('reunion_year', $parts[1] ?? date('Y'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-209- $form_state->set('reunion_title', $parts[2] ?? 'Reunion ' . ($parts[1] ?? date('Y')));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-210- $form_state->set('reunion_location', $parts[3] ?? '');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-211- $form_state->set('reunion_date', $parts[4] ?? '');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-212- $form_state->set('reunion_fids', $fids);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-213- $form_state->set('organizer_email', $form_state->getValue('organizer_email'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-214- $form_state->set('step', 2);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-215- $form_state->setRebuild(TRUE);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-216- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-217-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php:218: public function submitForm(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-219- $step = $form_state->get('step') ?: 1;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-220- if ($step !== 2) return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-221-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-222- $email = $form_state->get('organizer_email');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-223-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-224- /*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-225- * Reunion ownership is a member identity decision.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-226- * No UID-1 fallback is permitted.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-227- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-228- $owner_uids = \Drupal::entityQuery('user')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-229- ->accessCheck(FALSE)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-230- ->condition('status', 1)
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-244- $year = $form_state->get('reunion_year') ?: date('Y');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-245- $title = $form_state->getValue('confirm_title') ?: 'Reunion ' . $year;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-246- $location = $form_state->getValue('confirm_location') ?: '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-247- $date_str = $form_state->getValue('confirm_date') ?: '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-248-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-249- $pdf_file = File::load(reset($fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-250- if (!$pdf_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-251- \Drupal::messenger()->addError('Could not load uploaded file. Please try again.');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-252- $form_state->set('step', 1);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-253- $form_state->setRebuild(TRUE);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-254- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-255- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php:256: $pdf_file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php:257: $pdf_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-258-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-259- $verify_token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-260- $manage_token = \Drupal::service('uuid')->generate();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-261- $verify_expiry = time() + (7 * 24 * 60 * 60);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-262-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-263- $node = Node::create([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-264- 'type' => 'reunion_event',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-265- 'title' => substr($title, 0, 80),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-266- 'status' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-267- 'uid' => $owner_uid,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-268- 'field_event_location' => $location,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-269- 'field_organizer_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-270- 'field_manage_token' => $manage_token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-271- 'field_verify_token' => $verify_token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-272- 'field_verify_expiry' => $verify_expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-273- 'field_reunion_newsletter' => [['target_id' => $pdf_file->id()]],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-274- 'body' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-275- 'value' => '',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-276- 'format' => 'full_html',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-277- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-278- ]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php:279: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-280-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-281- $base = \Drupal::request()->getSchemeAndHttpHost();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-282- $verify_url = $base . '/reunion/verify/' . $verify_token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-283- $manage_url = $base . '/reunion/manage/' . $manage_token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-284-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-285- \Drupal::service('plugin.manager.mail')->mail(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-286- 'skyhawk_site_fixes', 'reunion_verify', $email, 'en',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-287- [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-288- 'title' => $title,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-289- 'verify_url' => $verify_url,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-290- 'manage_url' => $manage_url,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php-291- 'expiry' => date('F j, Y', $verify_expiry),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-34- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-35-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-36- $form['actions'] = ['#type' => 'actions'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-37- $form['actions']['generate'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-38- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-39- '#value' => $this->t('Generate New Token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-40- '#attributes' => ['class' => ['button--danger']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-41- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-42-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-43- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-44- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-45-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php:46: public function submitForm(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-47- $token = bin2hex(random_bytes(12));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-48- \Drupal::state()->set('reunion_upload_token', $token);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-49- $base = \Drupal::request()->getSchemeAndHttpHost();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-50- $url = $base . '/community/event-submission/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-51- \Drupal::messenger()->addMessage('New token generated. Upload URL: ' . $url);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-52- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-53-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionTokenAdminForm.php-54-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-63- '#type' => 'url',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-64- '#title' => $this->t('Hotel Booking Link'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-65- '#default_value' => $node->get('field_hotel_link')->uri ?? '',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-66- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-67-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-68- $form['field_registration_link'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-69- '#type' => 'url',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-70- '#title' => $this->t('Registration Link'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-71- '#default_value' => $node->get('field_registration_link')->uri ?? '',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-72- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-73-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-74- $form['new_newsletter'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php:75: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-76- '#title' => $this->t('Upload New Newsletter PDF'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-77- '#description' => $this->t('Upload a new newsletter. Previous newsletters will be kept and listed below the current one.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-78- '#upload_location' => 'public://reunions/',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-79- '#upload_validators' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-80- 'file_validate_extensions' => ['pdf'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-81- 'file_validate_size' => [20 * 1024 * 1024],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-82- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-83- '#required' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-86- // Show existing newsletters with delete option
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-87- $newsletters = $node->get('field_reunion_newsletter')->getValue();
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-101- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-102- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-103-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-104- $form['actions'] = ['#type' => 'actions'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-105- $form['actions']['submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-106- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-107- '#value' => $this->t('Update Reunion Page'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-108- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-109-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-110- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-111- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php:113: public function submitForm(array &$form, FormStateInterface $form_state) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-114- $token = $form_state->get('manage_token');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-115- $nid = $form_state->get('node_id');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-116- $node = Node::load($nid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-117-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-118- if (!$node) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-119- \Drupal::messenger()->addError('Could not load your reunion page.');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-120- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-121- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-122-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-123- // Update fields
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-124- $node->set('field_event_location', $form_state->getValue('field_event_location'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-125-
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-146- $keep[] = $item;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-147- } else {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-148- $file = File::load($item['target_id']);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-149- if ($file) { $file->delete(); }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-150- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-151- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-152-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-153- // Add new newsletter at top
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-154- $new_fids = $form_state->getValue('new_newsletter');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-155- if (!empty($new_fids)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-156- $new_file = File::load(reset($new_fids));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-157- if ($new_file) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php:158: $new_file->setPermanent();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php:159: $new_file->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-160- array_unshift($keep, ['target_id' => $new_file->id()]);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-161- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-162- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-163-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-164- $node->set('field_reunion_newsletter', $keep);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php:165: $node->save();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-166-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-167- \Drupal::messenger()->addMessage('Your reunion page has been updated.');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-168- $alias = \Drupal::service('path_alias.manager')->getAliasByPath('/node/' . $nid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-169- $form_state->setRedirectUrl(\Drupal\Core\Url::fromUri('internal:' . $alias));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-170- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-171-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/ReunionManageForm.php-172-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-217- $contact_select = (string) $form_state->getValue('contact_select');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-218- if ($contact_select === '_new') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-219- $name = trim((string) $form_state->getValue('new_contact_name'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-220- $username = trim((string) $form_state->getValue('new_contact_username'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-221- $email = trim((string) $form_state->getValue('new_contact_email'));
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-267- $email = $contact->email;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-268- if (!empty($contact->uid)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-269- $user = User::load((int) $contact->uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-270- $email = $user ? $user->getEmail() : NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-271- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-273- if (!$email) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-274- $this->messenger()->addError($this->t('No email address could be resolved for this contact.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-275- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-276- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-277-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-278- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:279: $purpose = (string) $form_state->getValue('purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:280: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:281: $purpose = trim((string) $form_state->getValue('purpose_other'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-282- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-283-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:284: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:285: $this->messenger()->addError($this->t('A purpose is required.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-286- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-287- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-289- $expiry_days = max(7, (int) $form_state->getValue('expiry_days'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-290- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-291- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-292-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-293- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-294- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-295- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-296- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-297- 'recipient_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:298: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-299- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557:300: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-301- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-302- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-303- 'contact_id' => $contact_id,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-304- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-305- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-306- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-307- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-308-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-309- $upload_url = \Drupal::request()->getSchemeAndHttpHost() . '/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-310- $expiry_text = \Drupal::service('date.formatter')->format($expiry, 'long');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T030137Z-3327557-312- $result = \Drupal::service('plugin.manager.mail')->mail(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-75- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-76- 'visible' => [':input[name="contact_select"]' => ['value' => '_new']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-77- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-78- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-79-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-80- $known = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-81- 'squadron_photo_upload' => 'squadron_photo_upload',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-82- 'reunion_submission' => 'reunion_submission',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-83- 'raw_photo_contribution' => 'raw_photo_contribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-84- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-85-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-86- $existing = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:87: ->fields('t', ['purpose'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-88- ->distinct()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:89: ->orderBy('purpose')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-90- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-91- ->fetchCol();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-92-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:93: foreach ($existing as $purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:94: $known[$purpose] = $purpose;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-95- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-96- $known['_other'] = $this->t('Other (specify)...');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-97-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:98: $form['create']['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-99- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-100- '#title' => $this->t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-101- '#options' => $known,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-102- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-103- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-104-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:105: $form['create']['purpose_other'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-106- '#type' => 'textfield',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:107: '#title' => $this->t('New purpose name'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-108- '#states' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:109: 'visible' => [':input[name="purpose"]' => ['value' => '_other']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-111- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-112-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-113- $form['create']['expiry_days'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-114- '#type' => 'number',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-115- '#title' => $this->t('Expires in (days)'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-116- '#default_value' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-117- '#min' => 7,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-118- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-119- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-120-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-121- $form['create']['generate'] = [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-155- $form['revoke']['revoke_submit'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-156- '#type' => 'submit',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-157- '#value' => $this->t('Revoke token'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-158- '#submit' => ['::revokeToken'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-159- '#limit_validation_errors' => [['revoke_id']],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-160- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-161-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-162- $rows = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-163- $history = $db->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-164- ->fields('t', [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-165- 'label',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-166- 'recipient_email',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:167: 'purpose',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:168: 'uses_count',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-169- 'status',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-170- 'created',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-171- 'expiry',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-172- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-173- ->orderBy('created', 'DESC')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-174- ->range(0, 50)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-175- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-177- foreach ($history as $row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-178- $rows[] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-179- $row->label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-180- $row->recipient_email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:181: $row->purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:182: $row->uses_count,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-183- $row->status,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-184- \Drupal::service('date.formatter')->format($row->created, 'short'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-185- $row->expiry
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-186- ? \Drupal::service('date.formatter')->format($row->expiry, 'short')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-187- : '-',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-188- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-189- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-190-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-191- $form['history'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-192- '#type' => 'table',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-193- '#header' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-194- $this->t('Label'),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-197- $this->t('Files'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-198- $this->t('Status'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-199- $this->t('Created'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-200- $this->t('Expires'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-201- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-202- '#rows' => $rows,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-203- '#empty' => $this->t('No tokens issued yet.'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-204- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-205-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-206- return $form;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-207- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-208-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:209: public function submitForm(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-210- // All actions use explicit submit handlers.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-211- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-212-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-213- public function generateToken(array &$form, FormStateInterface $form_state): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-214- $db = \Drupal::database();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-215- $now = \Drupal::time()->getRequestTime();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-216-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-217- $contact_select = (string) $form_state->getValue('contact_select');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-218- if ($contact_select === '_new') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-219- $name = trim((string) $form_state->getValue('new_contact_name'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-220- $username = trim((string) $form_state->getValue('new_contact_username'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-221- $email = trim((string) $form_state->getValue('new_contact_email'));
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-267- $email = $contact->email;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-268- if (!empty($contact->uid)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-269- $user = User::load((int) $contact->uid);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-270- $email = $user ? $user->getEmail() : NULL;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-271- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-272-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-273- if (!$email) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-274- $this->messenger()->addError($this->t('No email address could be resolved for this contact.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-275- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-276- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-277-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-278- $label = trim((string) $form_state->getValue('label'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:279: $purpose = (string) $form_state->getValue('purpose');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:280: if ($purpose === '_other') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:281: $purpose = trim((string) $form_state->getValue('purpose_other'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-282- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-283-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:284: if ($purpose === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:285: $this->messenger()->addError($this->t('A purpose is required.'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-286- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-287- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-288-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-289- $expiry_days = max(7, (int) $form_state->getValue('expiry_days'));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-290- $expiry = $now + ($expiry_days * 86400);
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-291- $token = bin2hex(random_bytes(16));
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-292-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-293- $db->insert('skyhawk_upload_token')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-294- ->fields([
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-295- 'token' => $token,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-296- 'label' => $label,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-297- 'recipient_email' => $email,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:298: 'purpose' => $purpose,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-299- 'uses_allowed' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138:300: 'uses_count' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-301- 'status' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-302- 'expiry' => $expiry,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-303- 'contact_id' => $contact_id,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-304- 'created_by' => \Drupal::currentUser()->id(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-305- 'created' => $now,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-306- ])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-307- ->execute();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-308-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-309- $upload_url = \Drupal::request()->getSchemeAndHttpHost() . '/upload/' . $token;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-310- $expiry_text = \Drupal::service('date.formatter')->format($expiry, 'long');
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-311-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak-20260830T033404Z-2668138-312- $result = \Drupal::service('plugin.manager.mail')->mail(
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-1- 'General File Request',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-18- 'reunion_event' => 'Reunion Event',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-19- 'bod_event' => 'BOD Meeting Event',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-20- 'photo_media' => 'Photo / Media Collection',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-21- 'other' => 'Other / Special Request',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-22- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-23- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-24-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php:25: public static function isSupported(string $purpose): bool {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php:26: return array_key_exists($purpose, self::options());
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-27- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-28-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php:29: public static function instructions(string $purpose): string {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php:30: return match ($purpose) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-31- 'reunion_event' => self::reunion(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-32- 'bod_event' => self::bod(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-33- 'photo_media' => self::photoMedia(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-34- default => self::generic(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-35- };
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-36- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-37-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-38- private static function generic(): string {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-39- return <<<'TEXT'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-40-Provide the source material requested in this invitation.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-41-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-42-Use the best original files available. Source material may include
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-43-PDF, Word documents, text files, photographs, ZIP archives, video,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-44-or other file formats supported by the uploader.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-45-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-46-Open important files before uploading and confirm that they are
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-47-complete and readable.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-48-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-49-Selecting a file transfers it to Skyhawk.org. Review the uploaded
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php:50:file list before choosing Finish submission.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-51-TEXT;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-52- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-53-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-54- private static function reunion(): string {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-55- return <<<'TEXT'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-56-Provide the best current source material you have for this Reunion
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-57-Event.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-58-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-59-You do not need to create a PDF specifically for Skyhawk.org.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-60-Existing source material may be a PDF, Word document, text file,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-61-newsletter, announcement, schedule, photographs, or other useful
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/src/IntakePurpose.php-62-files.
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-158- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-159- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-160- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-161- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-162- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-163- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-164- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-165-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-166- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-167- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-168- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-169- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557:170: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-171- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-172- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-173- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-174- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-175- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-176- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-177- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-179- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-180- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-181- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T015425Z-3327557-182- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-11-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-12-The current compatibility population contains:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-13-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-14- - Legacy Layout-Dependent nodes
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-15- - Modernization Candidate nodes not yet converted
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-16-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-17-As pages are modernized, they should eventually leave the compatibility list.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-18-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-19-Do not add modern page design here.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-20-Do not use this file for global site presentation.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-21-Do not use this file for page-family styling.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-22-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css:23:Its purpose is narrowly defined:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-24-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-25- Preserve presentation behavior required by historical Skyhawk HTML while
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-26- allowing modern Drupal pages to escape old rescue rules.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-27-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-28-==============================================================================
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-29-*/
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-30-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-31-/*
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-32- * Historical body fields may contain tables or other constructs wider than
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-33- * their Bootstrap content container.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-34- *
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/css/legacy.css-35- * Scroll the BODY CONTENT locally rather than forcing this behavior onto
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-158- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-159- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-160- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-161- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-162- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-163- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-164- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-165-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-166- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-167- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-168- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-169- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167:170: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-171- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-172- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-173- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-174- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-175- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-176- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-177- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-179- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-180- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-181- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T150853Z-2317167-182- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-158- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-159- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-160- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-161- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-162- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-163- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-164- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-165-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-166- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-167- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-168- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-169- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557:170: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-171- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-172- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-173- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-174- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-175- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-176- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-177- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-179- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-180- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-181- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-182- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-829- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-830-function skyhawk_site_fixes_form_alter(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-831- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-832- \Drupal\Core\Form\FormStateInterface $form_state,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-833- string $form_id
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-834-): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-835- $object = $form_state->getFormObject();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-836-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-837- if (!$object instanceof \Drupal\skyhawk_site_fixes\Form\UploadTokenAdminForm) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-838- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-839- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-840-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557:841: $form['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-842- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-843- '#title' => t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-844- '#options' => \Drupal\skyhawk_site_fixes\IntakePurpose::options(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-845- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-846- '#weight' => -30,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-847- '#description' => t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-848- 'Choose what this request is for. Purpose controls instructions and downstream processing; the uploader remains format-agnostic.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-849- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-850- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-851-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-852- $form['recipient_email'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-853- '#type' => 'email',
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-904- if (!preg_match(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-905- '#https?://[^\s]+/upload/([A-Za-z0-9_-]+)#',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-906- $body,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-907- $match
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-908- )) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-909- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-910- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-911-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-912- $token = $match[1];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-913-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-914- $row = \Drupal::database()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-915- ->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557:916: ->fields('t', ['purpose', 'data'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-917- ->condition('token', $token)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-918- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-919- ->fetchObject();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-920-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-921- if (!$row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-922- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-923- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-924-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-925- $data = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-926-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-927- if (!empty($row->data)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-928- $decoded = json_decode((string) $row->data, TRUE);
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-930- if (is_array($decoded)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-931- $data = $decoded;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-932- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-933- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-934-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-935- $instructions = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-936- (string) ($data['instructions'] ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-937- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-938-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-939- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-940- $instructions =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-941- \Drupal\skyhawk_site_fixes\IntakePurpose::instructions(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557:942: (string) $row->purpose
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-943- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-944- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-945-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-946- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-947- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-948- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-949-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-950- $message['body'][] = '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-951- $message['body'][] = 'REQUEST INSTRUCTIONS';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-952- $message['body'][] = '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-953- $message['body'][] = $instructions;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025507Z-3327557-954-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-158- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-159- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-160- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-161- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-162- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-163- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-164- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-165-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-166- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-167- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-168- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-169- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557:170: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-171- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-172- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-173- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-174- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-175- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-176- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-177- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-179- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-180- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-181- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-182- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-829- */
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-830-function skyhawk_site_fixes_form_alter(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-831- array &$form,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-832- \Drupal\Core\Form\FormStateInterface $form_state,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-833- string $form_id
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-834-): void {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-835- $object = $form_state->getFormObject();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-836-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-837- if (!$object instanceof \Drupal\skyhawk_site_fixes\Form\UploadTokenAdminForm) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-838- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-839- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-840-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557:841: $form['purpose'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-842- '#type' => 'select',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-843- '#title' => t('Purpose'),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-844- '#options' => \Drupal\skyhawk_site_fixes\IntakePurpose::options(),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-845- '#required' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-846- '#weight' => -30,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-847- '#description' => t(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-848- 'Choose what this request is for. Purpose controls instructions and downstream processing; the uploader remains format-agnostic.'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-849- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-850- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-851-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-852- $form['recipient_email'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-853- '#type' => 'email',
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-904- if (!preg_match(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-905- '#https?://[^\s]+/upload/([A-Za-z0-9_-]+)#',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-906- $body,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-907- $match
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-908- )) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-909- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-910- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-911-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-912- $token = $match[1];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-913-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-914- $row = \Drupal::database()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-915- ->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557:916: ->fields('t', ['purpose', 'data'])
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-917- ->condition('token', $token)
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-918- ->execute()
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-919- ->fetchObject();
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-920-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-921- if (!$row) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-922- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-923- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-924-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-925- $data = [];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-926-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-927- if (!empty($row->data)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-928- $decoded = json_decode((string) $row->data, TRUE);
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-930- if (is_array($decoded)) {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-931- $data = $decoded;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-932- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-933- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-934-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-935- $instructions = trim(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-936- (string) ($data['instructions'] ?? '')
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-937- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-938-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-939- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-940- $instructions =
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-941- \Drupal\skyhawk_site_fixes\IntakePurpose::instructions(
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557:942: (string) $row->purpose
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-943- );
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-944- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-945-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-946- if ($instructions === '') {
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-947- return;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-948- }
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-949-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-950- $message['body'][] = '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-951- $message['body'][] = 'REQUEST INSTRUCTIONS';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-952- $message['body'][] = '';
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-953- $message['body'][] = $instructions;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T025735Z-3327557-954-}
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-34- 'instruction_reference' => 'VMA-311 archive wording and placement',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-35- 'instruction_text' => 'Select a thumbnail to open the full-size photograph in a new window.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-36- 'instruction_position' => 'above the return-to-squadron-page control',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-37- 'return_control' => 'prominent standardized return-to-squadron-page button',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-38- 'rule' => 'Do not invent an alternate squadron photo mechanism.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-39- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-40- 'contract_mode_middle' => 'CONTRACT MODE: Before acting, read the current Site Modernization Roadmap and follow it as the binding specification. Do not improvise, add features, alter the template, or rely on memory. If my request conflicts with the roadmap, stop and tell me before changing anything. After a successful architectural change, update the roadmap before proceeding.
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-41-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-42-Use the existing proven implementation/template; change only the squadron-specific data. Validate against the established regression pages before writing, and do not create new markup, behavior, links, nodes, CSS, or conventions unless I explicitly approve them.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-43- 'aircraft_history' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-44- array (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-45- 'system' => 'Gabby\'s Histories',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php:46: 'purpose' => 'individual aircraft history',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php:47: 'not_purpose' => 'squadron photo archive',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-48- 'preselection' => 'canonical squadron designation',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-49- 'visitor_can_change_selection' => true,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-50- 'large_assignment_tables_on_landing_page' => false,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-51- 'provenance' => 'Gabby\'s records and Kid\'s research remain separately attributable.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-52- ),
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-53- 'preservation' =>
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-54- array (
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-55- 'legacy_source' => 'preserve unless deliberate modernization explicitly replaces it',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-56- 'provenance' => 'preserve source attribution',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-57- 'landing_page_goal' => 'readable modern presentation without discarding significant historical content',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-58- 'rule' => 'Minimize duplication and bulk, not historical substance.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/data/squadron-template-contract.php-59- ),
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-58- requirements:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-59- _access: 'TRUE'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-60- methods:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-61- - GET
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-62- - POST
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-63-skyhawk_site_fixes.system_status:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-64- path: /admin/skyhawk/system-status
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-65- defaults:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-66- _controller: '\Drupal\skyhawk_site_fixes\Controller\SystemStatusController::page'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-67- _title: 'Skyhawk System Status'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-68- requirements:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-69- _permission: 'administer site configuration'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml:70:skyhawk_site_fixes.managed_file_core_control:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-71- path: /skyhawk/managed-file-core-control
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-72- defaults:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-73- _form: \Drupal\skyhawk_site_fixes\Form\ManagedFileCoreControlForm
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-74- _title: 'Drupal Core Managed File Control'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-75- requirements:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-76- _access: 'TRUE'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-77-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-78-skyhawk_site_fixes.reunion_ready_room:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-79- path: '/ready-room/reunions'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-80- defaults:
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-81- _controller: '\Drupal\skyhawk_site_fixes\Controller\ReunionReadyRoomController::page'
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.routing.yml-82- _title: 'My Reunion Events'
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-158- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-159- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-160- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-161- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-162- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-163- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-164- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-165-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-166- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-167- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-168- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-169- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557:170: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-171- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-172- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-173- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-174- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-175- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-176- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-177- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-179- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-180- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-181- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260830T023755Z-3327557-182- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-158- $message['subject'] = "[$site_name] Reunion submission could not be processed";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-159- $message['body'][] = "Thank you for attempting to submit a reunion announcement to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-160- $message['body'][] = "Unfortunately we were unable to identify your PDF as a reunion announcement.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-161- $message['body'][] = "Reason: {$params['reason']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-162- $message['body'][] = "Please ensure your PDF contains reunion-related content and try again.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-163- $message['body'][] = "If you believe this is an error, please contact the Skyhawk Association webmaster.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-164- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-165-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-166- case 'upload_token_completed':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-167- $message['subject'] = "[$site_name] Upload received: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-168- $message['body'][] = "A file upload has been completed.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-169- $message['body'][] = "Description: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167:170: $message['body'][] = "Purpose: {$params['purpose']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-171- $message['body'][] = "Token was sent to: {$params['recipient_email']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-172- $message['body'][] = "Completed: {$params['completed_time']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-173- $message['body'][] = "Files received: {$params['file_count']} (total {$params['total_bytes']} bytes)";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-174- $message['body'][] = "";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-175- $message['body'][] = "File list:";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-176- $message['body'][] = $params['file_list'];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-177- break;
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-178-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-179- case 'upload_token_notify':
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-180- $message['subject'] = "[$site_name] File upload requested: {$params['label']}";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-181- $message['body'][] = "You have been asked to upload a file to the Skyhawk Association website.";
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module.bak-20260827T151223Z-2317167-182- $message['body'][] = "Description: {$params['label']}";
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-1- 'Generic tokens for one-time or limited-use links (uploads, reunion submissions, and future token-based features).',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-20- 'fields' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-21- 'id' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-22- 'type' => 'serial',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-23- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-24- 'description' => 'Primary key.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-25- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-26- 'token' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-27- 'type' => 'varchar',
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-32- 'label' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-33- 'type' => 'varchar',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-34- 'length' => 255,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-35- 'not null' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-36- 'description' => 'Admin-facing description of this token.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-37- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-38- 'recipient_email' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-39- 'type' => 'varchar',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-40- 'length' => 255,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-41- 'not null' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-42- 'description' => 'Email address the token/link was sent to.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-43- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:44: 'purpose' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-45- 'type' => 'varchar',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-46- 'length' => 64,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-47- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-48- 'description' => 'Machine name identifying which feature this token belongs to (e.g. squadron_photo_upload, reunion_submission).',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-49- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-50- 'uses_allowed' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-51- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-52- 'unsigned' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-53- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-54- 'default' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-55- 'description' => 'Number of times this token may be used. 1 = one-time use.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-56- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:57: 'uses_count' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-58- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-59- 'unsigned' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-60- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-61- 'default' => 0,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-62- 'description' => 'Number of times this token has been used so far.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-63- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-64- 'status' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-65- 'type' => 'varchar',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-66- 'length' => 32,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-67- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-68- 'default' => 'active',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-69- 'description' => 'active, expired, or revoked.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-70- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-71- 'expiry' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-72- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-73- 'not null' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-74- 'description' => 'Unix timestamp when this token expires.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-75- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-76- 'data' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-77- 'type' => 'text',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-78- 'size' => 'big',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-79- 'not null' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:80: 'description' => 'Serialized purpose-specific payload (e.g. upload directory, max size, uploaded filenames).',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-81- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-82- 'created_by' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-83- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-84- 'unsigned' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-85- 'not null' => FALSE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-86- 'description' => 'UID of the admin who created this token.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-87- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-88- 'created' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-89- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-90- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-91- 'description' => 'Unix timestamp when this token was created.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-92- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-93- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-94- 'primary key' => ['id'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-95- 'unique keys' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-96- 'token' => ['token'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-97- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-98- 'indexes' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:99: 'purpose' => ['purpose'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-100- 'status' => ['status'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-101- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-102- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-103-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-104- $schema['skyhawk_contact'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-105- 'description' => 'Address book for one-time links. If uid is set, this contact is a real Drupal member and email is always read live from the user account, never duplicated. If uid is empty, email is stored directly for non-members.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-106- 'fields' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-107- 'id' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-108- 'type' => 'serial',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-109- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-110- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-111- 'uid' => [
--
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-138- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-139- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-140- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-141- 'primary key' => ['id'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-142- 'indexes' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-143- 'name' => ['name'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-144- 'email' => ['email'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-145- 'uid' => ['uid'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-146- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-147- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-148-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-149- $schema['skyhawk_notify_list'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:150: 'description' => 'Maps a token purpose to the contact(s) who should be notified when a token of that purpose is redeemed.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-151- 'fields' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-152- 'id' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-153- 'type' => 'serial',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-154- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-155- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:156: 'purpose' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-157- 'type' => 'varchar',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-158- 'length' => 64,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-159- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-160- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-161- 'contact_id' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-162- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-163- 'unsigned' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-164- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-165- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-166- 'created' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-167- 'type' => 'int',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-168- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-169- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-170- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-171- 'primary key' => ['id'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-172- 'indexes' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:173: 'purpose' => ['purpose'],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-174- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-175- ];
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-176-
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-178- 'description' => 'Individual files received against an upload token, for detailed completion reporting.',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-179- 'fields' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-180- 'id' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-181- 'type' => 'serial',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-182- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-183- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-184- 'token' => [
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-185- 'type' => 'varchar',
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-186- 'length' => 64,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-187- 'not null' => TRUE,
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-188- ],
/home/darwus/drupalbeta/web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-189- 'filename' => [
===== LIVE DATABASE / FILE-ENTITY EVIDENCE =====
DB_LINT_RC=0
DB_RC=0
No syntax errors detected in /tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/database-audit.php
===== TABLE PRESENCE =====
TABLE_skyhawk_upload_token=YES
TABLE_skyhawk_upload_file=YES
TABLE_skyhawk_photo_index=YES
===== SKYHAWK_UPLOAD_FILE SCHEMA =====
COLUMN_skyhawk_upload_file_id={"type":"int(11)","nullable":"NO","key":"PRI","extra":"auto_increment","default":null}
COLUMN_skyhawk_upload_file_token={"type":"varchar(64)","nullable":"NO","key":"MUL","extra":"","default":null}
COLUMN_skyhawk_upload_file_filename={"type":"varchar(255)","nullable":"NO","key":"","extra":"","default":null}
COLUMN_skyhawk_upload_file_size_bytes={"type":"int(10) unsigned","nullable":"NO","key":"","extra":"","default":null}
COLUMN_skyhawk_upload_file_uploaded={"type":"int(11)","nullable":"NO","key":"","extra":"","default":null}
===== SKYHAWK_UPLOAD_FILE INDEXES =====
INDEX_PRIMARY_1={"column":"id","non_unique":0,"sub_part":null}
INDEX_token_1={"column":"token","non_unique":1,"sub_part":null}
===== SKYHAWK_UPLOAD_FILE ROWS =====
SKYHAWK_UPLOAD_FILE_ROW_COUNT=0
DETECTED_FID_COLUMN=NONE
DETECTED_TOKEN_COLUMN=token
===== ROWS BY TOKEN PURPOSE =====
===== ACCEPTANCE FID HISTORY CHECK =====
FID_61767_UPLOAD_HISTORY_ROW=UNRESOLVED_NO_FID_COLUMN
FID_61768_UPLOAD_HISTORY_ROW=UNRESOLVED_NO_FID_COLUMN
FID_61769_UPLOAD_HISTORY_ROW=UNRESOLVED_NO_FID_COLUMN
===== EVENT 49464 =====
EVENT_49464_OWNER_UID=612
EVENT_49464_NEWSLETTER_FIDS=61767,61768,61769
DATABASE_AUDIT_COMPLETE=PASS
===== KNOWN IMMUTABLE REPORT EVIDENCE =====
===== REPORT-ID 20260831T000619Z-6566488 =====
REPORT_FILE=/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T000619Z-6566488.txt
SHA256=91e6049776575c07fb66eac46929ddab9f97a58fa68ecfdec6a5ce57d15f4082
15-GENERAL_CURRENT_MEMBER_GATE=deferred_to_authoritative_roster_reconciliation
16-TOKEN_CREATED=NO
17-TOKEN_USED=NO
18-SUBMITTED_FILENAME=August Newsletter.pdf
19-STORED_FILENAME_POLICY=deterministic_fid_based_public_path
20:PREVIOUS_CURRENT_FID=61767
21-PREVIOUS_HISTORY_COUNT=1
22:NEW_FID=61768
23-RESULTING_HISTORY_COUNT=2
24:RESULTING_CURRENT_FID=61768
25-EVENT_PUBLISHED=YES
26:FILE_URI=public://reunions/49464/61768/newsletter-61768.pdf
27-FILE_PERMANENT=YES
28-FILE_PHYSICAL=YES
29-FILE_HASH_MATCH=YES
30:PERSISTENCE_VERIFY=PASS
31-PUBLIC_FILE_HTTP_STATUS=200
32-PUBLIC_FILE_HTTP_HASH_MATCH=YES
33-PUBLIC_EVENT_HTTP_STATUS=200
34:HTTP_VERIFY=PASS
35:OVERALL=PASS
36-NEXT=Human visual verification that AUGUST is current and JULY remains previous history.
37-
38-===== PROCESS CHECKSUM =====
39-RULES REVIEWED: YES
40-GERMANE REFERENCE REVIEWED: YES
===== REPORT-ID 20260831T003407Z-377803 =====
REPORT_FILE=/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T003407Z-377803.txt
SHA256=5a30461d940dc75cc8174fdefdc866eaaf8af708bbdf876a6638adb31198420c
18-===== SEPTEMBER PRE-FLIGHT =====
19-EVENT_NID=49464
20-EVENT_PUBLISHED=YES
21-EVENT_OWNER_UID=1
22-NEWSLETTER_COUNT=3
23:CURRENT_FID=61769
24-CURRENT_FILENAME=September Newsletter.pdf
25:CURRENT_URI=public://reunions/49464/61769/newsletter-61769.pdf
26-CURRENT_PERMANENT=YES
27-CURRENT_PHYSICAL=YES
28-CURRENT_SHA256=881398ad6a121851c950462cb07f8fae4c719afdb9526c4aa57100a3f068f50a
29-SEPTEMBER_STATE=PASS
30-
--
71-SOURCE_MODE=PASS
72-MANAGED_FILE=PASS
73-PASTE_TEXTAREA=PASS
74-SUBMIT=PASS
75-UPLOAD_PRIVATE=PASS
76:ROUTE_VERIFY=PASS
77:FORM_VERIFY=PASS
78-
79-===== MENU =====
80-MENU_CREATED=My Reunions
81-CREATED_MENU_ID=109
82-MENU_CREATED=Request a Reunion
--
94-REQUEST_ROUTE=PASS
95-MENU.My Reunions.COUNT=1
96-MENU.Request a Reunion.COUNT=1
97-EVENT_49464_PRESERVED=PASS
98-NEWSLETTER_COUNT=3
99:CURRENT_FID=61769
100-CURRENT_FILENAME=September Newsletter.pdf
101-DOC./blade/upload-token-system=PASS
102-DOC./blade/lost-d=PASS
103-DOC./blade/site-menu-reference=PASS
104:FINAL_VERIFY=PASS
105-
106-===== VERIFICATION =====
107-AUTHORITY=PASS
108-SEPTEMBER_STATE=PASS
109-CONTRACT=PASS
110-DOC_DRYRUN=PASS
111-CANDIDATE=PASS
112-LINT=PASS
113-DEPLOY=PASS
114:FORM_VERIFY=PASS
115-MENU=PASS
116-DOC_SYNC=PASS
117:FINAL_VERIFY=PASS
118-ROLLBACK=NO
119:OVERALL=PASS
120-
121-===== ACCEPTED PRODUCT STATE =====
122-READY_ROOM_MY_REUNIONS=YES
123-READY_ROOM_REQUEST_A_REUNION=YES
124-NEW_REQUEST_TOKEN_REQUIRED=NO
--
135-===== EXISTING ACCEPTANCE CORPUS =====
136-EVENT_NID=49464
137-JULY=HISTORY
138-AUGUST=HISTORY
139-SEPTEMBER=CURRENT
140:SEPTEMBER_CURRENT_FID_EXPECTED=61769
141-ACCEPTED_NEWSLETTER_COUNT_EXPECTED=3
142-
143-===== SAFETY =====
144-NEW_REUNION_CREATED_BY_INSTALL=NO
145-EVENT_49464_MUTATED_BY_INSTALL=NO
===== REPORT-ID 20260831T030109Z-1004450 =====
REPORT_FILE=/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T030109Z-1004450.txt
SHA256=98c43fdb052db71d8efd8eebde62f2269ff35496a2e3457fdba5b4503151b03c
1-SKYHAWK AI DEBUG REPORT
2:Task: Conservative cleanup after 2026 Skyhawkers Reunion acceptance/handoff POC
3-Generated: 2026-08-31T03:01:11+00:00
4-Report-ID: 20260831T030109Z-1004450
5-Archive-URL: https://skyhawk.org/downloads/chatgpt-debug-20260831T030109Z-1004450.txt
6-
7-===== PREFLIGHT =====
--
10-LOSTD=PASS
11-AUTHORITY=PASS
12-EVENT_TITLE=2026 Skyhawkers Reunion
13-EVENT_OWNER_UID=612
14-EVENT_PUBLISHED=YES
15:ACCEPTED_FIDS=61767,61768,61769
16:CURRENT_FID=61769
17-EVENT_PROTECTION_STATE=PASS
18-FID61766_FILENAME=July Newsletter 2026.pdf
19-FID61766_URI=private://uploads/ed646aaee11e35cae40bc6d57590b968/July Newsletter 2026.pdf
20-FID61766_TEMPORARY=YES
21-FID61766_USAGE_COUNT=0
--
25-FID61766_SAFE=PASS
26-OTHER_DRUPAL_TEMP_CANDIDATES=NONE
27-OTHER_DRUPAL_TEMP_ACTION=INVENTORY_ONLY
28-PREFLIGHT=PASS
29-
30:===== DRUPAL CLEANUP =====
31-FID61766_ACTION=DELETED
32:DRUPAL_CLEANUP=PASS
33-
34:===== TMP CLEANUP =====
35-REMOVE=/tmp/reunion-title-only-20260831T010904Z-514055
36-REMOVE=/tmp/reunion-primary-handoff-20260831T011117Z-525747
37-REMOVE=/tmp/reunion-keeper-mail-20260831T012420Z-569806
38-REMOVE=/tmp/skyhawk-reunion-title-only.sh
39-REMOVE=/tmp/skyhawk-reunion-primary-handoff.sh
40-REMOVE=/tmp/skyhawk-reunion-keeper-mail-ack-poc.sh
41-
42:===== POST-CLEANUP VERIFY =====
43-EVENT_STATE_AFTER=PASS
44-TITLE_AFTER=2026 Skyhawkers Reunion
45-OWNER_AFTER=612
46:FIDS_AFTER=61767,61768,61769
47:ACCEPTED_FID_61767=PASS
48:ACCEPTED_FID_61768=PASS
49:ACCEPTED_FID_61769=PASS
50-FID61766_ABSENT=PASS
51-KEEPER_DELIVERY_RECORD_COUNT=3
52:VERIFY=PASS
53-
54-===== VERIFICATION =====
55-AUTHORITY=PASS
56-PREFLIGHT=PASS
57:DRUPAL_CLEANUP=PASS
58:TMP_CLEANUP=PASS
59:VERIFY=PASS
60:OVERALL=PASS
61-
62-===== DELETION SCOPE =====
63-KNOWN_ORPHAN_FID_61766=DELETE_IF_TEMPORARY_AND_UNUSED
64:ACCEPTED_FIDS_61767_61768_61769=PRESERVE
65-EVENT_49464=PRESERVE
66-KEEPER_ACK_RECORDS=PRESERVE
67-IMMUTABLE_DEBUG_REPORTS=PRESERVE
68-PRODUCTION_SOURCE=PRESERVE
69-BACKUPS=PRESERVE
===== ALL IMMUTABLE REPORT HISTORY HITS =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt-168-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt-169-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt-170-===== HISTORY SCHEMA =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt:171:skyhawk_upload_file CREATE TABLE `skyhawk_upload_file` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `token` varchar(64) NOT NULL,\n `filename` varchar(255) NOT NULL,\n `size_bytes` int(10) unsigned NOT NULL,\n `uploaded` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `token` (`token`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Individual files received against an upload token, for…'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt-172-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt-173-id int(11) NO PRI NULL auto_increment
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T021354Z-1245077.txt-174-token varchar(64) NO MUL NULL
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030701Z-1245077.txt-1-SKYHAWK AI DEBUG REPORT
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030701Z-1245077.txt:2:Task: Advance accepted Pixel state and resolve upload history
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030701Z-1245077.txt-3-Generated: 2026-08-26T03:07:07+00:00
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030701Z-1245077.txt-4-Report-ID: 20260826T030701Z-1245077
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030701Z-1245077.txt-5-Archive-URL: https://skyhawk.org/downloads/chatgpt-debug-20260826T030701Z-1245077.txt
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-1-SKYHAWK AI DEBUG REPORT
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt:2:Task: Accept Pixel upload UX and audit skyhawk_upload_file history
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-3-Generated: 2026-08-26T03:04:32+00:00
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-4-Report-ID: 20260826T030432Z-1245077
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-5-Archive-URL: https://skyhawk.org/downloads/chatgpt-debug-20260826T030432Z-1245077.txt
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-37-===== 5. CACHE REBUILD AFTER REFERENCE UPDATE =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-38-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-39-===== 6. PROVE HISTORY TABLE ACTUAL SCHEMA =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt:40:skyhawk_upload_file CREATE TABLE `skyhawk_upload_file` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `token` varchar(64) NOT NULL,\n `filename` varchar(255) NOT NULL,\n `size_bytes` int(10) unsigned NOT NULL,\n `uploaded` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `token` (`token`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Individual files received against an upload token, for…'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-41-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-42-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-43---- columns ---
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-51-===== 7. PROVE CURRENT submitForm HISTORY WRITE =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-52-FAIL: submitForm history write absent
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-53-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt:54:===== 8. CURRENT HISTORY ROW COUNT =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-55-HISTORY_ROW_COUNT=0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt:56:PASS: history row count read
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-57-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt:58:===== 9. ALL CURRENT HISTORY ROWS =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-59-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-60-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-61-===== 10. CORRELATE HISTORY SCHEMA TO LATEST FID =====
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-85-===== NEXT =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-86-History requirement is functionally FAILED.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-87-Next code must inspect only why submitForm did not
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt:88:create the required skyhawk_upload_file row.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-89-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-90-After this result:
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030432Z-1245077.txt-91-REREAD RULES.
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt-47-===== JULY SOURCE LINEAGE =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt-48-TOKEN_USES_COUNT=1
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt-49-PER_TOKEN_FILE_ENTITIES=1
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt:50:SKYHAWK_UPLOAD_FILE_ROWS=0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt-51-TOKEN_DATA_HAS_EVENT_ID=NO
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt-52-TOKEN_DATA_HAS_BATCH_ID=NO
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175552Z-2698920.txt-53-LINEAGE_AUDIT=PASS
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt-103-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt-104-===== DATABASE CONTRACT =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt-105-TABLE_skyhawk_upload_token=YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt:106:TABLE_skyhawk_upload_file=YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt-107-TABLE_skyhawk_photo_index=YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt-108-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193050Z-1510943.txt-109-===== PROTECTED EVENT FIXTURE =====
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-274-modules/custom/skyhawk_site_fixes/src/Form/ReunionUploadForm.php.bak.20260823215617
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-275-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-276-===== 7. EXISTING UPLOAD TOKEN TABLES =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:277:skyhawk_upload_file
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-278-skyhawk_upload_token
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-279-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-280-
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-294-contact_id int(10) unsigned YES NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-295-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-296-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:297:--- skyhawk_upload_file ---
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-298-id int(11) NO PRI NULL auto_increment
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-299-token varchar(64) NO MUL NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-300-filename varchar(255) NO NULL
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-309-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:80: if ($row->expiry && $row->expiry < \Drupal::time()->getRequestTime()) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-310-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:108: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-311-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:110: 'uses_count' => $row->uses_count + 1,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:312:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:115: \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-313-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:129: if ($row && $row->status === 'active' && $row->uses_count > 0) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-314-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:130: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-315-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:142: ->fields('n', ['contact_id'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-316-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:143: ->condition('purpose', $row->purpose)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:317:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-318-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:163: foreach ($notify_rows as $contact_id) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-319-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:164: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-320-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:166: ->condition('id', $contact_id)
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-390-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:41: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-391-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:66: if ($row->expiry && $row->expiry < \Drupal::time()->getRequestTime()) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-392-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:75: '#markup' => 'Upload: ' . htmlspecialchars($row->label, ENT_QUOTES, 'UTF-8') . '
'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:393:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:128: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-394-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:139: $db->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-395-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:141: 'uses_count' => $row->uses_count + $count,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-396-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:154: ->fields('n', ['contact_id'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-397-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:155: ->condition('purpose', $row->purpose)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:398:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:159: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-399-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:175: foreach ($notify_rows as $contact_id) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-400-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:176: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-401-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:178: ->condition('id', $contact_id)
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-613-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:41: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-614-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:65: if ($row->expiry && $row->expiry < \Drupal::time()->getRequestTime()) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-615-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:74: '#markup' => 'Upload: ' . htmlspecialchars($row->label, ENT_QUOTES, 'UTF-8') . '
'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:616:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:127: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-617-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:138: $db->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-618-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:140: 'uses_count' => $row->uses_count + $count,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-619-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:153: ->fields('n', ['contact_id'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-620-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:154: ->condition('purpose', $row->purpose)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:621:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-622-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:174: foreach ($notify_rows as $contact_id) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-623-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-624-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:177: ->condition('id', $contact_id)
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-698-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:41: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-699-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:65: if ($row->expiry && $row->expiry < \Drupal::time()->getRequestTime()) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-700-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:74: '#markup' => 'Upload: ' . htmlspecialchars($row->label, ENT_QUOTES, 'UTF-8') . '
'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:701:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:127: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-702-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:138: $db->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-703-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:140: 'uses_count' => $row->uses_count + $count,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-704-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:153: ->fields('n', ['contact_id'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-705-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:154: ->condition('purpose', $row->purpose)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt:706:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-707-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:174: foreach ($notify_rows as $contact_id) {
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-708-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260829T172008Z-3327557.txt-709-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:177: ->condition('id', $contact_id)
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-607-web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:222: $variables['field']->field === 'field_journal_label'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-608-web/modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.module:431: $query = $database->select(
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-609-web/modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:141: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:610:web/modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-611-web/modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:164: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-612-web/modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823224252:195: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-613-web/modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823212744:130: return \Drupal::database()->select('skyhawk_upload_token', 't')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-617-web/modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php.bak.20260823213747:167: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-618-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-619-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:153: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:620:web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:159: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-621-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T195658Z-1420949:176: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-622-web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php:15: return 'skyhawk_journal_upload_landing';
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-623-web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadLanding.php:20: // Get most recent journal
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-665-web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php:450: $values['field_journal_thumbnail'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-666-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-667-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:152: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:668:web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-669-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260824030005:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-670-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:298: ->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-671-web/modules/custom/skyhawk_site_fixes/src/Form/JournalUploadForm.php.bak.20260823215617:16: return 'skyhawk_journal_upload_form';
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-693-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak.20260823193614:56: $result = \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-694-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-695-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:152: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:696:web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-697-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T210826Z-1971880:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-698-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak.20260823194432:33: $existing_purposes = \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-699-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php.bak.20260823194432:84: $result = \Drupal::database()->select('skyhawk_upload_token', 't')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-704-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:256: $contact = $db->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-705-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260823232342:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-706-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260823232342:150: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:707:web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260823232342:156: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-708-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.bak.20260823232342:173: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-709-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T205358Z-1860331:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-710-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T205358Z-1860331:152: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:711:web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T205358Z-1860331:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-712-web/modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php.backup-20260824T205358Z-1860331:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-713-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.module:5: * Skyhawk site fixes: menu visibility, private file access, journal email blast, reunion system.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-714-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.module:45: if (strpos($uri, 'private://sajournals/') !== 0) {
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-731-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.module:431: $query = $database->select(
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-732-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenForm.php:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-733-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenForm.php:152: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:734:web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenForm.php:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-735-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenForm.php:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-736-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php.retired:141: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:737:web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php.retired:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-738-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php.retired:164: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-739-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php.retired:195: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-740-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php:141: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:741:web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-742-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php:164: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-743-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php:195: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-744-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenAdminForm.php:37: $contacts = \Drupal::database()->select('skyhawk_contact', 'c')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-770-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/skyhawk_site_fixes.module:431: $query = $database->select(
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-771-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenForm.php:33: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-772-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenForm.php:152: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:773:web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenForm.php:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-774-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenForm.php:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-775-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenController.php:141: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt:776:web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenController.php:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-777-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenController.php:164: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-778-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenController.php:195: return \Drupal::database()->select('skyhawk_upload_token', 't')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260827T170659Z-2317167.txt-779-web/modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenAdminForm.php:37: $contacts = \Drupal::database()->select('skyhawk_contact', 'c')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-279-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:53: 'skyhawkUploadToken' => [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-280-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:94: $dir = 'private://uploads/' . $token;
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-281-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:108: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:282:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:115: \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-283-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:130: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-284-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:141: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:285:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-286-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:164: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-287-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:179: 'skyhawk_site_fixes', 'upload_token_completed', $email, 'en',
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-288-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:195: return \Drupal::database()->select('skyhawk_upload_token', 't')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-296-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:41: \Drupal::database()->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-297-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:79: '#type' => 'managed_file',
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-298-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:82: '#upload_location' => 'private://uploads/' . $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:299:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:127: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-300-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:138: $db->update('skyhawk_upload_token')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-301-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:152: $notify_rows = \Drupal::database()->select('skyhawk_notify_list', 'n')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:302:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-303-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:175: $contact = \Drupal::database()->select('skyhawk_contact', 'c')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-304-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:190: 'skyhawk_site_fixes', 'upload_token_completed', $email, 'en',
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-305-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenAdminForm.php:11: * (skyhawk_contact), which links to a real Drupal user when
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-323-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:18: $schema['skyhawk_upload_token'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-324-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:104: $schema['skyhawk_contact'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-325-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:149: $schema['skyhawk_notify_list'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:326:modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-327-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-328-===== 12. AUTHORITATIVE PUBLIC FORM - COMPLETE SOURCE =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-329-setPermanent();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-453- $file->save();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-454-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:455: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-456- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-457- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-458- 'filename' => $file->getFilename(),
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-483- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-484- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-485-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:486: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-487- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-488- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-489- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-895- ->condition('token', $token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-896- ->execute();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-897-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:898: \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-899- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-900- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-901- 'filename' => $safe_name,
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-927- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-928- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-929-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:930: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-931- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-932- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-933- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1364-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-112- ->condition('token', $token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1365-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-113- ->execute();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1366-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-114-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:1367:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-115- \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1368-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-116- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1369-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-117- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1370-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-118- 'filename' => $safe_name,
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1971-created | type=int(11) | null=NO | default=NULL | key=
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1972-contact_id | type=int(10) unsigned | null=YES | default=NULL | key=
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1973-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:1974:TABLE=skyhawk_upload_file
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1975-id | type=int(11) | null=NO | default=NULL | key=PRI
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1976-token | type=varchar(64) | null=NO | default=NULL | key=MUL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1977-filename | type=varchar(255) | null=NO | default=NULL | key=
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1995-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1996-===== 21. TABLE COUNTS =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1997-skyhawk_upload_token=8
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:1998:skyhawk_upload_file=0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-1999-skyhawk_contact=1
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-2000-skyhawk_notify_list=3
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-2001-
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-3854-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-124- $file->setPermanent();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-3855-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-125- $file->save();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-3856-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-126-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:3857:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-127- $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-3858-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-128- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-3859-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-129- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-3860-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:130: 'filename' => $file->getFilename(),
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4142-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-144- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4143-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-145- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4144-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-146-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:4145:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-147- $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4146-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-148- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4147-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-149- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4148-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-150- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4258-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-155- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4259-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-156- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4260-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-157-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:4261:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-158- $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4262-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-159- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4263-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-160- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4264-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-161- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4789-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:112: ->condition('token', $token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4790-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-113- ->execute();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4791-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-114-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:4792:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-115- \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4793-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-116- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4794-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:117: 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4795-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-118- 'filename' => $safe_name,
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4821-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-144- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4822-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-145- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4823-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-146-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:4824:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-147- $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4825-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-148- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4826-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php:149: ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-4827-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-150- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5082-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-124- $file->setPermanent();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5083-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-125- $file->save();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5084-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-126-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:5085:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-127- $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5086-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-128- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5087-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:129: 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5088-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-130- 'filename' => $file->getFilename(),
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5113-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-155- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5114-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-156- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5115-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-157-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:5116:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-158- $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5117-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-159- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5118-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php:160: ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5119-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-161- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5846-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-112- ->condition('token', $token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5847-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-113- ->execute();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5848-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-114-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:5849:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-115- \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5850-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-116- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5851-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-117- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5852-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-118- 'filename' => $safe_name,
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5878-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-144- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5879-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-145- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5880-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-146-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:5881:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-147- $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5882-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-148- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5883-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-149- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-5884-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-150- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6003-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-155- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6004-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-156- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6005-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-157-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:6006:modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-158- $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6007-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-159- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6008-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-160- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6009-modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php-161- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6241-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-174- ],
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6242-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-175- ];
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6243-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-176-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:6244:modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6245-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-178- 'description' => 'Individual files received against an upload token, for detailed completion reporting.',
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6246-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-179- 'fields' => [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6247-modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install-180- 'id' => [
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6326- ▪️ field.html.twig
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6327--->
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6328- Architecture
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:6329: Generic, purpose-agnostic token system in skyhawk_site_fixes. Tables: skyhawk_upload_token (token, purpose, expiry, contact_id, status), skyhawk_contact (address book, links to Drupal uid when the contact is a member so email is always read live — never duplicated), skyhawk_notify_list (purpose to contact_id, who gets notified on redemption), skyhawk_upload_file (individual files received per token).
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6330- Admin form: /admin/skyhawk/upload-tokens (Blade menu) — generate token, select/create contact, purpose dropdown (self-registering from existing purposes plus Other), expiry, auto-emails a one-time link.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6331- Public upload form: /upload/{token} — Drupal Form using native managed_file element (matching the established pattern in skyhawk_gallery/PhotoContributionForm.php), multi-file, private:// storage.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6332- Mail cases live in skyhawk_site_fixes.module hook_mail(): upload_token_notify (sent on generation), upload_token_completed (sent to the notify list on redemption, includes filenames and sizes).
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6350-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6351-===== 37. REFERENCE VS IMPLEMENTATION CONTRADICTION SEARCH =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6352-One-time / redemption language on reference:
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:6353:r duplicated), skyhawk_notify_list (purpose to contact_id, who gets notified on redemption), skyhawk_upload_file (individual files received per token).
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6354-own (self-registering from existing purposes plus Other), expiry, auto-emails a one-time link.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6355-notify (sent on generation), upload_token_completed (sent to the notify list on redemption, includes filenames and sizes).
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6356-
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6794- Can uses_allowed be retired entirely?
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6795- Should uses_count represent files, batches, or be replaced by aggregate Views data?
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6796- Which existing valid tokens should survive cutover?
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:6797: What existing upload history must remain?
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6798-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6799-===== 42. REQUIRED REPLACEMENT TEST CONTRACT =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6800-1. Admin creates token with at least seven-day life.
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6804-5. Drupal native managed_file receives them.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6805-6. Submit first batch.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6806-7. Files exist in private storage.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt:6807:8. Database upload history records first batch.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6808-9. Notification is sent.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6809-10. SAME token remains valid.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T004858Z-2471164.txt-6810-11. Open SAME token again.
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-22-8 Chatgpt 4 1 0 active 2026-08-31 21:09:05 VALID
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-23-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-24-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt:25:Existing completed upload-history rows:
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-26-0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-27-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-28-
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-81-Critical YAML: PASS
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-82-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-83-===== ACCEPTANCE-TEST BASELINE =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt:84:Completed upload-history rows before Pixel acceptance test:
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-85-0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-86-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T005953Z-2471164.txt-87-
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-454-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-112- ->condition('token', $token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-455-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-113- ->execute();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-456-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-114-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt:457:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-115- \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-458-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-116- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-459-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-117- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-460---
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-876- purpose | varchar(64) | null=NO | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-877- contact_id | int(10) unsigned | null=NO | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-878- created | int(11) | null=NO | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt:879:TABLE: skyhawk_upload_file
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-880- id | int(11) | null=NO | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-881- token | varchar(64) | null=NO | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T002514Z-2471164.txt-882- filename | varchar(255) | null=NO | default=NULL
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt-62-COLUMNS=id,buno,batch_nid,filename,directory_uri,dir_listing_nid,confirmed_non_a4,caption
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt-63-TABLE=skyhawk_production_ranges
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt-64-COLUMNS=id,variant,buno_start,buno_end,source,notes,added_date
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt:65:TABLE=skyhawk_upload_file
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt-66-COLUMNS=id,token,filename,size_bytes,uploaded
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt-67-TABLE=skyhawk_upload_token
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T163014Z-2373462.txt-68-COLUMNS=id,token,label,recipient_email,purpose,uses_allowed,uses_count,status,expiry,data,created_by,created,contact_id
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt-11-Rules reread: YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt-12-Reference reread: YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt-13-Previous finalized FID=61761
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt:14:Previous history rows=0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt-15-Previous history state=FAILED
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt-16-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T030847Z-1245077.txt-17-===== ACTION =====
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-477-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-112- ->condition('token', $token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-478-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-113- ->execute();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-479-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-114-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt:480:modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-115- \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-481---
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-482-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-124- return new \Symfony\Component\HttpFoundation\JsonResponse(['status' => 'ok', 'filename' => $safe_name]);
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-483-modules/custom/skyhawk_site_fixes/src/Controller/UploadTokenController.php-125- }
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-848- purpose | varchar(64) | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-849- contact_id | int(10) unsigned | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-850- created | int(11) | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt:851:TABLE: skyhawk_upload_file
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-852- id | int(11) | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-853- token | varchar(64) | default=NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T000938Z-2471164.txt-854- filename | varchar(255) | default=NULL
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt-673-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt-674-Public Upload Page Workflow
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt-675-The public page identifies the invitation by its human-readable token label as Upload Files: [label]. The secret token value itself is not displayed.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt:676:The final button is labeled Finish submission. It does not perform the initial transfer. It finalizes the already-uploaded temporary files, records each file in skyhawk_upload_file, increments cumulative accounting, and sends the configured batch notification.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt-677-A token is valid when it exists, has status active, and has not expired.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt-678-Current acceptance boundary: Finish submission. Before that device action is authorized, the actual live finalization contract must be derived from the current UploadTokenForm and actual database schema. Do not assume history-table column names or accounting fields.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T023328Z-1245077.txt-679-
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt-23-Updated ACTIVE RULES with Generic Intake sole file-ingress ownership.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt-24-Updated Generic Intake with frozen Reunion Photo Upload 0.1 contract.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt-25-Advanced Generic Intake current implementation slice.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt:26:Kept narrow skyhawk_upload_file persisted-row proof explicitly open.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt-27-Updated Drupal Environment Reference with canonical upload ownership.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt-28-Advanced LOST-D from completed keeper handoff to Reunion Photo Upload 0.1.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260831T193805Z-1546791.txt-29-Preserved Event 49464 and newsletters 61767/61768/61769.
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-1-SKYHAWK AI DEBUG REPORT
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:2:Task: Prove actual installed skyhawk_upload_file writer state
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-3-Generated: 2026-08-26T03:10:51+00:00
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-4-Report-ID: 20260826T031051Z-1245077
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-5-Archive-URL: https://skyhawk.org/downloads/chatgpt-debug-20260826T031051Z-1245077.txt
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-14-Reference update required before inspection: NO
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-15-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-16-Known failure:
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:17:Finalized file 61761 existed while skyhawk_upload_file contained zero rows.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-18-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-19-Failed prerequisite:
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-20-Previous repair claimed writer changed=YES but verification counted zero writers.
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-25-No syntax errors detected in modules/custom/skyhawk_site_fixes/src/Form/UploadTokenForm.php
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-26-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-27-===== 2. ACTUAL HISTORY TABLE SCHEMA =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:28:skyhawk_upload_file CREATE TABLE `skyhawk_upload_file` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `token` varchar(64) NOT NULL,\n `filename` varchar(255) NOT NULL,\n `size_bytes` int(10) unsigned NOT NULL,\n `uploaded` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `token` (`token`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Individual files received against an upload token, for…'
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-29-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-30-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-31-===== 3. ACTUAL HISTORY TABLE COLUMNS =====
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-36-uploaded int(11) NO NULL
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-37-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-38-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:39:===== 4. CURRENT HISTORY ROWS =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-40-0
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-41-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-42-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-43-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-44-===== 5. EVERY SOURCE REFERENCE TO HISTORY TABLE =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:45:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenForm.php:127: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:46:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenForm.php:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:47:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php:115: \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:48:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/UploadTokenController.php:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:49:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T013552Z-2471164/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:50:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenForm.php:127: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:51:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenForm.php:158: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:52:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenController.php:115: \Drupal::database()->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:53:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/UploadTokenController.php:147: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:54:modules/custom/skyhawk_site_fixes/backups/upload-product-replacement-20260825T005953Z-2471164/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:55:modules/custom/skyhawk_site_fixes/backups/live-observer-integration-20260825T145539Z-2795997/UploadTokenForm.php:141: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:56:modules/custom/skyhawk_site_fixes/backups/pixel-direct-probe-20260825T151003Z-2795997/UploadTokenForm.php:144: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:57:modules/custom/skyhawk_site_fixes/backups/observer-execution-proof-20260825T150130Z-2795997/UploadTokenForm.php:144: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:58:modules/custom/skyhawk_site_fixes/backups/deployment-gate-20260825T144330Z-2795997/UploadTokenForm.php:141: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:59:modules/custom/skyhawk_site_fixes/backups/pixel-observer-20260825T140951Z-2676184/UploadTokenForm.php:141: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:60:modules/custom/skyhawk_site_fixes/backups/deployment-gate-reconcile-20260825T145100Z-2795997/UploadTokenForm.php:141: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:61:modules/custom/skyhawk_site_fixes/backups/token-core-rebuild-20260825T171042Z-3404996/UploadTokenForm.php:157: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt:62:modules/custom/skyhawk_site_fixes/skyhawk_site_fixes.install:177: $schema['skyhawk_upload_file'] = [
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-63-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-64-===== 6. CURRENT submitForm IN TOTO =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T031051Z-1245077.txt-65- public function submitForm(
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt-414-COLUMNS=id,buno,batch_nid,filename,directory_uri,dir_listing_nid,confirmed_non_a4,caption
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt-415-TABLE=skyhawk_production_ranges
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt-416-COLUMNS=id,variant,buno_start,buno_end,source,notes,added_date
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt:417:TABLE=skyhawk_upload_file
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt-418-COLUMNS=id,token,filename,size_bytes,uploaded
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt-419-TABLE=skyhawk_upload_token
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T175420Z-2695291.txt-420-COLUMNS=id,token,label,recipient_email,purpose,uses_allowed,uses_count,status,expiry,data,created_by,created,contact_id
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-93-201-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-94-202-The old UploadTokenController and upload_token_mobile_fix.js are retired into the timestamped replacement backup rather than destroyed during initial acceptance testing.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-95-203-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt:96:204-Functional acceptance remains pending until the Pixel test verifies: legal multi-file upload, final submission, private storage, history rows, notification, reuse of the same token, explicit revocation, expiry rejection, and oversize rejection.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-97-205-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-98-206:Current Functional State
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-99-207-Generic initial upload: ACCEPTED. Drupal core managed_file selection and automatic AJAX transfer to token-scoped private storage are proven. File-format diagnosis is closed.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-100-208-Finish submission permanent-file transition: ACCEPTED. Direct Pixel testing proved selection, automatic upload, Finish submission, permanent managed-file state in private://uploads/[token]/, and reset of the form for another batch.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-101-209:Public upload-page UX: ACCEPTED on Pixel/Chrome. The redundant generic Upload title is absent. Upload Files: [label] remains as the identifying heading. The repaired public-page presentation has passed direct browser inspection. This branch is closed absent contradictory evidence.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt:102:210:Current acceptance boundary: upload history. The first remaining unproven transition is whether Finish submission creates the required skyhawk_upload_file history row for each finalized file. Do not reopen generic upload, permanent-file finalization, or the accepted Pixel UX while resolving history.
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-103-211-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-104-212:Current Regression Token
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260830T033201Z-2668138.txt-105-213:No token label is permanently reserved as the regression token. Use a currently active, unexpired test token from the existing token system. Do not create a replacement token merely because an upload test fails.
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-144- $file->setPermanent();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-145- $file->save();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-146-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt:147: $db->insert('skyhawk_upload_file')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-148- ->fields([
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-149- 'token' => $token,
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-150- 'filename' => $file->getFilename(),
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-175- ->execute()
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-176- ->fetchCol();
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-177-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt:178: $files = \Drupal::database()->select('skyhawk_upload_file', 'f')
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-179- ->fields('f', ['filename', 'size_bytes'])
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-180- ->condition('token', $row->token)
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260825T012038Z-2471164.txt-181- ->orderBy('id')
--
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt-4095-PERMANENT=YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt-4096-DISK_EXISTS=YES
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt-4097-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt:4098:===== 11. NEWEST HISTORY ROWS =====
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt-4099-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt-4100-
/home/darwus/drupalbeta/web/downloads/chatgpt-debug-20260826T025533Z-1245077.txt-4101-===== 12. C5 CURRENT ACCOUNTING =====
===== RECONCILIATION =====
ACTIVE_SOURCE_HISTORY_HITS=1
DB_ROW_COUNT=0
FID_61767_HISTORY=UNRESOLVED_NO_FID_COLUMN
FID_61768_HISTORY=UNRESOLVED_NO_FID_COLUMN
FID_61769_HISTORY=UNRESOLVED_NO_FID_COLUMN
EVIDENCE_CLASSIFICATION=WRITE_PATH_FOUND_BUT_NO_PERSISTED_HISTORY_ROWS
Interpretation rules:
1. Source saying a row should be written is not persistence proof.
2. A UI receipt is not persistence proof.
3. A durable reference statement is not execution evidence.
4. Existing DB rows are persisted-state evidence.
5. A Report-ID is execution evidence only for what its recorded checks actually proved.
6. Contradictory evidence remains contradictory until resolved; it is not averaged.
===== VERIFICATION =====
REF_LINT_RC=0
REF_RC=0
DB_LINT_RC=0
DB_RC=0
OVERALL=PASS
===== PROCESS CHECKSUM =====
RULES REVIEWED: YES
GERMANE REFERENCE REVIEWED: YES
UPDATE REQUIRED: NO
BACKUP REQUIRED: NO
NEXT: Treat this as an implementation transition defect. Inspect the active Finish write path and run one controlled Generic Intake acceptance test only after defining rollback/verification.
===== PRIVATE SUPPORTING ARTIFACTS =====
REFERENCE_BODIES=/tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/*.body.html
ACTIVE_SOURCE_HASHES=/tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/active-source-hashes.txt
DATABASE_RESULT=/tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/database-result.txt
KNOWN_REPORT_EVIDENCE=/tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/known-report-evidence.txt
ALL_REPORT_HISTORY_HITS=/tmp/skyhawk-upload-history-deep-audit-20260831T195202Z-1605488/all-report-history-hits.txt
===== END =====