On Fri, Mar 25, 2011 at 14:47, Vincent Massol <[email protected]> wrote:
>
> On Mar 25, 2011, at 2:19 PM, Thomas Mortagne wrote:
>
>> Hi devs,
>>
>> I'm currently working on http://jira.xwiki.org/jira/browse/XWIKI-6103
>> which has two aspects:
>>
>> 1) stored the user as a DocumentReference in the context so that we
>> stop loosing the user all the time when switching databases
>> 2) provide a DocumentReference oriented API to deal with the current user
>>
>> For 2 I would like to propose some change in the way to see not logged
>> in user: I would like to make getUserReference return null when there
>> is no user logged in instead of some DocumentReference containing
>> <currentwiki>:XWiki.XWikiGuest. I understand that when dealing with
>> string "XWikiGuest" hack appear but null when there is actually no
>> context user makes much more sense at Java level IMO. Make safer to
>> distinguish between no logged in user and logged in user and you don't
>> really care what has been chosen as virtual name for not logged in
>> users at this level.
>
> +1for now.
>
> For the future we might want to consider that user references doesn't have to 
> match document references and that users may be stored anywhere (and not 
> always in the wiki).

Yes me too that's why it's only for the immediate DocumentReference
related API in XWikiContext, in the future we need a User object which
is already in the proposal on
http://dev.xwiki.org/xwiki/bin/view/Design/UsersModule

>
> I'd be for having a User object and have a getUser() that returns it rather 
> than manipulating references.
> Then we can have a GuestUser and do things like:
>
>  if (getUser().equals(User.GuestUser)) {....}
>
> More specifically IMO we should stop using code that knows that the user 
> reference is a reference to a document and instead go through a dedicated 
> User API. It's that User API implementation that will know (for ex) that 
> users are stored in wiki pages.
>
> For example instead of writing the following to know if a user exists:
>
> dab.exists(getUserReference())
>
> Instead write:
>
> UserManager.exists(String username)
>
> But I agree this is a change for a bit later.
>
> Thanks
> -Vincent
>
>> That will not impact anything which already exist and is just for code
>> that will use the new API of course but I think it deserve some debate
>> first since that's another way to see things and well it's an API.
>>
>> WDYT ?
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to