JBoss Portal 2.6.1-CR1

User Guide

Roy Russo

Release 2.6.1-CR1 "Ninja"

June 2007


Table of Contents

JBoss Portal - Overview
Feature List
Target Audience
Acknowledgements
1. JBoss Portal Basics
1.1. Portal Concepts - Illustrated
1.1.1. Portal Instances
1.1.2. Pages
1.1.3. Portlet Windows
1.2. Default Portal installation
1.2.1. Default Portal Pages
1.2.2. Logging in to the Portal
1.2.3. Home Page
1.2.3.1. Greetings Portlet
1.2.3.2. User Portlet
1.2.3.3. CMS Portlet
1.2.4. News Page
1.2.4.1. News Portlet
1.2.5. Weather Page
1.2.5.1. Weather Portlet
1.3. Personal Dashboard
1.3.1. Configuring your personal dashboard
1.3.1.1. Dashboard-wide operations
1.3.1.2. Managing Portlets on a page
1.4. Admin Portal
2. Administration - Portal Object Management (Dynamicity)
2.1. Introduction
2.2. Management Portlet
2.2.1. Managing Portal Objects
2.2.1.1. Portals operations
2.2.1.2. Looking at a portal instance information
2.2.1.3. Looking at a page configuration
2.2.1.4. Looking at windows of a given page
2.2.2. Managing Portlet Instances
2.2.3. Managing Portlet Definitions
2.2.4. Managing Dashboards
2.2.5. Wizard mode
3. Administration - Content Management System
3.1. Introduction
3.2. Actions
3.2.1. Viewing Directories
3.2.2. Viewing File Properties
3.2.3. Copying Files/Directories
3.2.4. Moving Files/Directories
3.2.5. Deleting Files/Directories
3.2.6. Creating Directories
3.2.7. Creating Text/HTML Files
3.2.8. Uploading Files
3.2.9. Uploading Archives
3.2.10. Exporting folders
3.2.11. Editing Text/HTML Files
3.2.12. Securing Resources
3.2.13. Content Publish/Approval Workflow
4. Administration - Users and Roles
4.1. Managing Users
4.1.1. Introduction
4.1.2. Actions
4.1.2.1. Searching for Users
4.1.2.2. Updating User Profiles
4.1.2.3. Updating User Roles
4.1.2.4. Creating Users
4.2. Managing Roles
4.2.1. Introduction
4.2.2. Actions
4.2.2.1. Creating Roles
4.2.2.2. Edit a role
4.2.2.3. Editing Role Members
4.2.2.4. Deleting Roles

JBoss Portal - Overview

Many IT organizations look to achieve a competitive advantage for the enterprise by improving business productivity and reducing costs. Today's top enterprises are realizing this goal by deploying enterprise portals within their IT infrastructure. Enterprise portals simplify access to information by providing a single source of interaction with corporate information. Although today's packaged portal frameworks help enterprises launch portals more quickly, only JBoss Portal can deliver the benefits of a zero-cost open source license combined with a flexible and scalable underlying platform.

JBoss Portal provides an open source and standards-based environment for hosting and serving a portal's Web interface, publishing and managing its content, and customizing its experience. It is entirely standards-based and supports the JSR-168 portlet specification, which allows you to easily plug-in standards-compliant portlets to meet your specific portal needs. JBoss Portal is available through the business-friendly LGPL open source license and is supported by Red Hat Middleware, LLC Professional Support and Consulting . JBoss support services are available to assist you in designing, developing, deploying, and ultimately managing your portal environment. JBoss Portal is currently developed by Red Hat Middleware, LLC developers and community contributors.

The JBoss Portal framework and architecture includes the portal container and supports a wide range of features including standard portlets, single sign-on, clustering and internationalization. Portal themes and layouts are configurable. Fine-grained security administration down to portlet permissions rounds out the security model. JBoss Portal includes a rich content management system and message board support.

JBoss Portal Resources:

The JBoss Portal team encourages you to use this guide to install and configure JBoss Portal. If you encounter any configuration issues or simply want to take part in our community, we would love to hear from you in our forums.

Feature List

The following list details features found in this document's related release. For a technical view of our features, view the Project Roadmap and Task List .

Technology and Architecture

  • JEMS: Leverages the power of JBoss Enterprise Middleware Services : JBoss Application Server, JBoss Cache, JGroups, and Hibernate.
  • DB Agnostic: Will work with any RDBMS supported by Hibernate
  • SSO/LDAP: Leverages Tomcat and JBoss single sign on (SSO) solutions. Identity mapping framework adaptable to the enterprise LDAP deployments.
  • JAAS Authentication: Custom authentication via JAAS login modules.
  • Cacheing: Utilizes render-view caching for improved performance.
  • Clusterable: Cluster support allows for portal state to be clustered for all portal instances.
  • Hot-Deployment: Leverages JBoss dynamic auto deployment features.
  • SAR Installer: Browser-based installer makes installation and initial configuration a breeze.

