Why the dummy? it should work with 2 contexts just as well.
Maurice
On Wed, Jun 11, 2008 at 4:11 PM, Andrea Jahn <[EMAIL PROTECTED]> wrote:
> Yes, I have different permissions for the locations. The user can have
> different
> roles for each location and each role has different permissions.
>
> Now I made a dummy LoginContext class and for changing the LoginContext
> I first add the dummy LoginContext, then delete the old LoginContext,
> then add the new LoginContext and after that I delete the dummy
> LoginContext.
>
> This works, thank you
>
> I think I could add the DummyLoginContext, when the user is logging in.
> When the user is changing the location selection, I only would have to
> logoff for the
> old ApplLoginContext and login again for the new ApplLoginContext.
>
> Andrea
>
>
> // dummy
> DummyLoginContext context2 = new DummyLoginContext(loggedInPerson);
> ((WaspSession)session).login(context2);
>
> // destroy the old context
> ((WaspSession)session).logoff(new ApplLoginContext());
>
> // add new context to session
> ApplLoginContext context = new ApplLoginContext(loggedInPerson);
> ((WaspSession)session).login(context);
>
> // destroy the dummy context
> ((WaspSession)session).logoff(new DummyLoginContext());
>
> -------
> 2008/6/11, Maurice Marrink <[EMAIL PROTECTED]>:
>>
>> Didn't we use custom actions for those locations?
>> A user could have global or location permissions, right?
>>
>> In that case the permissions would be the same for each location. The
>> only difference would be in the fact that the user has or does not
>> have a location. which is checked by your securitychecks.
>>
>> So i don't really see why you would require a new set of permissions.
>>
>> However if you must :)
>> By default a logincontext blocks additional logins, but you can change
>> that (constructor flag), you can then login again using another
>> logincontext. Your user now has the combined permissions of both
>> logincontexts, which in your case is not what you want but you can do
>> a logoff of the first logincontext. As long as there is a logincontext
>> active the session won't be destroyed.
>>
>> Maurice
>>
>> On Wed, Jun 11, 2008 at 12:33 PM, Andrea Jahn
>> <[EMAIL PROTECTED]> wrote:
>> > Hi,
>> >
>> > in our application the user's rights depend on the location (Munich,
>> > Berlin,...).
>> > There's a drop down choice, where the user can change the location, on
>> which
>> > he wants to work.
>> >
>> > So, when he changes the location, also the principals (permissions) have
>> to
>> > be changed.
>> >
>> > How can I remove the old principals and add new ones within the same
>> session
>> > ?
>> >
>> > Is it possible to remove the LoginContext from the session and add a new
>> one
>> > ?
>> >
>> > Thanks
>> > Andrea
>> >
>> >
>> >
>> > ApplLoginContext:
>> > -----------------------
>> >
>> > public class ApplLoginContext extends LoginContext
>> > {
>> > ...
>> > public final Subject login() throws LoginException
>> > {
>> > ...
>> > DefaultSubject subject = new DefaultSubject ();
>> > ...
>> > // grant principals
>> > subject.addPrincipal(new SimplePrincipal("TEST_ADMIN"));
>> >
>> > return subject;
>> > }
>> > }
>> >
>> > Login.java:
>> > --------------
>> >
>> > public class Login extends AppBasePage
>> > {
>> > ...
>> > public class LoginForm extends Form
>> > {
>> > ...
>> > public void onSubmit()
>> > {
>> > ...
>> > // add principals of logged in user to the context
>> > ApplLoginContext context = new ApplLoginContext(loggedInPerson);
>> > try
>> > {
>> > ((WaspSession)getSession()).login(context);
>> > }
>> > catch (LoginException e)
>> > {
>> > ...
>> > }
>> > }
>> > }
>> > }
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]