Skip to content

v0.6.0

Choose a tag to compare

@jaspertey jaspertey released this 11 Oct 15:49
541d4e3

Essentials beyond membership

Registration gating, an admin-forced password reset and initials avatars, and two fewer dependencies.

Upgrading

  • Concierge no longer requires lorisleiva/laravel-actions or spatie/laravel-data. If your app uses either one itself and only had it because concierge required it, add it to your own composer.json before updating.
  • Page props are readonly classes. Code that changed a prop object after building it, or that extended one as a non-readonly class, needs to change. Building and passing them as documented is unaffected.

Added

  • Registration gating. CONCIERGE_REGISTRATION is open (the default), domains, invitation or closed, with CONCIERGE_REGISTRATION_DOMAINS for domains mode.
    • In invitation and domains modes, someone holding a valid invitation can register with the email it was sent to.
    • It fails closed: an unknown or empty mode counts as closed, and so does domains mode with no domains.
    • It works with Fortify with no app code. Otherwise, add the MayRegister rule to the email field. (#45)
  • ForcePasswordReset::run($actor, $membership, resetTwoFactor: false).
    • It replaces the password with an unknown one, cycles the remember token, and ends the user's database sessions. It then sends a reset link through the user's own reset notification.
    • The same rules as suspending a member apply, and a new AccountGuard contract can veto it.
    • It fires PasswordResetForced. (#47)
  • Initials avatars. UserSummary carries an avatar: a photo URL when the app has one (Concierge::avatarUsing(...)), and otherwise initials and a stable colour, with no outside requests. The Vue kit exports an Avatar component. (#48)

Changed

  • Actions are plain classes, and every documented ::run(...) call still works. Page props are plain readonly classes with unchanged output. The generated types.ts is byte-identical apart from the avatar fields. (#51)

What's Changed

  • Drop laravel-actions and laravel-data in favour of plain action and data classes by @jaspertey in #60
  • Gate registration: open, allowed domains, invitation only or closed by @jaspertey in #61
  • Add ForcePasswordReset: lock an account down and send a reset link by @jaspertey in #63
  • Add initials avatars for people without a photo by @jaspertey in #64
  • Add ROADMAP.md by @jaspertey in #66

Full Changelog: v0.5.0...v0.6.0