Supported Standards

  • Portlet Specification and API 1.0 (JSR-168)
  • Content Repository for Java Technology API (JSR-170)
  • Java Server Faces 1.2 (JSR-252)
  • Java Management Extension (JMX) 1.2
  • Web Services for Remote Portlets (WSRP) 1.0 See WSRP support in Portal for more details.
  • Full J2EE 1.4 compliance when used with JBoss AS

Portal and Portal Container

  • Multiple Portal Instances: Ability to have multiple Portal instances running inside of one Portal container.
  • IPC Inter-Portlet Communication API enables portlets to create links to other objects such as a page, portal or window .
  • Dynamicity The ability for administrators and users to create and destroy objects such as portlets, pages, portals, themes, and layouts at runtime.
  • Internationalization: Ability to use internationalization resource files for every portlet.
  • Pluggable services: Authentication performed by the servlet container and JAAS make it possible to swap the authentication scheme.
  • Page-based Architecture: Allows for the grouping/division of portlets on a per-page basis.
  • Existing Framework support: Portlets utilizing Struts, Spring MVC, Sun JSF-RI, AJAX, or MyFaces are supported.

Themes and Layouts

  • Easily swappable themes/layouts: New themes and layouts containing images can be deployed in WAR archives.
  • Flexible API: Theme and Layout API are designed to separate the business layer from the presentation layer.
  • Per-page layout strategy: Different layouts can be assigned to different pages.

User and Group Functionality

  • User registration/validation: Configurable registration parameters allow for user email validation before activation.
  • User login: Makes use of servlet container authentication.
  • Create/Edit Users: Ability for administrators to create/edit user profiles.
  • Create/Edit Roles: Ability for administrators create/edit roles.
  • Role Assignment: Ability for administrators to assign users to roles.

Permissions Management

  • Extendable permissions API: Allows custom portlets permissions based on role definition.
  • Administrative interface: Allows for permissions assignments to roles at any time for any deployed portlet, page, or portal instance.

