We have been a vendor of web development services for Metro Health since 2011 and provided the following advanced solutions:
- Migration of content from Drupal to WordPress
- Porting a Drupal theme to WordPress theme
- Building a “find a doc” functionality on top of WordPress, allowing Metro Health to stop paying high licensing cost to for a third party service. Importing all content from the third party service.
- Building an internal “credentialing” app on top of WordPress to replace yet another proprietary, stand-alone application with disconnected database
- Modifying WooCommerce (WordPress Plugin) to accept internal forms of payment
- Building an eCard solution on top of WordPress allowing friends and family of patients to choose, fill out and submit a card for delivery to patient’s room
- Modifying PostIndexer WordPress plugin to index existing posts and pages, not just new content.
- Building a highly integrated intranet portal based on WordPress, using Single Sign-On based on Active Directory authentication inherited from the MS Windows session.
Permissions Solution:
Requirements
- Users should not have to log in to intranet. Instead, WordPress should inherit their authentication from their MS Windows login which is based on Active Directory.
- The site should replace vast majority of email communication and instead use project-based communication powered by BuddyPress.
- All content creators (100+) should have the ability to indicate who can access the content. Since there are several thousand users the content creators should indicate this by selecting which Active Directory groups are authorized to see the content.
- The content creators also belong to various Active Directory groups and should not be able to edit content not “owned” by their group.
Solution
For the connection to Active Directory we have modified the Active Directory Integration plugin to store all users’ group in the WordPress database and to also inherit browser authentication.
We wrote a relatively simple but powerful plugin to intercept all WP_Query and filter out all content which the logged in user was not authorized to see.