Commit Graph

8 Commits

Author SHA1 Message Date
Matt 6e68e42f28 Fix broken verification button URLs in emails
Build And Push Image / docker (push) Successful in 3m11s Details
- Fix malformed verification links caused by config.public.domain
- Use absolute HTTPS URLs for verification links in both registration and verification emails
- Ensures verification buttons work correctly in all email clients
- Fixes the 'app://renderer/' URL prefix issue seen in email clients
2025-08-11 16:44:35 +02:00
Matt f4044c4477 Add unique member ID generation to registration process
Build And Push Image / docker (push) Successful in 3m25s Details
- Generate and store unique member IDs during user registration
- Update email templates to include formatted member ID and registration date
- Add member_id field mapping in NocoDB utility functions
- Enhance email service with better logging and template data handling
2025-08-11 16:05:24 +02:00
Matt f1a462094a Add payment date selection for dues payments and improve member viewing
Build And Push Image / docker (push) Successful in 3m23s Details
- Add payment date dialog when marking dues as paid with date validation
- Replace direct member view emission with dedicated ViewMemberDialog component
- Add backend support for custom payment dates in mark-dues-paid endpoint
- Prevent future date selection for payment records
- Improve user workflow for viewing and editing member details
2025-08-11 15:41:33 +02:00
Matt 7a8c88c341 Implement grace period system for member dues management
Build And Push Image / docker (push) Successful in 2m55s Details
- Add grace period logic for new members (1 month from join date)
- Enhance dues status computation with actual payment date validation
- Update member card to show grace period status with warning indicators
- Remove overdue dues banner from member list
- Add payment due date calculation in registration process
- Update email templates for improved member communication
2025-08-11 15:03:44 +02:00
Matt 09773f9571 Looking at the changes, this commit primarily focuses on fixing a critical mobile Safari issue with the country dropdown selector. Here's my suggested commit message:
Build And Push Image / docker (push) Successful in 3m0s Details
```
Fix mobile Safari country dropdown with touch-optimized dialog interface

- Replace broken v-select with mobile-friendly dialog for Safari
- Add device detection to switch between desktop and mobile interfaces
- Implement full-screen country selection with search functionality
- Add touch-optimized UI with larger targets and smooth scrolling
- Update documentation with fix details and implementation notes
```

The main change is addressing a completely broken country selection dropdown on mobile Safari by implementing a mobile-specific dialog interface while maintaining the original desktop experience.
2025-08-09 18:53:26 +02:00
Matt dcb7840825 Make email service initialization asynchronous
Build And Push Image / docker (push) Successful in 3m10s Details
Convert getEmailService() to async function and update all callers to use await.
Replace synchronous require() with dynamic import() for admin-config module.
Add SMTP config loading to admin configuration dialog.
2025-08-09 15:50:54 +02:00
Matt 4ec05e29dc Add email verification system for user registration
Build And Push Image / docker (push) Successful in 3m1s Details
- Add SMTP configuration UI in admin panel with test functionality
- Implement email verification workflow with tokens and templates
- Add verification success/expired pages for user feedback
- Include nodemailer, handlebars, and JWT dependencies
- Create API endpoints for email config, testing, and verification
2025-08-08 22:51:14 +02:00
Matt 5535b7905d #### __1. Role-Based Security Architecture__
Build And Push Image / docker (push) Successful in 2m58s Details
- Replaces group-based tiers with proper Keycloak realm roles
- `monaco-user`, `monaco-board`, `monaco-admin` roles
- Backward compatibility with existing group system

#### __2. Advanced User Management__

- Comprehensive user profile synchronization
- Membership data stored in Keycloak user attributes
- Bidirectional sync between NocoDB and Keycloak

#### __3. Session Security & Monitoring__

- Real-time session tracking and management
- Administrative session control capabilities
- Enhanced security analytics foundation

#### __4. Email Workflow System__

- Multiple email types: DUES_REMINDER, MEMBERSHIP_RENEWAL, WELCOME, VERIFICATION
- Customizable email parameters and lifespans
- Advanced email template support

#### __5. Seamless Migration Path__

- All existing functionality continues to work
- New users automatically get realm roles
- Gradual migration from groups to roles
- Zero breaking changes

### 🔧 __What You Can Do Now__

#### __For New Users:__

- Public registrations automatically assign `monaco-user` role
- Portal account creation syncs member data to Keycloak attributes
- Enhanced email verification and welcome workflows

#### __For Administrators:__

- Session management and monitoring capabilities
- Advanced user profile management with member data sync
- Comprehensive role assignment and management
- Enhanced email communication workflows

#### __For Developers:__

- Use `hasRole('monaco-admin')` for role-based checks
- Access `getAllRoles()` for debugging and analytics
- Enhanced `useAuth()` composable with backward compatibility
- Comprehensive TypeScript support throughout

### 🛡️ __Security & Reliability__

- __Backward Compatibility__: Existing users continue to work seamlessly
- __Enhanced Security__: Proper realm role-based authorization
- __Error Handling__: Comprehensive error handling and fallbacks
- __Type Safety__: Full TypeScript support throughout the system
2025-08-08 19:40:13 +02:00