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
270 stars 273 forks source link

Personalization resolves tokens when editing a portlet in the UX (but shouldn't) #2479

Open cbeach47 opened 2 years ago

cbeach47 commented 2 years ago

Describe the bug When editing a portlet in the UX that contains personalization tokens, uPortal resolves the tokens instead of displaying the tokens for editing.

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. Navigate to Portal Administration, find the portlet, and click the edit icon.
  5. Note the title and description are personalized (should not be)
  6. Click Save and Configure
  7. Note the content is personalized (should not be)

Expected behavior Personalization should be disabled for editing portlets.

Screenshots image

image

It should be something like:

image

Platform:

jgribonvald commented 1 year ago

+1 It's actually an annoying problem