Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ce6f23ad8 | ||
|
|
1dbc37ba08 |
@@ -7,6 +7,24 @@ and this project follows [Semantic Versioning](https://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.45.1] - 2026-10-28
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Privacy notice (built-in text)** brought up to date: kids check-in (what's kept about
|
||||
children and authorised adults, who sees allergies, medical and custody notes, pickup codes,
|
||||
offline desk lists, the 6-month deletion), multi-session attendance, session reminders,
|
||||
certificates and their public check, home campus, WhatsApp sign-in codes, and campus-limited
|
||||
staff. "Stored on South African servers" is replaced by where the data really is: the site's
|
||||
own database at the hosting provider in the operator list. It now also says what the site sends
|
||||
Cross Code's licence server (health and totals, income as a range — no personal information),
|
||||
and lists the kids check-in browser storage.
|
||||
Sites that have already published their own notice keep it: review the changes and publish a
|
||||
new version from Admin → Privacy → Privacy notice.
|
||||
- **Terms of use:** a new "Kids Check-in" section (pickup codes, parents' responsibility for
|
||||
their children's details), sessions and certificates, kids messages among the required
|
||||
messages, and account deletion from the Privacy page. Later sections are renumbered.
|
||||
|
||||
## [1.45.0] - 2026-10-28
|
||||
|
||||
### Added
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "event-management-backend",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "event-management-backend",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@prisma/adapter-pg": "^7.10.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "event-management-backend",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"description": "Event Management System Backend",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -24,11 +24,12 @@ const DEFAULT_SECTIONS = [
|
||||
title: 'Plain English Summary',
|
||||
body: [
|
||||
"We respect your privacy — here's what you need to know:",
|
||||
'• We only collect info needed to run events: registrations, payments, tickets and check-in.',
|
||||
'• We store your info safely on South African servers.',
|
||||
'• We only collect info needed to run events: registrations, payments, tickets, check-in and, for children\'s ministry, kids check-in.',
|
||||
"• Your information is kept in this site's own database, run by the hosting provider listed in section 9. It isn't shared with other organisations that use the same software.",
|
||||
"• We don't sell your data, and only share it with the services listed in section 9, which process payments and deliver messages for us.",
|
||||
'• If you register other people or pass a ticket on, we only use the email or phone number you type to contact them. We never show you whether someone has an account with us.',
|
||||
'• For youth events, a parent or guardian gives consent. Medical details are encrypted, seen only by the event leaders who need them, and deleted shortly after the event.',
|
||||
"• For kids check-in, parents add their children's details once. Allergies, medical and custody notes are encrypted, shown only to kids-ministry staff, and deleted when a child hasn't been checked in for a while (section 7). Children are collected with a pickup code.",
|
||||
'• Online payments go through Yoco or PayFast; we never see your card details.',
|
||||
'• We send tickets, updates and security alerts by email and/or WhatsApp. News and announcements are sent only if you ask for them, and you can unsubscribe at any time.',
|
||||
'• Visit statistics are only collected if you click "Allow" on the cookie notice — no third-party analytics.',
|
||||
@@ -50,8 +51,10 @@ const DEFAULT_SECTIONS = [
|
||||
'We collect the following information when you interact with our platform:',
|
||||
'• Account information: name, email address, phone number, notification preference and password (stored only as an encrypted hash). If you use two-factor authentication, we keep which method you use; codes are short-lived and never stored in readable form.',
|
||||
'• Security records: sign-ins, password changes and similar account events, with the time, IP address and device type, so we can alert you and investigate misuse.',
|
||||
'• Event information: events you register for, ticket selections, discount codes used, attendee form answers, waitlist requests, ticket check-ins (when your ticket was scanned), and room or group allocations.',
|
||||
'• Details about other people you register (see section 3), and parental consent details for youth events (see section 8).',
|
||||
'• Event information: events you register for, ticket selections (including the sessions you chose on multi-session events), discount codes used, attendee form answers, waitlist requests, ticket check-ins (when your ticket was scanned, per session), room or group allocations, and completion certificates issued to you.',
|
||||
'• Your home campus, if the organisation has more than one campus and you choose one.',
|
||||
"• Kids check-in (if you use it): your family's name, your children's names, dates of birth, gender, allergies, medical notes and custody notes, the adults you allow to collect them (name, phone number, relationship), and each check-in — when, which room, the pickup code, who checked them in and out, and who collected them (see section 8).",
|
||||
'• Details about other people you register (see section 3), parental consent details for youth events, and children at kids check-in (see section 8).',
|
||||
'• Payment information: processed by our payment provider (Yoco or PayFast); we receive only payment status, amount and reference numbers. If you sponsor a spot, we record the amount and, unless you give anonymously, the name and message you choose to add.',
|
||||
"• Feedback: answers you give to post-event feedback forms. If an event's feedback is anonymous, your answers are not linked to your name.",
|
||||
'• Your choices: whether you want news and announcements, which version of this notice you accepted, and when you made each choice.',
|
||||
@@ -83,7 +86,10 @@ const DEFAULT_SECTIONS = [
|
||||
'• Send news and announcements about upcoming events, only if you asked for them. Every such email has an unsubscribe link, and you can reply STOP on WhatsApp.',
|
||||
'• Send security notifications for new logins, password changes, and account actions on your account.',
|
||||
'• Deliver your event tickets via email attachment and/or WhatsApp PDF (based on your preference).',
|
||||
'• Check tickets in at the door, including with scanners that keep working without an internet connection.',
|
||||
'• Check tickets in at the door, including with scanners that keep working without an internet connection, and keep attendance per session on multi-session events.',
|
||||
'• Send optional reminders before sessions, and issue completion certificates (each has a code anyone can use to check it is genuine: the check shows the name on the certificate and the event).',
|
||||
'• Check children in and out at kids check-in, send you their pickup code, and ask you to come to the room if a leader needs you.',
|
||||
'• Show you the events of your home campus first, if the organisation has more than one campus.',
|
||||
'• Offer places from a waitlist, arrange rooms and groups, and ask for parental consent on youth events.',
|
||||
'• Send you an optional feedback form after an event, with one reminder.',
|
||||
'• Manage user accounts and event attendance records, and give support when you ask for help.',
|
||||
@@ -99,7 +105,9 @@ const DEFAULT_SECTIONS = [
|
||||
'• Event registration confirmations and updates.',
|
||||
'• Payment receipts.',
|
||||
'• Your event tickets (as a PDF document).',
|
||||
'• Security alerts such as new login notifications, password changes, and account closure confirmations.',
|
||||
'• Security alerts such as new login notifications, password changes, and account closure confirmations, and sign-in codes if you chose WhatsApp for two-factor authentication.',
|
||||
'• Session reminders, if the event sends them.',
|
||||
'• Kids check-in: your children\'s pickup code, and a request to come to the room if a leader needs you. These never include medical or custody details. If you ask the desk to, the pickup code is also sent to one of your authorised adults.',
|
||||
'• News and announcements, only if you asked for them on WhatsApp. Reply STOP to any of these to stop them.',
|
||||
'WhatsApp communications are delivered through WAWP (wawp.net), a third-party WhatsApp Business API provider. Your mobile number is transmitted to WAWP solely for the purpose of delivering your messages.',
|
||||
'Security-critical messages (login alerts, password resets, account closures) are always sent via email regardless of your preference, and additionally sent via WhatsApp if your preference includes it.',
|
||||
@@ -113,7 +121,8 @@ const DEFAULT_SECTIONS = [
|
||||
id: 'storage',
|
||||
title: '6. Where We Store Your Data',
|
||||
body: [
|
||||
'All data is securely stored on cloud servers hosted in South Africa.',
|
||||
"Your information is stored in this site's own database, on the servers of the hosting provider listed in section 9 (where they are is shown there). Each organisation using this software has its own separate site and database.",
|
||||
'The software (Cross Events) is licensed from Cross Code. Every 15 minutes the site sends Cross Code\'s licence server technical health information (software version, uptime, disk space, errors) and totals — such as the number of accounts, events, registrations, tickets and check-ins, and income as a broad range (for example "R5 001–R20 000"). It never sends names, contact details, children\'s details or any other personal information.',
|
||||
'We use appropriate technical and organisational measures to protect your information from unauthorised access, alteration, or disclosure.',
|
||||
].join('\n'),
|
||||
},
|
||||
@@ -124,18 +133,25 @@ const DEFAULT_SECTIONS = [
|
||||
'We keep personal information only as long as we need it:',
|
||||
'{retention}',
|
||||
"• Ticket lists downloaded to a staff member's scanner for offline check-in are deleted from that device when offline mode is ended.",
|
||||
"• Family lists downloaded to a kids check-in desk for offline use stay on that device until the desk is synced and the list is refreshed or removed. Only kids-ministry staff can download them, and each download is recorded.",
|
||||
'You can ask for your account to be deleted at any time from the Privacy page in your account. Your account is closed straight away, and your personal information — your name and contact details, the people you registered, your form answers — is deleted within 30 days (after any upcoming event you registered for). Payment and registration records are kept without your name, because the law requires us to keep financial records.',
|
||||
].join('\n'),
|
||||
},
|
||||
{
|
||||
id: 'children',
|
||||
title: '8. Children, Parental Consent and Health Information',
|
||||
title: '8. Children, Parental Consent, Kids Check-in and Health Information',
|
||||
body: [
|
||||
'Users under 18 may only create an account or register for events with the consent and supervision of a parent or guardian.',
|
||||
'We do not knowingly collect or process personal information of minors without such consent.',
|
||||
"For youth events, each attendee's date of birth is required. For anyone under 18, the parent or guardian named at registration is sent a consent request by email and WhatsApp, where they review the event details and give or decline consent. Their typed name, the time, the wording agreed to, and the IP address and device type used are recorded as proof of consent. A young person can't be checked in until consent is given.",
|
||||
"The consent form may ask for medical information (such as allergies, medication and conditions) and an emergency contact. This is special personal information under POPIA. We collect it only with the parent's or guardian's consent, for the young person's safety at the event. It is stored encrypted and shown only to supervisors who need it, and each time the medical list is viewed this is recorded. It is deleted after the event as described in section 7.",
|
||||
'A parent or guardian may also say whether photos of the young person may be used.',
|
||||
'Kids check-in:',
|
||||
"• A parent adds their children under My account → Kids, or the kids desk adds them with the parent present. A parent who is added at the desk with only a phone number or email address gets an account they can activate.",
|
||||
"• Allergies, medical notes and custody notes (for example, someone who may not collect a child) are special personal information. We keep them only to keep your child safe, with your consent as their parent or guardian. They are stored encrypted, shown only to kids-ministry staff at the desk and in the rooms, and never put in a message. Opening the desk or room screens is recorded. Only parents, supervisors and administrators can change custody notes, and every change is recorded.",
|
||||
'• Each check-in gives you a pickup code. Anyone who has the code can collect your children, so share it only with people you trust. The adults you list as allowed to collect are shown to the room leader so they can check.',
|
||||
'• Each child is added to the event\'s attendance records (name, date of birth and gender) like any other attendee, so the organisation knows who attended.',
|
||||
"• A child's details are deleted when they haven't been checked in for the period in section 7. You can remove them yourself at any time.",
|
||||
].join('\n'),
|
||||
},
|
||||
{
|
||||
@@ -147,7 +163,9 @@ const DEFAULT_SECTIONS = [
|
||||
'• Anyone we are required to share it with under South African law.',
|
||||
'Within our organisation, people see only what they need:',
|
||||
"• Door staff see a ticket's holder name, ticket type and check-in status when scanning.",
|
||||
'• Group, room or bus leaders see the names, ages and contact numbers of the people in their group. Medical details are shown to supervisors only.',
|
||||
'• Group, room or bus leaders see the names, ages and contact numbers of the people in their group. Medical details from parental consent forms are shown to supervisors only.',
|
||||
"• Kids-ministry staff see the children checked in, with their allergies, medical and custody notes, the parents' names and phone numbers, and the adults allowed to collect them.",
|
||||
'• If the organisation has several campuses, a staff member may be limited to their own campuses\' events.',
|
||||
'• Supervisors and administrators manage registrations, payments and communication for events. Every export of personal information (reports, attendance registers, lists) is recorded.',
|
||||
'• Support access: to help with a problem (for example, a ticket not showing), an administrator may view the site as you see it for up to 30 minutes. This is strictly read-only — nothing can be changed, paid, registered or sent on your behalf. A reason must be given, and the session and every page viewed are recorded. The organisation may choose to email you whenever this happens.',
|
||||
'• Sponsors never see who was helped by a sponsorship; the public only sees how many spots were sponsored.',
|
||||
@@ -186,6 +204,8 @@ const DEFAULT_SECTIONS = [
|
||||
'Staff and administrators only:',
|
||||
'• hope_events_scan_device, hope_events_offline_lock and the "hope-events-offline-scan" database — on a staff member\'s scanner in offline mode: the device\'s id, the ticket list for the section being scanned, and scans waiting to upload. They are deleted when offline mode is ended. A copy of the scanner page is also cached so it opens without a connection.',
|
||||
'• hope_events_admin_token, hope_events_admin_user_cache and hope_events_impersonation — only while an administrator is using read-only support access (section 9), and removed when it ends.',
|
||||
"• hope_events_kids_event and hope_events_kids_room — on a kids check-in device: the event and room last chosen.",
|
||||
"• hope_events_kids_device and hope_events_kids_offline_… — on a kids check-in desk in offline mode: the device's id, the list of families and children (with allergies, medical and custody notes), pickup codes kept for the device, and check-ins waiting to sync.",
|
||||
'Optional — only if you click "Allow" on the cookie notice:',
|
||||
'• hope_events_analytics_sid — a random, anonymous visit id. With it we count, in our own statistics, how many visitors view an event, start registering, and complete a registration. We record only that step, where the visit came from (for example a short link or campaign link) and the type of device — never your name, IP address or browsing history. Detailed records become anonymous daily totals after 90 days. If you choose "No thanks", nothing is counted and no visit id is created.',
|
||||
'Third parties:',
|
||||
@@ -198,7 +218,7 @@ const DEFAULT_SECTIONS = [
|
||||
id: 'security',
|
||||
title: '12. Security',
|
||||
body: [
|
||||
'Your personal data is encrypted during transmission and stored using industry-standard security protocols. Medical and emergency details are additionally encrypted in our database.',
|
||||
"Your personal data is encrypted during transmission and stored using industry-standard security protocols. Medical and emergency details, and children's allergies, medical and custody notes, are additionally encrypted in our database.",
|
||||
'Passwords are encrypted and cannot be viewed by anyone, including administrators.',
|
||||
'Two-factor authentication is available to everyone and is required for supervisors and administrators.',
|
||||
'Links we send for consent, feedback, ticket transfers and unsubscribing are personal. Only a secure fingerprint of most links is stored, not the link itself.',
|
||||
|
||||
+2
-1
@@ -1,6 +1,6 @@
|
||||
# Handover — where things stand and how to carry on
|
||||
|
||||
Last updated: 2026-10-28, after **1.45.0** (and Hub 1.1.0). The plan itself is in
|
||||
Last updated: 2026-10-28, after **1.45.1** (and Hub 1.1.0). The plan itself is in
|
||||
[ROADMAP-v2.md](./ROADMAP-v2.md) (decisions table at the end); the previous round of
|
||||
features is in [FEATURES-ROUND-1.md](./FEATURES-ROUND-1.md).
|
||||
|
||||
@@ -14,6 +14,7 @@ encrypted settings unreadable or break existing installs.
|
||||
|
||||
| Version | What |
|
||||
|---------|------|
|
||||
| 1.45.1 | Privacy notice (built-in text) and terms of use brought up to date with kids check-in, sessions, certificates, campuses, the Hub heartbeat and where data is stored. Installs with a published notice must publish a new version themselves |
|
||||
| 1.45.0 | **Kids check-in** (§4), fully digital: families/children/authorised adults kept between events (My account → Kids), staff desk with pickup codes and a "write on the sticker" panel, rooms with age ranges and ratios, room screen (on duty, call parent, alerts), check-out by code (wrong code alerts, override with reason), offline desk with reserved codes, attendance through a free kids ticket; 6-month retention rule for children |
|
||||
| 1.44.0 | **Campus-scoped staff** (§12 part 2): Admin → Users "Limit to campuses"; `utils/campusScope.js` on every staff/supervisor route (and owner-or-staff routes), lists filtered, scanner names the other campus, church-wide events view/scan/door-only for scoped staff; route test `tests/campusScopeRoutes.test.js` |
|
||||
| 1.43.0 | **Campuses** (§12 part 1): Site settings → Campuses (off by default), events per campus or all campuses, public campus filter (remembered, starts on home campus) and `/campus/<slug>` pages, home campus on the profile, campus filters on Reports and the dashboards, "Everyone at a campus" in broadcasts, campus summary recipients, campus on ticket PDFs, heartbeat `campusCount`. Also adds the `hub_update_requested` audit action missing since 1.42.0 |
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "hope-events-frontend",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "hope-events-frontend",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"dependencies": {
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
"@hookform/resolvers": "^5.2.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hope-events-frontend",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev --turbopack",
|
||||
|
||||
@@ -14,17 +14,18 @@ const sections = [
|
||||
{ id: "registrations", title: "5. Registrations & Tickets" },
|
||||
{ id: "others", title: "6. Registering Other People" },
|
||||
{ id: "youth", title: "7. Youth Events & Parental Consent" },
|
||||
{ id: "transfers", title: "8. Ticket Transfers" },
|
||||
{ id: "extras", title: "9. Discount Codes, Waitlists, Sponsorships & Feedback" },
|
||||
{ id: "acceptable", title: "10. Acceptable Use" },
|
||||
{ id: "communication", title: "11. Communication" },
|
||||
{ id: "support", title: "12. Account Security & Support Access" },
|
||||
{ id: "intellectual", title: "13. Intellectual Property" },
|
||||
{ id: "liability", title: "14. Limitation of Liability" },
|
||||
{ id: "forcemajeure", title: "15. Force Majeure" },
|
||||
{ id: "termination", title: "16. Termination of Access" },
|
||||
{ id: "law", title: "17. Governing Law" },
|
||||
{ id: "contact", title: "18. Contact" },
|
||||
{ id: "kids", title: "8. Kids Check-in" },
|
||||
{ id: "transfers", title: "9. Ticket Transfers" },
|
||||
{ id: "extras", title: "10. Discount Codes, Waitlists, Sponsorships & Feedback" },
|
||||
{ id: "acceptable", title: "11. Acceptable Use" },
|
||||
{ id: "communication", title: "12. Communication" },
|
||||
{ id: "support", title: "13. Account Security & Support Access" },
|
||||
{ id: "intellectual", title: "14. Intellectual Property" },
|
||||
{ id: "liability", title: "15. Limitation of Liability" },
|
||||
{ id: "forcemajeure", title: "16. Force Majeure" },
|
||||
{ id: "termination", title: "17. Termination of Access" },
|
||||
{ id: "law", title: "18. Governing Law" },
|
||||
{ id: "contact", title: "19. Contact" },
|
||||
];
|
||||
|
||||
export default function TermsOfUsePage() {
|
||||
@@ -96,6 +97,7 @@ export default function TermsOfUsePage() {
|
||||
<li>Only enter other people's details (when booking for them or passing on a ticket) if you're allowed to.</li>
|
||||
<li>Where an event allows it, you can pass your ticket to someone else before the event — it moves to them once they accept, with a new QR code.</li>
|
||||
<li>For youth events, a parent or guardian must give consent before a young person can be checked in.</li>
|
||||
<li>At kids check-in, anyone with your children's pickup code can collect them — keep it private and only share it with people you trust.</li>
|
||||
<li>If we cancel an event, you'll get a full refund on request or your registration moved to the new date.</li>
|
||||
</ul>
|
||||
<p className="mt-2">If you disagree with these terms, please don't use the site.</p>
|
||||
@@ -128,7 +130,8 @@ function Section({
|
||||
purpose: [
|
||||
`The platform is designed to:`,
|
||||
`• Allow users to view, register, and pay for events hosted or co-hosted by ${orgName}.`,
|
||||
`• Manage event registration details, communication, and participation records.`,
|
||||
`• Manage event registration details, communication, check-in and attendance records, including completion certificates for courses.`,
|
||||
`• Check children in and out of children's ministry (kids check-in).`,
|
||||
`The site may also provide updates or communication related to events.`,
|
||||
],
|
||||
accounts: [
|
||||
@@ -151,7 +154,8 @@ function Section({
|
||||
registrations: [
|
||||
"Each ticket has a QR code that is checked at the event. Keep it private — anyone holding a copy of it may be able to use it.",
|
||||
"A ticket can only be used for the number of places it covers. Once a ticket has been scanned it cannot be transferred.",
|
||||
"Tickets may be passed on to another person only through the platform's transfer feature, where the event allows it (see section 8). You may not sell tickets for profit.",
|
||||
"On events with several sessions, a ticket is checked in once per session it covers. Where an event issues completion certificates, the organisers decide the attendance needed, and may withdraw a certificate issued in error.",
|
||||
"Tickets may be passed on to another person only through the platform's transfer feature, where the event allows it (see section 9). You may not sell tickets for profit.",
|
||||
"At some events, door staff may check tickets against a list downloaded to their device in case the internet connection fails. If a ticket was bought or changed after that list was downloaded, you may be asked to go to the door desk.",
|
||||
"You may cancel your own registration at any time before any payment has been made. Once a payment has been recorded against your registration, cancellation must be requested through the organisation. Please contact us to arrange this.",
|
||||
`If ${orgName} cancels or significantly postpones an event, affected registrants will be notified by email. In this case, a full refund will be issued upon request, or your registration may be transferred to the rescheduled or replacement event — whichever you prefer. Refund requests for organiser-initiated cancellations must be submitted to ${orgEmail} within 30 days of the cancellation notice.`,
|
||||
@@ -168,6 +172,13 @@ function Section({
|
||||
"The parent or guardian is responsible for the accuracy of any medical and emergency information they provide, and for telling the organisers about changes.",
|
||||
"A supervisor may in exceptional cases check someone in without recorded consent; such decisions are logged.",
|
||||
],
|
||||
kids: [
|
||||
"At events with kids check-in, children are checked in and out at a desk run by the organisers' staff. You can add your children and the adults allowed to collect them under My account → Kids, or at the desk.",
|
||||
"When your children are checked in, you receive a pickup code. Anyone who shows that code (or its QR code) may collect the children checked in with it. You are responsible for keeping the code private and for whom you share it with. Without the code, staff may release a child only after checking who is collecting and recording the reason.",
|
||||
"You are responsible for the accuracy of your children's details — especially allergies, medical notes and custody notes — and for telling the organisers about changes. Staff rely on what you provide.",
|
||||
"Staff may contact you during the event (for example, to ask you to come to your child's room). Please make sure your phone number is correct.",
|
||||
"You remain responsible for your children before check-in and after they have been collected.",
|
||||
],
|
||||
transfers: [
|
||||
"Where an event allows it, the person who booked a ticket or the person currently holding it can offer the ticket to someone else before the event starts, provided the ticket has not been scanned. Supervisors may transfer tickets even where an event does not otherwise allow it.",
|
||||
"You enter the new holder's name and email address and/or phone number. We send them a link to accept the ticket. Nothing changes until they accept; they may also decline, and you may cancel the offer until then. Offers expire after 7 days or when the event starts.",
|
||||
@@ -194,7 +205,7 @@ function Section({
|
||||
communication: [
|
||||
"By registering, you consent to receive communications related to your registrations, payments, tickets, and account security.",
|
||||
"Depending on your notification preference, these may be delivered via email and/or WhatsApp. You can update your preference at any time from the Profile & Security page in your account.",
|
||||
"Certain communications are required for the operation of the platform and cannot be opted out of entirely — these include payment confirmations, ticket delivery, and account security alerts (e.g. new login notifications, password resets, and account closure confirmations). Security alerts are always sent via email; WhatsApp delivery is additional when you have opted in.",
|
||||
"Certain communications are required for the operation of the platform and cannot be opted out of entirely — these include payment confirmations, ticket delivery, kids check-in pickup codes and requests to come to your child's room, and account security alerts (e.g. new login notifications, password resets, and account closure confirmations). Security alerts are always sent via email; WhatsApp delivery is additional when you have opted in.",
|
||||
"For accounts without a valid email address (e.g. walk-in or at-the-door registrations), these required communications will be delivered via WhatsApp if a mobile number is on file.",
|
||||
"WhatsApp messages are delivered via WAWP, a third-party WhatsApp Business API provider. By enabling WhatsApp notifications, you consent to your mobile number being used to send you messages via this service.",
|
||||
],
|
||||
@@ -212,7 +223,7 @@ function Section({
|
||||
"We are not liable for any loss or damages arising from:",
|
||||
"• Technical failures; or",
|
||||
"• Misuse of the platform.",
|
||||
"Liability for event cancellations or schedule changes is addressed under section 5 (Registrations & Tickets) and section 15 (Force Majeure).",
|
||||
"Liability for event cancellations or schedule changes is addressed under section 5 (Registrations & Tickets) and section 16 (Force Majeure).",
|
||||
],
|
||||
forcemajeure: [
|
||||
`${orgName} shall not be liable for any failure or delay in performing its obligations where such failure or delay results from causes beyond its reasonable control, including but not limited to: acts of God, natural disasters, government restrictions or regulations, public health emergencies, venue closures, or any other event outside our reasonable control ('force majeure event').`,
|
||||
@@ -220,7 +231,7 @@ function Section({
|
||||
],
|
||||
termination: [
|
||||
"We may suspend or terminate access to your account if we believe you have violated these Terms of Use or engaged in behaviour harmful to others or the organisation.",
|
||||
`You may delete your own account at any time from the Profile & Security page in your account, or by contacting ${orgEmail}. Upon deletion, your personal data will be handled in accordance with our Privacy Policy.`,
|
||||
`You may delete your own account at any time from the Privacy or Profile & Security page in your account, or by contacting ${orgEmail}. Upon deletion, your personal data will be handled in accordance with our Privacy Policy.`,
|
||||
"Certain data may be retained for legal or financial record-keeping purposes even after account deletion.",
|
||||
],
|
||||
law: [
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "hope-events",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "hope-events",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.64.0",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hope-events",
|
||||
"version": "1.45.0",
|
||||
"version": "1.45.1",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"dev:backend": "cd backend && npm run dev",
|
||||
|
||||
Reference in New Issue
Block a user