Goal
The goal is to create a new Portal module, called Portal::Menu, providing these functionalities:
- Display an application list to the connected user, with possibility to hide applications he did not have access to.
- Provide a simple "change password" form that respect Password Policy LDAP draft.
XML applications list
DTD
The XML applications list must respect this DTD:
<!ELEMENT menu (category*) ><!ELEMENT category (application*, category*) >
<!ATTLIST category name CDATA #REQUIRED ><!ELEMENT application (name, uri?, description?, logo?, screenshot?, display?) >
<!ATTLIST application id ID #REQUIRED ><!ELEMENT name ( #PCDATA ) >
<!ELEMENT uri ( #PCDATA ) >
<!ELEMENT description ( #PCDATA ) >
<!ELEMENT logo ( #PCDATA ) >
<!ELEMENT screenshot ( #PCDATA ) >
<!ELEMENT display ( #PCDATA ) >
Parameters definition
- Category:
- Name of the category (required)
- Application:
- ID: unique id of the application inside XML file (required).
- Name: friendly name of the applications (required).
- URI: full URI of the application, with http(s)://, and path, page, etc.
- Description: description of the application.
- Logo: file name of the logo.
- Screenshot: file name of the screenshot.
- Display:
- "auto": display application only if the user has access to it.
- "on": always display.
- "off": never display.
The menu must contains at least one category. Each category can contain applications and categories. An application cannot contain a category. An application must be inside a category.
Sample XML file
Now you can configure your applications list, for example:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE menu SYSTEM "apps-list.dtd">
<menu>
<category name="Business">
<application id="aaa">
<name>AAA</name>
<uri>http://test.ow2.org/aaa</uri>
<description>AAA description</description>
<logo>aaa-logo.gif</logo>
<display>auto</display>
</application>
<application id="bbb">
<name>BBB</name>
<uri>http://test.ow2.org/bbb/login.do</uri>
<description>BBB description</description>
<logo>bbb-logo.gif</logo>
<display>on</display>
</application>
</category>
<category name="Technical">
<category name="Directories">
<application id="pla">
<name>phpLDAPAdmin</name>
<uri>http://phpldapadmin.ow2.org</uri>
<description>LDAP directory administration</description>
<logo>pla-logo.gif</logo>
<display>auto</display>
</application>
</category>
<category name="Application servers">
<application id="probe">
<name>Probe</name>
<uri>http://probe.ow2.org</uri>
<description>Tomcat stats</description>
<logo>probe-logo.gif</logo>
<display>auto</display>
</application>
</category>
</category>
</menu>