org.weborganic.bastille.pageseeder
Class GetMemberGroups

java.lang.Object
  extended by org.weborganic.bastille.pageseeder.GetMemberGroups
All Implemented Interfaces:
ContentGenerator

public final class GetMemberGroups
extends Object
implements ContentGenerator

A generator that returns the list of projects and groups a user is a member of.

Configuration

There is no configuration associated with this generator.

Parameters

No parameter required, however, the user does need to be logged in as a PageSeeder User.

Returned XML

This generator invokes a PageSeeder service and returns the content of this service verbatim.

The content is wrapped in:

<ps-service resource="/members/[member id]/projects"
         http-status="[status code]"
        content-type="application/xml">
   <!-- XML returned by PageSeeder Service -->
 </ps-service>

The PageSeeder service returns the projects and group in hierarchical form.

<projects for="[user email]">
   <!-- for each project -->
   <project id="[project id]" name="[name]"
   description="[description]"
         owner="[owner]" owner-directory="[owner dir]">
     <!-- for each group/sub-project -->
     <group id="[group id]" name="[name]"
   description="[description]"
        owner="[owner]" owner-directory="[owner dir]"/>
     <!-- more groups / sub-project ... -->
   </project>
   <!-- more projects ... -->
 </projects>

Error handling

If an error occurs while invoking the service, the XML will also include the error and message attributes. The HTTP status should correspond to an HTTP error code.

<ps-service resource="/members/[member id]/projects"
         http-status="[error]"
        content-type="application/xml"
               error="[error-type]"
             message="[error-message]">
 </ps-service>

Sample output

<content generator="org.weborganic.bastille.pageseeder.GetMemberGroups"
              name="classes" target="main" status="ok">
   <ps-service resource="/members/123/projects" http-status="200"
           content-type="application/xml">
     <projects for="No Email">
       <project id="5" name="Project X"
             owner="XYZ" owner-directory="project_x"
       description="This is Project X">
         <project id="6" name="project_x-2011"
         description="Project X in 2011 (Sub-project)"
               owner="XYZ" owner-directory="project_x-2011">
           <group id="7" name="project_x-2011-dev"
         description="Dev group on project X in 2011"
               owner="XYZ" owner-directory="project_x-2011"/>
         </project>
       </project>
     </projects>
   </ps-service>
 </content>

Usage

To use this generator in Berlioz (in /WEB-INF/config/services.xml):

<generator class="org.weborganic.bastille.pageseeder.GetMemberGroups"
            name="[name]" target="[target]"/>

Since:
0.6.2

Constructor Summary
GetMemberGroups()
           
 
Method Summary
 void process(ContentRequest req, XMLWriter xml)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GetMemberGroups

public GetMemberGroups()
Method Detail

process

public void process(ContentRequest req,
                    XMLWriter xml)
             throws BerliozException,
                    IOException
Specified by:
process in interface ContentGenerator
Throws:
BerliozException
IOException