Skip to content

Add Knight registration to new membership system#2958

Draft
brage-andreas wants to merge 1 commit intomainfrom
add-knight-registration-to-new-membership-system
Draft

Add Knight registration to new membership system#2958
brage-andreas wants to merge 1 commit intomainfrom
add-knight-registration-to-new-membership-system

Conversation

@brage-andreas
Copy link
Copy Markdown
Member

@brage-andreas brage-andreas commented Feb 26, 2026

This fixes a regression from the new membership rewrite, where Knights (Riddere) cannot register to any events.

How this works:

  • A knight ignore most attendance restrictions a normal user faces
    • They are impacted by suspensions and registration end, and that is about it
    • For example; they can register to an event regardless of registration start time or capacity
  • When a knight registers, a new pool named "Knight" will be created if it does not exist
    • If it already exists, they will register to that pool. They are not able to register to any other pool
    • No one else can ever register to this pool

Important to note:

  • Our systems will always prioritize every other membership over Knight for event registration. Meaning if a current student is a knight, their regular Bachelor/Master/social membership will take precedence, and they will not have the same leniency as described above.
  • Our Knights are our most trusted and devoted members in Online's history. This puts a lot of trust into them, but I belive that is totally fine.

TODO:

  • Add Dashboard frontend (make it clear that pools named "Ridder" are special pools)
  • Disallow setting yearCriteria for pool named "Ridder"
  • Disallow duplicated pools named "Ridder"

@brage-andreas brage-andreas changed the title feat: add Knight registration to new membership system dd Knight registration to new membership system Feb 26, 2026
@brage-andreas brage-andreas changed the title dd Knight registration to new membership system Add Knight registration to new membership system Feb 26, 2026
Copy link
Copy Markdown
Member Author

brage-andreas commented Feb 26, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@brage-andreas brage-andreas marked this pull request as ready for review February 26, 2026 18:51
@brage-andreas brage-andreas marked this pull request as draft February 26, 2026 18:51
@brage-andreas brage-andreas marked this pull request as ready for review February 26, 2026 18:51
@brage-andreas brage-andreas marked this pull request as draft February 26, 2026 18:51
Copy link
Copy Markdown
Member

@junlarsen junlarsen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs tests

Comment on lines +536 to +538
options.overrideTurnstileCheck = true
options.ignoreRegisteredToParent = true
options.ignoreRegistrationWindow = true
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not really sure we want to let them ignore the registration window. It also doesn't really make sense to skip turnstile check since it is fully automatic and already happens on the website.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to ignore registration window. Usually they get invited way in advance, and I think it would be a downgrade for them if they suddenly have a much more limited time range to register. I believe they might need to register early for externally invited capacity reasons too, but I'm not sure. This is what I came up with after talking with some Knights and HS

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The turnstile check does not really matter. I don't think there is much danger in Knights botting our registrations. I can add it back

Comment on lines +601 to +611
applicablePool = attendance.pools.find((p) => p.title === "Ridder") ?? {
id: crypto.randomUUID(),
attendanceId,
capacity: 0,
yearCriteria: [],
title: "Ridder",
createdAt: new Date(),
updatedAt: new Date(),
mergeDelayHours: null,
taskId: null,
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what this object is for, didn't you say that you were intended to create a new pool if there wasn't already one for ridder?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it says in the comment above--the pool might not exist yet, so I mock it. I don't want to create the pool until the knight actually registers, but we need the "pool" in the frontend so the knight can see they can register

}
}

// NOTE: This should allow creating attendance pools with no year criteria
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a note or todo?

@brage-andreas brage-andreas force-pushed the update-membership-system branch from 0497d1b to e58be75 Compare February 27, 2026 11:37
@brage-andreas brage-andreas force-pushed the add-knight-registration-to-new-membership-system branch from 6de224c to 7772117 Compare February 27, 2026 11:37
@brage-andreas brage-andreas changed the base branch from update-membership-system to graphite-base/2958 February 27, 2026 11:47
@brage-andreas brage-andreas force-pushed the add-knight-registration-to-new-membership-system branch from 7772117 to 51c846b Compare February 27, 2026 11:52
@graphite-app graphite-app bot changed the base branch from graphite-base/2958 to main February 27, 2026 11:53
@brage-andreas brage-andreas force-pushed the add-knight-registration-to-new-membership-system branch 3 times, most recently from 40b8fb0 to 619f62a Compare February 27, 2026 14:54
@brage-andreas brage-andreas force-pushed the add-knight-registration-to-new-membership-system branch 2 times, most recently from 9ca2514 to b608b40 Compare March 27, 2026 10:43
@brage-andreas brage-andreas force-pushed the add-knight-registration-to-new-membership-system branch 3 times, most recently from a43cb8d to 67b769f Compare March 31, 2026 09:00
@brage-andreas brage-andreas force-pushed the add-knight-registration-to-new-membership-system branch from 67b769f to ca0fe05 Compare March 31, 2026 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants