CAS Profile
Drupal site designed by Dev Services. This site serves as a central location for faculty and staff profiles. Profiles are maintained on this site and then the data is provided as feeds to department sites for them to display their faculty and staff.
Motivation
Most front-facing websites want some kind of profile display and we noticed faculty would have profiles on many sites. We decided to centralize this feature into a website that allows users to manage their own profiles and deliver the profiles via feeds to websites that want to display them. The same profile can be delivered to multiple websites.
We decided to use Drupal to be the database because of the flexibility it provides with the built-in profile system and the ease in which we were able to create feeds.
Profile
Together with the core user system in Drupal, we use the profile module that allows us to set profile fields for users. Users can log in using shibboleth and edit their profile information under “My account”. We have a view that lists all users on the front page of the site with some of their profile fields. Their profile is available to everyone and only has data that publicly accessible.
Full name, last name, phone, and the office are automatically synced from the UO directory using the Find People API module.
Profile Section
The profile section is the content type that can be used by users to put content on the site like their statement, publications, research, and so on. Once they save a profile section it will be displayed when a user is viewing their profile page. Profile sections can be viewed by everyone, similar to profile fields.
Profile sections have a weight field that is “Optional. In the profile sections, the heavier items will sink and the lighter items will be positioned nearer the top.” If weight is not set then the created date will be used.
Data Feeds
The site provides JSON feeds of the data. Here are the links:
- https://casprofile.uoregon.edu/json/users : JSON feed of all users. Provided by Views Datasource module. Supports departments, username, affiliation, city, orderby, order values passed through URL.
- https://casprofile.uoregon.edu/json/users_with_sections: JSON feed of all users with profile sections. Provided by CAS Profile UI module. Supports departments, affiliation (aff) values passed through URL e.g. ?dept=CASIT or ?dept[]=CASIT&dept[]=Art&aff=staff.
- https://casprofile.uoregon.edu/json/dmundra : JSON feed of all the profile data and profile sections for user ‘dmundra’. Provided by CAS Profile UI module.
- https://casprofile.uoregon.edu/json/profile_fields : JSON feed of all profile fields names. Provided by CAS Profile UI module.
- https://casprofile.uoregon.edu/json/profile_sections : JSON feed of all profile section types. Provided by CAS Profile UI module.
- https://casprofile.uoregon.edu/picture/cjb : Full-size profile picture. Provided by CAS Profile UI module.
- https://casprofile.uoregon.edu/thumbnail/cjb : Thumbnail size profile picture. Provided by CAS Profile UI module using the ImageCache module.
WordPress Plugin
The WordPress plugin will import profiles from a specified department into a WordPress site, which will automatically be synced when viewed (after a specified cache time has expired). At the time of writing, the plugin has the ability to categorize individuals and create a custom profile field area specific to that site by editing profile posts.
Drupal 7 Module
The Drupal 7 module is similar to the WordPress plugin with additional features like the ability to reference profiles in other content types and create special views to display content by profile.