Content Management System

  • JCR-compliant: The CMS is powered by Apache Jackrabbit, an open source implementation of the Java Content Repository API.
  • DB or Filesystem store support: Configurable content store to either a filesystem or RDBMS.
  • External Blob Support: Configurable content store allowing large blobs to reside on filesystem and content node references/properties to reside in RDBMS.
  • Versioning support: All content edited/created is autoversioned with a history of edits that can be viewed at any time.
  • Content Serving Search-engine-friendly URLS: http://yourdomain/portal/content/index.html (Does not apply to portlet actions.)
  • No long portal URLS: Serve binaries with simple urls. (http://domain/files/products.pdf)
  • Multiple HTML Portlet instance support: Allows for extra instances of static content from the CMS to be served under separate windows.
  • Directory Support: create, move, delete, copy, and upload entire directory trees.
  • File Functions: create, move, copy, upload, and delete files.
  • Embedded directory-browser: When copying, moving, deleting, or creating files, administrators can simply navigate the directory tree to find the collection they want to perform the action on.
  • Ease-of-use architecture: All actions to be performed on files and folder are one mouse-click away.
  • Full-featured HTML editor: HTML Editor contains WYSIWYG mode, preview functionality, and HTML source editting mode. HTML commands support tables, fonts, zooming, image and url linking, flash movie support, bulleted and numbered list, and dozens more.
  • Editor style-sheet support: WYSIWYG editor displays current Portal style-sheet, for easy choosing of classes.
  • Internationalization Support: Content can be attributed to a specific locale and then served to the user based on his/her browser settings.
  • Workflow Support: Basic submit for review and approval process.

Target Audience

This document is intended for those using JBoss Portal as End-Users. This is a "Where do I Click?" Guide.

For Portlet developers, Portal administrators, and those wishing to implement/extend the JBoss Portal framework, there is a Reference Guide available from our documentation page .

Acknowledgements

We would like to thank the developers that participate in the JBoss Portal project effort.

Specifically,

  • Antoine Herzog for his feedback, for writing Wikis and helping in the forums.
  • Mark Fernandes and Paul Tamaro from Novell, for their hard work in supplying the portal project with usable and attractive themes and layouts in the 2.4 version of JBoss Portal.
  • Martin Holzner from Novell, for his work on themes in the 2.4 version of JBoss Portal.
  • Kev "kevs3d" Roast for supplying us with two working portlets that integrate existing frameworks in to the portal: Sun JSF-RI and Spring MVC Portlet.
  • Swarn "sdhaliwal" Dhaliwal for supplying us with the Struts-Bridge, that will allow for existing struts applications to work with the Portal.
  • A few Red Hat employees, Remy Maucherat for Tomcat configuration, Magesh Kumar Bojan and Martin Putz always there to help our customers, Prabhat Jha for making sure that JBoss Portal runs great everywhere. Noel Rocher for his early feedback on JBoss Portal 2.6 and contributions. James Cobb for the Renaissance theme.
  • The JBoss Labs (http://www.JBoss.org) team for building a great infrastructure on top of JBoss Portal 2.6, providing very useful feedback and giving us the initial Drag and Drop implementation.
  • Everyone participating in the forums and Wiki in general.

Contributions of any kind are always welcome, you can contribute by providing ideas, filling bug reports, producing some code, designing a theme, writing some documentation, etc... If you think your name is missing from this page, please let us know.

Chapter 1. JBoss Portal Basics

Roy Russo

1.1. Portal Concepts - Illustrated

This section will introduce the reader to some basic portal concepts and terms, used within JBoss Portal and this document.

1.1.1. Portal Instances

JBoss Portal supports mutliple portal instances running within one container. A portal instance can be viewed as a 'bucket', containing portal objects such as, Portal Pages, Themes, Layouts, and Portlet Windows. It also manages the relationship between the user and the portal itself. The hierarchy of portal objects is depicted as follows:

A portal instance is reachable by the url format http://[domain]/[context]/portal/[portal_name] . In a default/local install, the default portal instance can be reach by http://localhost:8080/portal/portal/default .

Note

Consult your portal administrator for information on the available portal instances - some of which may have restricted logins, not found in others.

1.1.2. Pages

A Portal Page is an aggregator of Portlet Windows. It is generated by the portal, during the reponse phase. During this phase, the portal aggregates all of the HTML markup created the individual portlets, decorates them with window controls, and presents them to the user as a consolidated page.

A portal page is reachable by the url format http://[domain]/[context]/portal/[portal_name]/[page_name] . In a default/local install, the default page can be reach by http://localhost:8080/portal/portal/default/default . Likewise, the News Page in a default install can be reached by http://localhost:8080/portal/portal/default/News .

More, on navigating the portal pages and what they contain can be found in, Section 1.2, “Default Portal installation”

1.1.3. Portlet Windows

Portlet Windows are found on Portal Pages and contain the HTML markup for a specific portlet instance.

The diagram above, shows the default JBoss Portal page with certain window-related items highlited (in red). Lets look at these items:

  • Window Title: Defines the content and purpose of the individual portlet window.

  • Window Fragment: Generated HTML markup produced by the portlet on the server-side.

  • Window Controls: Window controls are divided into two categories and control different aspects of how the user can impact the generated markup. Each window control can be click to interact with the window in specific way. Window State icons control how much room the window will take on the page and how much markup will be shown. Portlet Mode icons, on the other hand, control the mode in which the portlet operate, thus impacting the type of generated markup. Note that not all portlets support all defined window states and/or portlet modes.

    • Window State icons and their meaning:

      • (Normal) - Normal window state, is the most common state for portlets (portlets in the above image are in the normal window state). All portlet windows occupy a similar amount of space on the page.

      • (Minimized) - The portlet is instructed to render minimal-to-no markup.

      • (Maximized) - The portlet window can occupy as much space of real estate on the page.

    • Portlet Modes and their meaning: Portlet modes are not always available (it depends on the portlet support for a given mode). Moreover, the Edit mode is only available to logged in users, as in this mode, the portlet preferences can be modified to be individually suited to a particular user's needs.

      • (Edit) - Only visible to logged-in users. Allows a logged-in user to customize the portlet's preferences.

      • (Return to View mode) - The button labeled 'Cancel' is only visible when a user is logged in and the portlet associated to the current window is in the Edit mode. This replaces the Edit button so the user understands that by clicking it she will leave the "Edit Mode" and reverting back to "View Mode". Portlets are by default in View mode.

      • (Help) - Allows a user to access helpful information about the portlet, if it provides it (which is recommended).

1.2. Default Portal installation

This section will take a quick look at the default Portal installation and the pages and portlets that come with it.

1.2.1. Default Portal Pages

Three pages are available in the default Portal: Home, News and Weather. You can access pages either by entering the page URL in your browser location bar, as shown in Section 1.1.2, “Pages”, or by clicking the tab associated to the page in the Navigation Tabs at the top of the page.

Note

Navigation tabs support sub-page navigation as well. By hovering over a tab with child Pages, it will display a flyout menu for those subpages:
There are no pages with subpages in the default Portal installation.

While you can use a Portal anonymously, it is much more interesting to do so while logged in, as you get the opportunity to customize the content you want to see or even create your own personal Dashboard, as explained in Section 1.3, “Personal Dashboard”.

1.2.2. Logging in to the Portal

Logging in to the portal is accomplished by clicking the Login link at the top-right of the portal page. Portal will present you with a logging screen where you can enter your credentials:

The default Portal installation defines two users: a regular user with no special privileges (login: user, password: user) and an administrator user who can alter Portal's content (login: admin, password: admin).

Once logged in, the top-right menu will change so you can then navigate to your personal dashboard or log out. If you have access to other portal instances, they will be shown here as well.

Note

If you login as an administrator, you will also be presented with a link to the Admin portal.

1.2.3. Home Page

1.2.3.1. Greetings Portlet

Displays hard-coded links to downloading JBoss Portal, downloading portlets from PortletSwap, and the live online JBoss Portal demo. It also contains default authentication information on loging in, as well as a link to the official Portal documentation.

1.2.3.2. User Portlet

Note

Administrators should view Section 4.1, “Managing Users” for managing the portal user base. Only user operations are covered in this section...

Once successfully logged in, the user will have additional functionality at his disposal, that is covered in the following sections.

The User Portlet allows a user to:

  • Create a new account

    Create a new account by clicking on the "You can create an account" link at the bottom of the portlet, when not logged. A User can then fill in the necessary information to create an account on the system:

  • Edit personal information

    A user has the ability to edit his personal information at any time by clicking on the "Edit your profile" link, when logged in.

1.2.3.3. CMS Portlet

Portal includes a basic Content Management System (CMS). Portal provides a CMS portlet which allows users to navigate the CMS content (static html, images, binary files, etc.).

Displaying content is done by the portal using a path mapper. For example, if we wanted to display a zip file, located in /default/foo/bar.zip, we would type in the URL http://localhost:8080/content/default/foo/bar.zip. Notice how the path to the content, is prefixed with the '/content' term. Although in this example we are describing binary content retrieval, the same is to be said for text/html files. Keep in mind, however, that binary files are displayed outside of the portal pages, but text/html are displayed inside the CMSPortlet Window.

Serving Logic: The CMS Portlet now serves content based on the user's locale setting. For example: if a user's locale is set to Spanish in his browser, and he requests URL: default/index.html , the CMSPortlet will first try and retrieve the Spanish version of that file. If a Spanish version is not found, it will then try and retrieve the default language version set for the CMSPortlet (set to English, by default).

Note

Administrators should read Chapter 3, Administration - Content Management System for managing the data in the CMS.

1.2.4. News Page

The News Page contains 2 portlets displaying news from common internet feeds. An open internet connection on the server-side is therefore required for them to operate. ;-)

1.2.4.1. News Portlet

The News Portlet retrieves an RSS news feed from a URL and displays it as HTML to the user.

Additionally, a logged-in user is able to modify her preference in RSS feed source by using the Portlet's Edit Mode (click ). Once the form is submitted, this property will be saved in the user's preference, so she will always see the same news source, when logged in.

Note

This portlet is capable of handling most RSS 1.0 and RSS 2.0 feeds.

1.2.5. Weather Page

This page contains a portlet displaying the weather forecast for a specific location.

1.2.5.1. Weather Portlet

The Weather Portlet retrieves an RSS weather feed, based on a key (commonly a US Postal Code), and displays it as HTML to the user.

Additionally, a logged-in user is able to modify her preference in location by using the Portlet's Edit Mode (click ). Any valid US Postal Code can be input here. Once the form is submitted, this property will be saved in the user's preference, so she will always see the same weather data for her location, when logged in.

Not in the United States? Follow these steps to configure the Weather portlet to display information for your area.

  1. Go to http://weather.yahoo.com/

  2. Enter your city name in the location field, found on the page:

  3. Find your location on the list under the form and click on it (Marseille, France, in this case):

  4. Copy the location digits from the address bar in your browser (FRXX0059 in this case):

  5. Paste these numbers in to the weather portlet edit form (FRXX0059 in this case):

    Hit submit...

1.3. Personal Dashboard

Once logged in, all users/administrations of the portal can access a personal dashboard by clicking the Dashboard link at the top-right of the portal page. Note how the links changed.

The personal dashboard allows users to customize their portal pages however they like, and all changes will be persisted... so the next time the user logs in to his dashboard, he will see the previous changes he made. While navigating any of the dashboard pages, a user will be able to drag and drop portlet windows to any location, if the administrator allows this functionality. Changes made in this fashion will also be persisted.

It is also possible to copy the content of a shared page to your dashboard so you can customize it to your liking. Just click the 'Copy to my dashboard' link at the top right of the page. This will clone the page and add it to your personal dashboard as a page with the same name.

1.3.1. Configuring your personal dashboard

You can configure your dashboard by using the top-right menu item labeled 'Configure dashboard':

1.3.1.1. Dashboard-wide operations

You can select a theme and layout for your dashboard by selecting from the available ones and then clicking on select in the Theme and Layout form.

You can also create new pages that will be added to your dashboard by simply entering the name of the new page in the Create New Page form at the top left of the screen.

Note

  • Page names must be unique.
  • Page names cannot be blank.

Upon creating a new page, the screen will refresh and allow a user to customize the new page.

You may delete dashboard pages at any time, by first selecting the page you want to delete using the popup menu at the top of the screen and then clicking the Delete this page button at the bottom of the screen. We will note that users are not able to delete the default dashboard page.

Warning

Deleted pages are NOT recoverable. This change is permanent!

1.3.1.2. Managing Portlets on a page

You can add, remove and reorder portlets on a dashboard page to adapt your environment to your liking. To do so, just select the page you want to modify using the page popup selector and use the portlet management form. We will not explain how to use it here as it is similar to the page layout functionality of the Admin portal, which we will look at in Section 2.2.1.3, “Looking at a page configuration”

1.4. Admin Portal

Note

You must be logged in as an administrator, or have proper priviledges to see this portal.

The Admin Portal's purpose is to allow an administrator to manage all aspects of the portal (Follow the links for in-depth reviews of these functions):

Chapter 2. Administration - Portal Object Management (Dynamicity)

2.1. Introduction

Note

Viewing the Management Portlet is accomplished by logging in as an admin (admin/admin) and navigating to the Section 1.4, “Admin Portal”.

The concept of dynamicity is that all portal objects are able to dynamically be modified at runtime, eliminating the need to struggle with large xml files, or restarting the application server for changes to take effect. In the scope of dynamicity, Portal objects are defined and can be altered as follows:

  • Portal Instances: Multiple Portal instances can be launched at any time, secured, and skinned.
  • Pages: Multiple pages, composed of windows, can coexist inside a portal instance, secured and each could have its own theme applied, if desired.
  • Portlets: Can be hot-deployed and will instantly register with the portal, appearing in the management portlet.
  • Portlet Instances: Instances can be created/destroyed. Their preference variables can be modified at runtime, instances assigned to windows and secured.
  • Windows: Windows can be secured, created/destroyed, and assigned to specific pages.
  • Themes/Layouts: Can be hot-deployed and will register with the portal, appearing the management portlet, allowing for dynamic customization of any of the above components.

Note

Many of the operations that can be done via the Management portlet are done in the context of the current user session. In order to see the changes on the affected pages, please log out and log back in.

2.2. Management Portlet

Note

For the remainder of this chapter, the term object will be used to mean Portal, Page, Portlet, or Window indifferently.

The management portlet provides a two-part interface: tabs, at the top, corresponding to the different sections that can be managed; and the main area under it, displaying the current information for the selected tab.

The tabs are:

  • Portal Objects gathering operations pertaining to managing portal objects (portal instances, pages, windows and their respective configuration information). This is the most complex part of the interface.
  • Portlet Instances giving access to all the Portlet instances that have been configured.
  • Portlet Definitions giving access to the currently available portlet providers as well as the Portlets that each provider publishes.
  • Dashboards allowing administrators to configure how Dashboards should behave.

We will look at each of these tabs and their functionality in the following sections.

2.2.1. Managing Portal Objects

2.2.1.1. Portals operations

The Portal Objects brings the administrator to a page showing the list of the available portal instances defined for this Portal server. Several points are of note. First, a navigation indicator or "breadcrumbs" is located right beneath the tabs. This provides context as to where in the hierarchy of portal objects the current screen is located as some of the screens can be found at several levels of the hierarchy. If you are lost, take a look at the breadcrumbs for context! When you first click on the Portal Objects tab, the context is the list of portals as shown in the picture above.

A link to access server-wide portal properties is located right beneath the breadcrumbs. This allows the administrator to set server-wide property and configure how errors should be handled:

Please refer to the Error handling chapter of the Reference Guide for more information on this point.

A form allowing administrator to create new portal instances is located beneath the Properties link. Enter the name of the new portal (which, of course, should be different from any of the already existing one) and click on Add portal and the portal instances list will be refreshed to display the newly created portal instance.

The last element of the top level of the Portal Objects tab is a table listing all the available portal instances along with possible actions on them. Clicking on the portal name will display a screen showing the information for this given portal instance, thus drilling down the hierarchy of available portal objects.

In the next sections we will demonstrate the functionality of the management portlet by drilling progressively further down this hiearchy to look at the default portal, one of its pages, show how to configure content on a page and finally, look at a specific window information.

2.2.1.2. Looking at a portal instance information

If you click on the default portal in the list of available portal instances on the top-level Portal Objects page, you'll be taken to a page showing the information for the portal instance named "default", as shown below:

Note the breadcrumbs at the top of the screen indicating where in the hierachy you currently are. In this case, we are looking at the default portal.

Links to more information and operations that affect this portal instance are located beneath the breadcrumbs. We will look at them in turn later. We won't look at the Destroy operation, which as its name implies, allows an administrator to destroy the current portal instance (after a confirmation screen, as the operation is NOT undoable). Note that these links mirror the links that were available in the portal instances list on the top level page.

It is possible to create new pages using the page creation form located under the portal-wide operation links. Enter the new page name and click on Add and the new page will appear in the pages list, ready to be configured.

It is also possible to designate one of the portal page as the default page that users are directed to when they first access the portal instance. This is done by selecting the page via the page selection drop-down menu and then click on Update.

Finally, a table displaying the list of available pages for this portal instance is located at the bottom of this screen. The first column shows the page name, which you can click to drill down the hierachy and display the information specific to that particular page. The second column, on the other hand, provides a list of action links on the associated page. These links will be also appearing on individual page screens, as we shall see, just like portal action links appearing in the portal instances list also appeared on individual portal pages.

Let's now look at the default portal's Security information screen. This can be accessed by clicking the Security action link on the portal page. Here, an administrator can configure the default policy for security on objects for this portal instance:

Please refer to the Security chapter of the Reference Guide for more information about how to secure portal objects.

The Properties action link displays the currently configured properties for this portal instance and allows you to modify them, as well as configure the error handling strategy:

The Theme action link displays a screen where the administrator can configure theme, layout and render set for this portal instance:

Please refer to the Layouts and Themes chapter of the Reference Guide for more information about themes and layouts.

Now that we have looked at portal level information, let's drill down the hierachy again and look at a page, more precisely the default page, by clicking its name in the pages list.

2.2.1.3. Looking at a page configuration

The layout of this screen should start feeling familiar. The information for a page looks a lot like the information for a portal instance. Note the breadcrumbs indicating that you are indeed looking at a page. Again, we find the action links at the top of the page, mirroring the ones that were available for each page in the pages list of the portal instance screen. Once again, you can configure the page's security, theme and properties. You can also destroy it if so desired.

Similarly to other screens in the portal objects hierarchy, a page configuration screen also provides a list of all windows for that page. This list contains two columns: the first one contains the name of the window, while the second one provides a list of action links for that specific window. As usual, clicking on a window name will display information about that window.

Just like a portal instance can contain several pages, a page can contain several subpages. As such a page defines means to create subpages and set which subpage to display when a user is first directed to the page. These operations work similarly to the same operations at the portal instance level.

You can also rename the page if desired:

Of specific interest, though, is the Page Layout link. This is where you need to go to configure which portlet instance will be displayed in which window on which region on the page. Let's take a look at this screen and how it works:

This screen is structured in two parts, flowing from left to right, following the natural process involved in displaying content on a page. First, you need to identify which content you want to display: this is what the Content Definition section is for. Then, you need to figure out where on the page should this content be displayed, hence the Page Layout section.

Let's add a window named test displaying the content of the portlet instance named NewsPortletInstance to the center region, beneath the already existing CMSWindow. First, we need to enter our new window name in the Window name field and select the portlet content type from the drop down menu:

Once this is done, we can select the portlet instance by clicking its name in the instances list:

Note that this displays some information about the portlet instance. Finally, we can add our window to the center region of the page by clicking on Add button located left to the windows list for the region:

Note that we could move the window up or down in the region by selecting it in the list and using the button to the right of the list, or even destroy it if desired.

We can repeat this process to add content of different types. Let's add a window using a Google widget displaying the IP address of the user. First, give a name to your window (we'll use "google" here) and select widget/google from the content type drop-down menu:

