Skip to main content

Board Management Reference

Board roster APIs

  • frontend/src/pages/ClubSettings/BoardTab.js:140 promotes members with POST /c/cbboard/inv, sending an array of user IDs under boardInvList.
  • frontend/src/pages/ClubSettings/BoardTab.js:170 lists current and pending board members through GET /c/cbboard/list/:cid.
  • Invitation cancellations call POST /c/cbboard/canc/ at frontend/src/pages/ClubSettings/BoardTab.js:196.
  • Backend routes live in backend/r/cbs.js:193 (invite), :198 (list) and :232 (cancel).

Role-based access control

  • frontend/src/pages/ClubSettings/RoleAccessEdit.js:186 fetches privilege matrices via GET /c/rbac/getroleprivs?role_lvl=2 (board) and ?role_lvl=3 (members).
  • Edits submit to POST /c/rbac/editroleprivs (frontend/src/pages/ClubSettings/RoleAccessEdit.js:288), storing changes that immediately influence the UI�s tab visibility.
  • Corresponding backend routes appear at backend/r/cbs.js:367 and :376, enforcing president-only access.

Interaction with membership

  • Removing a board member cascades to /c/cbmemb/remove under the hood so the user loses elevated rights but remains in the club.
  • The board list shares badge data with membership requests; the UI deduplicates rows to avoid double-rendering the same person.

UX safeguards

  • Suspended or banned users are filtered out from the invite search results to prevent accidental promotions.
  • Save buttons only enable when the checkbox state differs from what was last persisted, minimising redundant network calls.