Role Based Menus for Client Window (Melissa)

From CS486wiki
Jump to navigationJump to search

Purpose

A major issue with Open Wonderland is the ability for users to edit the world. In order for Virtual BU to be fully distributable we would need to be able to eliminate unauthorized access to administrative level functionalities within the client interface.

Module Structure

The module is composed of only a client plugin.
The source code for this module will be located within the newmodule code package under
/trunk/my-wonderland-modules/unstable/newmodule/src/classes/org/jdesktop/wonderland/modules/newmodule/client

Compiling the Module

To compile the module, you must be within the modules top level directory. If using the current code package, this would be "newmodule." Once within this directory, follow this commands:
ant clean ---- This is important because if you do not first remove the pre-existing .jar files, the module will not be newly compiled and your changes not reflected.
ant ---- This will actually compile the module for you and package the .jar as well as create the dist folder. At this point, if you navigate to trunk/my-wonderland-modules/unstable/newmodule/dist you will find the .jar that you will need to install the module on the Wonderland Server Page, as described in the section Installing Module.

Troubleshooting

Client crashes after deploying module: This is generally caused by attempting to access incorrect menu instances or menu components, to resolve this try a different combination.

Problem with Other Modules and Plugins

This is an extremely primitive attempt at what actually needs to be done. A significant problem exists in that the module is only able to access menu items that are present prior to a users log in attempt. The module does not have access to any of the plugins that are loaded after a successful login.

Ideas for Improvement

Prior to graduation I had begun examining a way to create a plugin filter that would replace this modules code or depending on how it was implemented work along side it.
The Base Class for PluginFilter can be found here:
trunk/wonderland/core/src/classes/org/jdesktop/wonderland/client/login
Examples of use of a PluginFilter can be found in the same directory in LoginManager.

Installing Module

In order to install this module, authentication must be already configured for the wonderland distribution. Once this has been accomplished, the module, once compiled, can be installed using the Wonderland Server Administration page.