Note how the instances list is replaced by a list of Google widgets. The widget we want to use is located in the Technology category, so select it from the category drop-down menu:

Press Search Gadgets and the widget list will be refreshed. The widget we want is MyIP:

You can now add the new window to the desired region.

Let's repeat this process again, this time with content from CMS. Enter a new window name (we'll use "cms" here) and select cms from the content type drop-down menu:

Once again, the instances list was replaced by a directory listing showing the available content roots. Click on default and select project.html:

You can now add the window to the desired region.

We've added three new windows to the default page using different content types. We added a window displaying the content of a portlet (displaying the content of an RSS feed in this case). Another one displaying a Google widget and yet another one some CMS-issued content. We decided to remove the existing CMSWindow, add the cms window below the test one in the center region, while the window showing the Google widget was added to the left region, below the existing content:

If all went well, logging out of the Admin portal, you should see (IP address blurred to protect the guilty ^_^):

You can read more about Content Integration in the Reference Guide. More details on how to setup content roots in CMS are available in Section 3.1, “Introduction”.

2.2.1.4. Looking at windows of a given page

Window operations are similar to the same operations at other level of the hierachy of portal objects. The only information displayed when a window name is clicked in the windows list of a portal page information screen is information about the content, similar to the one that is displayed in the page layout screen. Thus, for the google window that we created in the previous section:

