Dandelion is a fair source project. View the code on Github

Commits on Feb 24, 2026
74bcdae

🔒️ (accounts.rb): add token validation before confirming email address

09f07fd

♻️ (helpers): refactor authentication to separate API key auth from session-based auth

Previously, API key sign-in would set the session, mixing authentication methods. Now API key authentication uses a separate instance variable, keeping authentication methods distinct and preventing potential conflicts between session and API key based requests.

e60e657

🐛 Remove timezone suffix from order notification message

c9cefe9

🔒 (models/account.rb): replace custom HMAC with ActiveSupport::MessageVerifier for feedback tokens

Improve token security by using Rails' built-in secure MessageVerifier while maintaining backward compatibility with legacy tokens. Add TODO to remove legacy support once all tokens are migrated.

2ad150c

🔒 (map): encrypt map IDs to prevent ID enumeration and hide internal model identifiers

e0a5737

🔒️ (pmails.rb): fix IDOR vulnerability by validating organisation access via @_organisation instead of direct lookup

c02c36f

📝 (pre-commit): remove "exhaustively" from MongoDB indexes comment

4852828

🐛 Fix setting empty password when updating account

The original code would set an empty password if params[:password] was an empty string. Now uses .present? to only set password when it has content.

410a58d

🔒️ (organisations_pay.rb): add organisation admin authorization checks to Stripe endpoints

6be669d

🔒️ (accounts.rb): use delete to remove password from params before mass assignment

e5008b8

🔒️ (models/account.rb): add password and other sensitive fields to protected attributes to prevent mass assignment vulnerabilities
✨ (controllers/accounts.rb): add direct password update support for account settings changes

303b19d

📝 (terms.md): update terms and conditions with age requirement, improved liability clauses, and termination policy

2c23c6f

🔒️ Remove insecure account lookup via params[:t] parameter

84581f0

📝 (docs): add affiliate credits documentation explaining referral system
🛂 (credit_balance): restrict credit adjustment controls to organisation admins only

ed5b54e

📝 (docs): fix typos, update external resources and contact email across multiple documentation files

a087649

♻️ Refactor moon phase calculation and format HTML file

  • Update getMoonPhase() with more precise lunar calculations matching lib/almanac.rb
  • Use accurate synodic month constant (29.530588853) and reference new moon time
  • Adjust phase boundaries to align with backend implementation
  • Reformat HTML with consistent indentation and structure
af33522

♻️ (event_atproto.rb): remove valid array from verify_atproto_collection return value

Valid records are now tracked only for counting in summary, reducing response payload size.

Commits on Feb 23, 2026
c4d7270

🐛 (lib/currencies.rb): add trailing space to currency symbol for EVM currencies to properly separate symbol from amount

17457db

🐛 Fix polymorphic association ID field type from text to id

5533455

♻️ Refactor set_counts from class method to instance method in Organisation model
✨ Add hourly task to update paid up status for organisations with recent orders
🧱 Move paid up status and stripe topup logic to rake task for better separation of concerns