tastyigniter/ti-ext-user
The core TastyIgniter extension for managing customers and staff, handling authentication, registration, password resets, email verification, and impersonation. Adds automation events and conditions for customer registration and attributes.
Pros:
igniter.user.register, igniter.user.login) and service providers for custom logic injection (e.g., analytics, fraud detection).Auth::impersonate()) and bulk user management reduce backend development for hospitality-specific workflows (e.g., resolving customer issues in real-time).Customer model now declares searchable fields (first_name, last_name, email, telephone) usable via the query modifier. This unlocks admin/customer-search filtering without custom queries—directly useful for support tooling and bulk management.customer_id = 0, closing a class of unintended order matches. This strengthens the hospitality workflow where guest-to-customer order attribution matters.saveQuietly() for silent saves), addressing scalability concerns for mid-sized user bases.Cons:
AdminAuth, igniter:up migrations, ti-ext-* namespace). Risk: Porting to vanilla Laravel requires rewriting adapters (e.g., replacing AdminAuth with Laravel’s Auth).telephone with country codes) are niche. Generic SaaS use cases may need custom overrides.AdminController vs. Laravel’s Controller). v4.2.1’s additions (searchable fields, guest-order scoping) are not deeply documented; teams should inspect model/rule source directly.AdminAuth → Laravel’s Auth). Example: Overriding AuthServiceProvider to replace igniter events with Laravel’s auth.attempting/authenticated.ti-ext-orders). Risk increases with custom TastyIgniter modifications.sale_permission validation). No reported breaking changes from v4.1.2; still validate against custom overrides.saveQuietly() usage to avoid silent save pitfalls.LIKE/multi-column scans. Ensure indexes exist on email, telephone, and name columns before exposing admin search at volume.customer_id = 0) by scoping on email. This was a data-exposure/attribution risk; verify existing guest-order records and audit any historical linking behavior.can:impersonate) to prevent privilege escalation.bcrypt hashing and password reset tokens.sale_permission validation rule indicates prior incomplete validation; run regression tests on user-form saves to confirm permissions persist correctly.AdminAuth)?hasPermission may not cover complex matrix rules. Confirm sale_permission persistence post-v4.2.1.Customer::with('addresses')->get() and search-filter queries).customer_id = 0? Run the v4.2.1 scoping against a copy of production and compare claimed-order counts.POST /api/login).// Leverages Laravel’s Auth system
Auth::attempt($credentials);
// Uses Laravel events
event(new Registered($user));
AdminAuth, igniter:up migrations). Assumes:
Admin facade for admin routes.ti-ext-* namespace conventions.AdminAuth with Laravel’s Auth).AuthServiceProvider to remove igniter event bindings.users, customers tables). Vanilla Laravel may need schema adjustments.email, telephone, name fields) where they don’t already exist.| Step | Task | Effort | Dependencies |
|---|---|---|---|
| 1 | Install/Upgrade Package | Low | Composer, Laravel |
composer require tastyigniter/ti-ext-user (or composer update to v4.2.1) |
|||
| 2 | Run Migrations | Medium | Database |
php artisan igniter:up (TastyIgniter) or custom migrations (vanilla) |
|||
| 3 | Configure Admin | Medium | TastyIgniter (if applicable) |
Set registration emails, permissions, and impersonation roles in config/ti-ext-user.php. |
|||
| 4 | Enable Customer Search | Low | v4.2.1 |
| Map the new searchable fields into admin/customer filters; validate query performance. | |||
| 5 | Validate Guest-Order Scoping | Medium | v4.2.1, DB copy |
Dry-run the email-scoped claim logic against legacy customer_id = 0 rows; compare results. |
|||
| 6 | Override Defaults | High (if needed) | Laravel |
Extend models/controllers (e.g., app/Extensions/User/Events/Registered.php). |
|||
| 7 | Frontend Integration | Medium | Frontend Framework |
- Blade: Use @include('ti-ext-user::auth.login').- SPA: Create API endpoints (e.g., POST /api/auth/login). |
|||
| 8 | Test Core Flows | High | QA Team |
Validate: registration, login, impersonation, password resets, guest-order claiming, sale_permission save, customer search. |
|||
| 9 | Custom Hooks | Medium | Business Logic |
Subscribe to events (e.g., igniter.user.register) for custom actions. |
composer.json for exact range).TastyIgniter\Extensions\User). Conflicts unlikely unless overriding core Laravel classes.User models may clash with ti-ext-user's Customer/User models. Solution: Use trait composition or alias models.AuthServiceProvider.Customer may conflict with the new searchable-fields configuration—reconcile before enabling.customer_id = 0 data; confirm intended attribution.sale_permission validation persists correctly on user-form saves.sale_permission validation)—low merge friction. Maintain a thin layer of custom overrides (events, middleware) to keep upgrades clean.AdminAuth, igniter:up) are niche; ensure at least two engineers can operate the package.customer_id = 0 rows, but no backfill is implied—historical claims may remain inconsistent until reconciled.saveQuietly() can mask failed writes; add explicit assertions/monitoring around critical saves.sale_permission validation could leave inaccurate permission state; audit existing users after upgrade.can:impersonate and audit logs.How can I help you explore Laravel packages today?