Uploaded image for project: 'Jetspeed 2 (Retired)'
  1. Jetspeed 2 (Retired)
  2. JS2-509

Portlet Preferences are not stored on a user by user basis

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0-FINAL
    • 2.1-dev, 2.1
    • None
    • Tomcat 5.5, JDK 1.5, Jetspeed 2.0

    Description

      Portlet Preferences are not stored on a user by user basis.

      Looking in the database, it looks as though the preferences are being associated with the fragment ID for the portlet of the psml page.

      I am pretty sure that the intention of the portlet spec is to enable the storing of preferences on a user by user basis. But apparently this is not possible in jetspeed unless the user creates a new portal page?

      The data I see in the DB seems to support this:

      I login as user A, and I have a portlet preference for one of my report portlets called reportTimeZone. By default is set to US/Eastern.

      User A edits his portlet preferences and sets the reportTimeZone to be US/Pacific.

      Looking in the prefs_property_value table, can see the newly created value. It has node ID 2875 and value US/Pacific. The property name is 0, I assume that this is the index in the array if it were multi-valued.

      I then look in the prefs_node table for a row with node_id=2875. The row is present and the full path of the node is:

      /portlet_entity/reports-3/no-principal/preferences/reportTimeZone/values

      Note that reports-3 is the fragment ID for the portlet fragment in the psml page.

      However, instead of 'no-principal', I would have expected to see the user name of user A.

      So now I log in as user B and go to edit my portlet preferences and the value of the reportTimeZone preference is set to US/Pacific, not the default US/Eastern I would have expected.

      So I then, as user B, set the reportTimeZone to US/Central and update my preferences.

      Sure enough, it overwrites the value in the prefs_property_value table to US/Central.

      So, in order to get the behaviour I need, I would have to generate portal pages for each user and vary the id of the portlet fragment? This does not seem like a good solution to me.

      Further, in my environment, users are not permitted to create their own pages and customize them. I am simply providing a form in the doEdit method of my portlet to allow users to customize the behaviour of the portlet.

      So, in my environment, imagine I had a weather portlet on a portal page. If someone sets their preferred city to be Bangkok, then all users will get weather for Bangkok!

      This does not seem right to me...

      Attachments

        Activity

          People

            Unassigned Unassigned
            aaronmevans Aaron Evans
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: