Jetspeed 2
  1. Jetspeed 2
  2. JS2-509

Portlet Preferences are not stored on a user by user basis

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-FINAL
    • Fix Version/s: 2.1-dev, 2.1
    • Labels:
      None
    • Environment:
      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...

        Activity

          People

          • Assignee:
            Unassigned
            Reporter:
            Aaron Evans
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development