Note, once again, the breadcrumbs... :)

2.2.2. Managing Portlet Instances

The Portlet Instances tab brings the administrator to the list of instances created in the running portal. On this page, the user can either modify the security constraints for the portlet (to grant access only to certain roles), destoy an instance or override the portlet definition preferences for a specific instance if there is any overridable preference.

2.2.3. Managing Portlet Definitions

The Portlet Definitions tab brings the administrator to the list of portlet definitions. The id represent the portlet definition identifier as used in the XML descriptor. A more human readable name is following in the next column. For each portlet accessed through WSRP, the remote checkbox is selected. A remotable checkbox is used to show which portlet are exposed through WSRP to other consumers.

The Info action, will display the portlet definition title, description, supported languages and keywords. The Preferences action is used to edit preferences at the portlet definition level as explained in the JSR-168 specification.

Portlet definitions can be made available by different providers. You can select the provider you want to browse by selecting it in the drop-down menu and clicking Change. By default, two providers are available:

  • local: this is Portal's portlet container. Any successfully deployed portlet will appear in the list of available portlet definitions for this provider.
  • self: this is Portal's default WSRP consumer configured to consume portlets published by Portal's own WSRP producer. This doesn't have much practical interest apart from allowing a quick test of the WSRP functionality of Portal.

More providers can be added to this list. In particular, any active, properly configured WSRP consumer will also appear in the drop-down menu. Please refer to the Consuming remote WSRP portlets in JBoss Portal chapter of the Reference Guide for more information on this topic.

2.2.4. Managing Dashboards

The Dashboards tab allows the administrator to configure parameters for all the user dashboards. It also allows her to configure the error pages and theme properties as for the other portal objects.

2.2.5. Wizard mode

The wizard mode is a fast and easy way to create a new window on a page backed by a portlet instance. The user just needs to define which portlet definition to use, where should the instance be located (portal / page / location on the page) and the wizard will automatically create a new instance of the portlet, create a window for it and add that window to the specified region on the page defined by the user.

Chapter 3. Administration - Content Management System

Roy Russo

3.1. Introduction

The CMSAdmin Portlet allows control over the content management system.

Viewing the CMSAdmin Portlet is accomplished by logging in as an admin (admin/admin) and navigating to the admin portal and then the CMS Page tab.

You should then be presented with a page that is similar to this:

3.2. Actions

This section describes common actions an administrator can perform from within the AdminCMS Portlet. All actions are available using the flyout menu. Note that the Pending Items action is only available if the workflow mechanism has been activated.

3.2.1. Viewing Directories

A user can list directory contents by either clicking on the folder name or selecting "view" from the Action dropdown and clicking "go".

3.2.2. Viewing File Properties

Clicking on the "Name" of a file brings up the File Properties page.

The File Properties window displays all the possible actions available to perform on a file.

Version and Locale Information are also contained on this screen. Note that any version labeled with the is the current "live" version shown to users.

3.2.3. Copying Files/Directories

Clicking on the "Copy" action, displays the copy file/directory dialog window.

The copy resource window allows a user to copy files to any folder on the system, as well as copy whole directory trees to any directory on the system. A user can select which destination directory to copy the resource to, by using the directory browser. Clicking the icon expands the directory tree. Clicking on the name of the directory within the tree, sets it as the destination directory for the copied resource.

3.2.4. Moving Files/Directories

Clicking on the "Move" action, displays the move file/directory dialog window.

The move resource window allows a user to move files to any folder on the system, as well as move whole directory trees to any directory on the system. A user can select which destination directory to move the resource to, by using the directory browser. Clicking the icon expands the directory tree. Clicking on the name of the directory within the tree, sets it as the destination directory for the moved resource.

3.2.5. Deleting Files/Directories

Clicking on the "Delete" action, displays the delete file/directory confirmation window.

The delete resource confirmation window allows a user to delete a file, or a directory on the system. Note that deleting a directory, will delete the entire tree, so all directories under the deleted one, will also be deleted.

Warning

Currently, there is no way to retrieve deleted files/directories! Deleting a file or directory is permanent!

3.2.6. Creating Directories

Clicking on the "Create Folder" action, displays the create directory dialog window.

The create directory resource window allows a user to create a directory under chosen path. On this window, a user can specify a name for the new empty directory and assign it a description.

3.2.7. Creating Text/HTML Files

Clicking on the "Create File" action, displays the create file dialog window with the embedded WYSIWYG editor and directory browser.

The create file window allows a user to create a text or HTML file using the embedded WYSIWYG HTML editor. The editor is a fully-functional HTML editor with a myriad of HTML functions. It also includes a preview button and a source view button.

An in-depth walk-through of the editor is beyond the scope of this document. However, the editor does contain help pages within it, that can be accessed by clicking the icon.

Note

It is important to note here that when creating links to images or other resources within the system, as user must use the relative file path to that resource. ie: images/hello.gif. Keep in mind at all times that the document base is http://localhost/portal/ by default!

Additionally, a user can set a title for the file that will be used in the portlet title bar, and a language for the file, used in serving localized content.

3.2.8. Uploading Files

Clicking on the "Upload File" action, displays the upload file dialog window.

The upload file window allows a user to upload files to any directory on the system. The upload process will work on files up to 1GB and of all types. A user can select which destination directory to upload the resource to, by using the directory browser. Clicking the icon expands the directory tree. Clicking on the name of the directory within the tree, sets it as the destination directory for the uploaded resource. Additionally, a user can set a title for the file that will be used in the portlet title bar, and a language for the file, used in serving localized content.

3.2.9. Uploading Archives

