uPortal-Project / uPortal

Enterprise open source portal built by and for the higher education community.
https://www.apereo.org/projects/uportal
Apache License 2.0
272 stars 273 forks source link

Portlet preference is not personalized #2477

Closed cbeach47 closed 2 years ago

cbeach47 commented 2 years ago

Describe the bug render.uP is not personalizing the tokens in the portlet-preference blocks.

To Reproduce Steps to reproduce the behavior:

  1. Enable personalization in uportal.properties:
    org.apereo.portal.utils.web.PersonalizationFilter.enable=true
    org.apereo.portal.utils.personalize.PersonalizerImpl.prefix=beachy.
    org.apereo.portal.utils.personalize.PersonalizerImpl.pattern=@up@(.*?)@up@
  2. Import the following as a portlet definition:
    <portlet-definition xmlns="https://source.jasig.org/schemas/uportal/io/portlet-definition" xmlns:ns2="https://source.jasig.org/schemas/uportal" xmlns:ns3="https://source.jasig.org/schemas/uportal/io/stylesheet-descriptor" xmlns:ns4="https://source.jasig.org/schemas/uportal/io/permission-owner" xmlns:ns5="https://source.jasig.org/schemas/uportal/io/subscribed-fragment" xmlns:ns6="https://source.jasig.org/schemas/uportal/io/event-aggregation" xmlns:ns7="https://source.jasig.org/schemas/uportal/io/user" xmlns:ns8="https://source.jasig.org/schemas/uportal/io/portlet-type" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="4.0" xsi:schemaLocation="https://source.jasig.org/schemas/uportal/io/portlet-definition https://source.jasig.org/schemas/uportal/io/portlet-definition/portlet-definition-4.0.xsd">
    <title>Beachy Personalization Test in portlet-prefs  - @up@beachy.user.login.id@up@</title>
    <name>personalization-test-portlet-prefs</name>
    <fname>personalization-test-portlet-prefs</fname>
    <desc>A portlet to test personalization in prefs - @up@beachy.user.login.id@up@</desc>
    <type>Advanced CMS</type>
    <timeout>5000</timeout>
    <portlet-descriptor>
        <ns2:webAppName>/SimpleContentPortlet</ns2:webAppName>
        <ns2:portletName>cms</ns2:portletName>
    </portlet-descriptor>
    <group>Authenticated Users</group>
    <parameter>
        <name>blockImpersonation</name>
        <value>false</value>
    </parameter>
    <parameter>
        <name>chromeStyle</name>
        <value>no-chrome</value>
    </parameter>
    <parameter>
        <name>disableDynamicTitle</name>
        <value>true</value>
    </parameter>
    <parameter>
        <name>editable</name>
        <value>false</value>
    </parameter>
    <parameter>
        <name>hasAbout</name>
        <value>false</value>
    </parameter>
    <parameter>
        <name>hasHelp</name>
        <value>false</value>
    </parameter>
    <parameter>
        <name>hideFromMobile</name>
        <value>false</value>
    </parameter>
    <portlet-preference>
        <name>content</name>
        <readOnly>false</readOnly>
        <value>
            <![CDATA[
                <h2>Personalization Test</h2>
                <h4>@up@beachy.user.login.id@up@</h4>
            ]]>
        </value>
    </portlet-preference>
    </portlet-definition>
  3. Login to the portal
  4. Add the imported portlet to your layout
  5. Note the title and description are personalized (expected), but the content is not (but should be)

Expected behavior tokens are personalized

Platform:

cbeach47 commented 2 years ago

The fix is now merged into master.