That is great work Tim! Would you be willing to post a trimmed down data.xml & dlm config? I'd like to get something like this in as the default for uP3 to move people away from the template user practices and to defining layouts via DLM fragments. Giving them a nice starting point out of the box seems like a great way to approach that.
-Eric
Timothy Carroll wrote:
> thanks for all the help. i have everything working the way i'd like now.
>
> from what i can tell, you need a minimum of two template users defined:
> 1. guest: used for unauthenticated users
> 2. other: used for authenticated users
>
> i was trying to get away with one, and apparently that was not okay.
>
> i set up both of these user layouts with only a root node, and then
> used dlm.xml to define which fragments should be merged in.
>
>
>
> Timothy Carroll wrote:
>> interesting. my guest user name is set to 'guest', and the user is
>> not authenticated. however, i am still not getting the frg-guest.
>>
>> what is more interesting, the log seems to be showing everything
>> being evaluated properly. the frg-guest and frg-welcome fragments
>> return isApplicable=true, but they are not showing up.
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - >>>> calling frg-guest.isApplicable( guest )
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - ---- frg-guest.isApplicable( guest )=true
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - >>>> calling frg-welcome.isApplicable( guest )
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - ---- frg-welcome.isApplicable( guest )=true
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - >>>> calling frg-i-start.isApplicable( guest )
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> >>>> calling
>> [EMAIL PROTECTED],
>> op=OR].isApplicable()
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> >>>> calling
>> [EMAIL PROTECTED],
>> op=NOT].isApplicable()
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> ---- [EMAIL PROTECTED],
>> op=NOT].isApplicable()=false
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> ---- [EMAIL PROTECTED],
>> op=OR].isApplicable()=false
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - ---- frg-i-start.isApplicable( guest )=false
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - >>>> calling frg-uic-connect.isApplicable( guest )
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> >>>> calling
>> [EMAIL PROTECTED],
>> op=OR].isApplicable()
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> >>>> calling
>> [EMAIL PROTECTED],
>> op=NOT].isApplicable()
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> ---- [EMAIL PROTECTED],
>> op=NOT].isApplicable()=false
>> DEBUG [http-8084-Processor24] providers.Paren.[] Oct/17 18:49:05 -
>> ---- [EMAIL PROTECTED],
>> op=OR].isApplicable()=false
>> INFO [http-8084-Processor24] dlm.FragmentDefinition.[] Oct/17
>> 18:49:05 - ---- frg-uic-connect.isApplicable( guest )=false
>>
>>
>>
>>
>> Drew Wills wrote:
>>> Tim,
>>>
>>> Here's the code that decides whether someone is a guest or not:
>>>
>>> *****
>>> public boolean isGuest() {
>>> boolean isGuest = false;
>>> String userName = (String)getAttribute(IPerson.USERNAME);
>>> if (userName.equals(PersonFactory.GUEST_USERNAME) &&
>>> !m_securityContext.isAuthenticated()) {
>>> isGuest = true;
>>> }
>>> return isGuest;
>>> }
>>> *****
>>>
>>> So -- it looks like the user's username must match the
>>> GUEST_USERNAME (can be specified in portal.properties, default is
>>> 'guest'), and the user must not be authenticated.
>>>
>>> Which gives rise to an irony: if you log in as 'guest' (perhaps to
>>> change the layout), you won't see any guest fragments.
>>>
>>> drew wills
>>>
>>>
>>> Timothy Carroll wrote:
>>>> thanks guys. i think i have figured out how bare-bones i can go
>>>> with the empty user; however, i cannot seem to get the
>>>> GuestUserEvaluatorFactory to resolve and display my frg-guest dlm
>>>> fragment
>>>>
>>>> <dlm:fragment name='frg-guest' ownerID='guest-lo' precedence='10'>
>>>> <dlm:audience
>>>> evaluatorFactory='org.jasig.portal.layout.dlm.providers.GuestUserEvaluatorFactory'/>
>>>>
>>>>
>>>> </dlm:fragment>
>>>>
>>>> odd, all the others work fine.
>>>>
>>>>
>>>> Jason Shao wrote:
>>>>> On Oct 17, 2007, at 4:05 AM, Drew Wills wrote:
>>>>>
>>>>>> Timothy Carroll wrote:
>>>>>>> when you guys talk about an empty guest user,
>>>>>>> how "empty" is it actually... does it just have a root layout
>>>>>>> node, or
>>>>>>> does it need more? less?
>>>>>>
>>>>>> I believe you always need to include a header and a footer.
>>>>>> Here's a
>>>>>> document that contains an example.
>>>>>>
>>>>>> You may or may not need more channels in the header & footer.
>>>>>
>>>>> I think Mark had mentioned in 2.6 DLM should be able to call
>>>>> transient channels from the theme xform using something that
>>>>> looked like <channel fname="login"/> -- and that this moves us
>>>>> further in the direction of getting rid of the special hidden
>>>>> folders.
>>>>>
>>>>> Jason
>>>>>
>>>>> --
>>>>>
>>>>> Jason Shao
>>>>> Application Developer
>>>>> Rutgers University, Office of Instructional & Research Technology
>>>>> v. 732-445-8726 | f. 732-445-5539 | [EMAIL PROTECTED] |
>>>>> http://jay.shao.org
>>>>>
>>>>>
>>>>>
>>>>
>>>
>
smime.p7s
Description: S/MIME Cryptographic Signature
