Support Staff and Roles
The VO collaboration and content management system is a large and complex software system consisting of many layers that require configuration and maintenance.
Later, in the final chapter, we will discuss the process for an initial installation of a VO, which requires expertise in operating system administration, networking, and database management.
Once the basic software is deployed, it is time to install, configure and customize the various modules and themes, which were reviewed in the previous chapter.
Using drupal.org's module search engine, a site developer can quickly find the official homepage of all of Drupal modules that have been published to the open-source community.
Each module comes with specific instructions for its installation and configuration procedures in a bundled README.txt file.
The above figure shows an example README for the node_clone module, which allows one to quickly make copies of existing content.
Once installed, however, it is frequently the case that, while the module is useful, its behavior needs to be extended in some way in order to better meet the needs of the CPS-VO community. In the case of the node_clone module, for example, while it can copy most simple content types, the concept of Groups has been greatly extended from the notion of groups that come with a vanilla, out of the box Drupal installation. Using Drupal's hook system, however, a software developer can define a new module that intercepts certain events generated by the website in order to override or complement the behavior of existing module(s). This is particularly useful for tying together multiple modules, which were developed in isolation and are not aware of one another, so that they behave in a more coherent fashion. The following figure show the info file for a custom CPS-VO module.
This info file declares that the cpsvo_groupclone module is dependent upon three other modules (viz. clone, og_vocab, & og_panels). In addition to the info file, the cpsvo_groupclone module contains a module file that contains PHP code, which defines the module's behavior.
In this example, we intercept Drupal's node_save event for the Group content type, and in addition to cloning the group node itself, we also look up all of that group's taxonomies and its panels from the database and iteratively clone each of those items as well, associating copies of each to the newly cloned group. This gives us the ability to have push-button initialization for a new group, based on previously defined template groups, without the tedious overhead of manually initializing the new group's taxonomies and its services (e.g. discussion forums, group homepage, membership listing, ...).
While code developers typically work from the backend, using software development tools such as version control and PHP code editors, there is another class of support staff whose expertise falls along the lines of web design. These site administrators work primarily with Drupal's web-based administrative front-end to maintain basic configuration settings, and with CSS stylesheets and graphics files for maintaing the sites visual look and feel.
Below is an example screenshot of the web-based configuration page for the node_clone module.
Additionally, each module defines a set of permissions for its various features, which the site admin must map to the various roles assigned to each class of users. In the following screenshot, you can see that we restrict the ability to clone a group so that only site administrators have access to this feature.
The next level of support staff required to maintain an evolving virtual organization is that of the individual group moderators and managers.
Group managers do not have the ability to perform site-wide configuration duties, but they do have full control of their own local group. This includes the ability to edit, delete, or roll back (i.e. to a prevous version) any content that resides within their group. The chapter titled Form & Manage Groups lays out the details for this role.
This covers the four layers of the archetypical support roles. Next, we delve into more details of the systems administration tasks at the lowest layer.