Admin GuidesSelf-Registration & Public Catalog

Self-Registration & Public Catalog

Who this guide is for: Organization Owners (or members holding a custom role that grants the Self-registration page) who want people to create their own learner accounts (instead of admin-only invites), and to expose selected courses in a public, unauthenticated catalog. The Self-registration page is Owner-level: Admins do not see it.


Overview

Self-registration lets visitors create their own learner account from a public page at /register. You control whether it’s on, who may register, and whether new accounts need email verification and/or admin approval before they can sign in. You can also publish a public course catalog at /browse that anonymous visitors can browse before signing up.

Everything is off by default — nothing is exposed until you opt in.


Enabling self-registration

  1. Go to Settings → User Management → Self-registration.
  2. Turn on Allow self-registration. A public form appears at /register.
  3. Choose your gates (all independent):
    • Require email verification before sign-in — the learner must click a link emailed to them before they can sign in (recommended; on by default).
    • Require admin approval before sign-in — new accounts land in the Pending approvals list and can’t sign in until you approve them.
    • Require CAPTCHA on the registration form — adds a bot-protection challenge to the form (on by default; see the note below).
  4. Optionally fill in the Email-domain allowlist: one domain per line (e.g. acme.com). Only matching addresses may register. Leave blank to allow any domain.
  5. Click Save settings.

Configuration reference

SettingValuesEffect
Allow self-registrationon / off (default off)Master switch for the /register page
Require email verification before sign-inon (default) / offBlocks sign-in until the emailed link is clicked
Require admin approval before sign-inon / off (default off)Routes new accounts to the approval list
Require CAPTCHA on the registration formon (default) / offBot-protection challenge on the form, when the platform has bot protection configured
Email-domain allowlistlist of domains; blank = anyServer-side enforced; exact-match (sub-domains don’t match)

About the CAPTCHA. The challenge is a Cloudflare Turnstile box. It is enforced only when the Require CAPTCHA on the registration form toggle is on and EmbayLMS has bot protection configured for the platform. If bot protection is not configured, no box appears and registration goes through without a challenge instead of being blocked. If the toggle is on but the box never shows on your /register page, contact EmbayLMS support.


Terms of Service (optional)

On the same page, the Terms of Service box lets you paste text that appears on the registration form with a required acceptance checkbox. Leave it blank to skip, then click Save Terms. Updating the text affects new registrants only (existing users are unaffected).


Approving registrations

When Require admin approval before sign-in is on:

  1. New sign-ups appear in the Pending approvals list at the bottom of Settings → User Management → Self-registration.
  2. Click Approve to activate the account (the learner can then sign in) or Reject (the account is blocked and soft-deleted).
  3. Every approve/reject is written to the audit log.

Until approved, a pending learner who tries to sign in sees a “your account is awaiting approval” message — never a generic error.


Public catalog

Expose selected courses to anonymous visitors:

  1. Open a course → Catalog Settings → turn on Public catalog.
    • The course must also be Published and not Hidden to appear.
  2. Visitors browse the catalog at /browse (no sign-in required). Each tile shows the course price (or Free), and clicking a course opens a detail pop-up with its description and outline.

Only courses you explicitly opt in are public — the flag is off by default for every course.

Anonymous landing

When self-registration is on, anonymous visitors who land on your portal’s root URL are taken straight to the public catalog (/browse) — the storefront front door — instead of the sign-in page. When self-registration is off, the root URL goes to Sign in as before, and the Register button is hidden on the catalog (there’s no public sign-up to send them to). Signed-in users always go to their normal home.

Selling courses from the catalog (e-commerce)

If you’ve set course prices (Course pricing & coupons) and connected Stripe (Stripe Connect payments), visitors can add paid courses to a cart and buy several at once. Checkout requires them to sign in or register first (honoring every self-registration setting above — domain allowlist, CAPTCHA, Terms of Service, and approval). Payment is taken on Stripe’s secure hosted page; on success the buyer is enrolled in every course in the cart. Free courses aren’t sold through the cart — learners enrol in those from the course page.


How accounts are gated at sign-in

StateSign-in result
Active + verifiedAllowed
Pending approvalBlocked — “awaiting approval”
Email not verified (self-registered)Blocked — “confirm your email”
RejectedBlocked (treated as disabled)

Only self-registered accounts are subject to the email-verification gate — admin-created, SCIM, and imported users are never affected.


Troubleshooting

ProblemCause / fix
/register shows “Registration isn’t available”Self-registration is off — turn on Allow self-registration.
”Registration is restricted to approved email domains”The email’s domain isn’t on the allowlist. Add it, or clear the allowlist to allow any.
The CAPTCHA toggle is on, but no CAPTCHA box appears and registration goes throughBot protection isn’t configured for the platform, so the challenge is skipped instead of blocking every sign-up. Contact EmbayLMS support.
”CAPTCHA verification failed” (with a visible challenge)The challenge wasn’t completed or expired. Complete it again and resubmit. If it fails for everyone, contact EmbayLMS support.
Sign-up form loads but the CAPTCHA box never appears and the form can’t be submittedThe browser blocked the challenge script. Hard-reload (Ctrl+Shift+R) and check for a browser extension blocking challenges.cloudflare.com. If it persists, contact EmbayLMS support.
Learner verified email but still can’t sign inApproval is also required — approve them in the Pending approvals list.
A course isn’t showing at /browseIt must be Published, not Hidden, and have Public catalog on.
The portal root goes to Sign in, not the catalogThe anonymous landing routes to /browse only when self-registration is on. Enable it, or send visitors to /browse directly.
A public course has no price / shows “Free”No active price is set. Add one in the course editor (Course pricing & coupons).
Buyers see “This seller isn’t accepting payments yet” at checkoutStripe isn’t connected. Finish Stripe Connect onboarding.
Didn’t receive the verification emailCheck the spam or junk folder. If earlier messages to the address bounced or were reported as spam, EmbayLMS stops sending to it, so no email arrives: contact EmbayLMS support. The link expires 24 hours after registration; the learner can ask for a new one with Send me a new link on the check-your-email screen or the expired-link page (at most 3 a day per address; a new link replaces the old).
”This portal has reached its plan’s user limit”The Free plan is at its active-user cap (5 accounts unless EmbayLMS raised it for you), so registration cannot add another account. Free a seat (deactivate a user) or upgrade in Billing.