Clicking on the "Upload Archive" action, displays the upload archive dialog window.

The upload archive window allows a user to upload archives to any directory on the system. The system will then explode the archive, create versions, and place all the files in the repository. A user can select which destination directory to upload the resource to, by using the directory browser. Clicking the icon expands the directory tree. Clicking on the name of the directory within the tree, sets it as the destination directory for the uploaded resource. Additionally, a user can set a language for the archive files, used in serving localized content.

3.2.10. Exporting folders

Clicking on the "Export Folder" action, displays the export archive dialog window.

The export folder window allows a user to export entire directory structures as zip files. The system will aggregate all contents of a specific directory, and present to the user to download it. A user can select which source directory to export the resources from, by using the directory browser. Clicking the icon expands the directory tree. Clicking on the name of the directory within the tree, sets it as the source directory for the export resource. Additionally, a user can set a language for the files to be exported.

Note

Version information is not exported. Only versions labeled "Live" are exported!

3.2.11. Editing Text/HTML Files

Clicking on the "text/html"link, displays the edit file dialog window with the embedded WYSIWYG editor and directory browser.

The edit file window allows a user to edit a text or HTML file using the embedded WYSIWYG HTML editor. The editor is a fully-functional HTML editor with a myriad of HTML functions. It also includes a preview button and a source view button.

A user may specify at this point if he would like to make the new edit "live", or available in production. Additionally, a user can set a title for the file that will be used as the portlet window title.

3.2.12. Securing Resources

Administrators are able to apply permissions settings to any folder or file in the CMS. These permissions on a specific node, can be applied on a per-Role and/or per-User basis.

The security dialogue is accessed by navigating to the node you want to secure and selecting Secure .

You should then be presented with a screen that allows you to assign read, write, and manage priviledges on the selected node for selected Roles or specific Users.

There are three main security settings for every node in the CMS.

  • Read Permissions: Assigned roles/users can view the resource.
  • Write Permissions: Assigned roles/users are able to edit the resource, or create nodes within it (as is the case for folders)
  • Manage Permissions: These permissions include: copy, move, delete, and exporting.

Adminsitrating and assigning permissions on a selected node is as simple as selecting which Roles and/or Users you want to allow to have a specific permission.

3.2.13. Content Publish/Approval Workflow

When the Publish/Approval Workflow service is activated on the CMS, any requests for publishing new content or making updates to existing content requires an Approval process before going "Live". You can specify a list of Portal Roles that can act as Approvers who can authorize/deny the publishing of content in the CMS.

When a content is created in the CMS, the screen should show an Pending Queue of Approvals for that particular content as shown below in the screen. The content waiting in this queue is not accessible for "Live" usage.

The user's who are designated as Approvers can view the CMS pending queue by clicking the Pending Items link in the flyout menu. The Pending Queue screen is as follows:

Chapter 4. Administration - Users and Roles

Roy Russo

4.1. Managing Users

4.1.1. Introduction

This section covers the administrator functions made available by the UserPortlet. For end-user operation, see: Section 1.2.3.2, “User Portlet” . Administrative functions are available once you are logged in with the proper credentials (admin/admin), then going to the Section 1.4, “Admin Portal” and then the Members Page tab.

4.1.2. Actions

All administrative functions are available after clicking on the ' List of all users ' link.

4.1.2.1. Searching for Users

Typing a partial username in the form text field, allows you to search for usernames matching that criteria.

4.1.2.2. Updating User Profiles

Clicking on the Profile link on the search page will allow you to edit a user's profile data, and even reset his password.

4.1.2.3. Updating User Roles

Clicking on the Roles link in the search page allows you to modify the roles the specific user belongs to.

4.1.2.4. Creating Users

Clicking on the Create User Account link on the main UserPortlet view, allows administrators to instantly create new users.

4.2. Managing Roles

4.2.1. Introduction

The role portlet is dedicated to create and edit roles. A role will be used to grant different permission level to different portlets, pages, or portal instances. A user can have several roles.

The RolePortlet is accessible once logged in as an administrator (admin/admin) from the Admin Page

4.2.2. Actions

4.2.2.1. Creating Roles

Creating new roles, is accomplished by first clicking on the Create New Role link in the RolePortlet.

To create a new role, you need to define a short name that will be used for reference, and a display name for displaying to the user, for example admin would be a good name for the display name Administrators , changing the display name will not affect the security rules.

4.2.2.2. Edit a role

Editting roles, is accomplished by first clicking the name of the role you want to edit in the RolePortlet.

While editing a role, you just need to pick an exising role then change the display name. Additionally, you can delete existing roles from this screen.

4.2.2.3. Editing Role Members

Editting role members, is accomplished by first clicking the Members link in the RolePortlet for the role you would like to modify.

Allows for an administrator to search and modify the members' assigned roles.

4.2.2.4. Deleting Roles

Deleting roles is accomplished by clicking the Delete link in the RolePortlet for the role you would like to remove.