Replies: 1 comment
-
Implementation StatusThe multi-campus location system shipped in v10.1.0 with 7 of 9 phases complete. The system is fully functional for multi-campus access control. Completed (v10.1.0)
Remaining Work — tracked as issues
This discussion can be closed once #1180 and #1181 are resolved. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
[PLAN] Location-Based Multi-Campus System for Proclaim 10.1
📋 Overview
This Discussion presents the complete implementation plan for location-based multi-campus access control in Proclaim 10.1. This is a comprehensive enhancement that replaces access-level-based campus separation with a flexible location-based system.
Estimated Effort: 92 hours (~11.5 developer days)
Target Release: Proclaim 10.1
Breaking Changes: None (opt-in feature)
🎯 Goals
Replace access-level-based campus separation with a flexible system supporting:
🏗️ Architecture
Three-Source Access Model
Super admins: Bypass all filters (see everything)
Hybrid Security (Locations + Access Levels)
Joomla ACL Integration
Uses standard Joomla permissions only (no custom ACL actions):
core.admincore.managecore.editcore.edit.ownLocation Filtering = Admin organizational tool (not a permission)
Teacher Auto-Access = Extends
core.editto messages where user is listed as teacher📊 Implementation Phases
🎨 User Experience
Edit Form Mental Model
Simple, intuitive location field:
Key UX Principles:
Zero-Location Empty State
When a user has no accessible locations:
🔧 Technical Details
New Files (8)
admin/src/Helper/CwmlocationHelper.php- Core logic (450 lines)admin/src/Field/AccessibleLocationsField.php- Dropdown (150 lines)admin/src/Field/LocationGroupMappingField.php- Subform (200 lines)admin/src/Model/CwmlocationwizardModel.php- Wizard backend (450 lines)admin/src/Controller/CwmlocationwizardController.php- AJAX (200 lines)admin/src/View/Cwmlocationwizard/HtmlView.php- Wizard view (100 lines)admin/tmpl/cwmlocationwizard/default.php- Wizard UI (600 lines)build/media_source/js/location-wizard.es6.js- JS (400 lines)Updated Files (21)
Database Changes
location_idcolumnLanguage Keys
Documentation
🛡️ Safety & Quality
Safety Checks:
Performance:
Testing:
📖 Use Cases
Example 1: Multi-Campus Church
NFSDA has:
Setup:
Result:
Example 2: Teacher Cross-Campus Access
Pastor John teaches at:
Without location system: Needs to be in multiple groups
With location system: Link teacher record to user account → automatic access to all 75 messages
Example 3: CSV Bulk Import
Empty location = unrestricted. Import validates user has access to assigned locations.
🚀 Migration from 9.2.8
Auto-detection identifies one of 3 scenarios:
Scenario 2A: Access-based separation
Scenario 2B: Already using locations
Scenario 2C: Single campus
Rollback: Wizard creates backup before applying. Restore via backup or disable feature toggle.
📅 Rollout Plan
Development:
feature-location-systembranchBeta: Opt-in testing in 10.1-beta
Stable: Full release in 10.1
Documentation: 3 wiki guides + inline help
💬 Questions for Community
📎 Related Links
/tmp/location-system-master-plan-v2.md/tmp/location-plan-comprehensive-review.md🤝 How to Contribute
Feedback Welcome On:
Testing Volunteers Needed For:
Status: Planning phase complete, ready for community review before implementation begins.
Next Steps: Create phase issues, get community feedback, begin Phase 1 implementation.
Beta Was this translation helpful? Give feedback.
All reactions