Skip to content

v0.4.0

Choose a tag to compare

@RobotHanzo RobotHanzo released this 13 Oct 02:24
· 9 commits to main since this release

Four registration field types that a signed-in member's account fills in and
locks: 中文姓名, 英文姓名, 就讀科系 and 目前身分.

Features

  • Membership details on the registration form. Add field now offers
    STSA 中文姓名, STSA 英文姓名, STSA 就讀科系 and STSA 目前身分, filled in
    from the chinese_name, english_name, major and year_of_study claims.
    They are plain text answers as far as the rest of Indico is concerned —
    summary, e-mails, registrant list, exports — and take the usual field
    settings.

    • Signed in, and the account has an answer: the field arrives filled in
      and disabled, with a padlock saying where it came from.
    • Signed out, or the claim is missing or blank: an ordinary text box.
      Locking is decided field by field, so a member with no major gets three
      locked fields and one open.
    • Enforced on the server, not just drawn. After core stores a
      registration, on creation and on every edit, the account's answer is
      written over whatever was submitted for a field it has one for — so a
      hand-built request for a locked field is replaced.
    • A visitor who is signed out is told signing in fills these in, in the
      same notice the member discount uses; what they had typed is kept across
      the login page, except in the fields the account then fills in.
    • Organizers in the management area, somebody else's registration opened
      from its e-mail link, and invitations are left as ordinary text boxes —
      the same carve-outs as the membership's e-mail address.

    A new switch, Fill in the member's details, on the plugin's admin page
    (on by default). Off, the padlock and the overwrite go together; the field
    types stay registered so forms that already carry them keep working.

Upgrade notes

  • No migration. There are no new tables; nothing to run beyond installing
    the release and restarting Indico (and the Celery worker, if you run one).
  • The claims have to arrive. Indico already keeps everything the identity
    provider sends, on every login, so there is no new call to authentik — but
    the four claims must be emitted by a scope mapping, and that scope must be
    one Indico asks for (authlib_args['client_kwargs']['scope']).
  • Values are as of the last login. A member whose details changed, or who
    last signed in before the claims were being sent, sees the old ones — or
    none — until they sign in again.
  • A member who signs in with an Indico password rather than authentik has no
    claims on that login, and gets ordinary text boxes.

Full Changelog: v0.3.2...v0.4.0