cvsuser     05/08/09 12:07:41

  Modified:    App-Context/lib/App/Context HTTP.pm
  Log:
  switchable users. support for PATH_INFO apps.
  
  Revision  Changes    Path
  1.9       +29 -12    p5ee/App-Context/lib/App/Context/HTTP.pm
  
  Index: HTTP.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/App-Context/lib/App/Context/HTTP.pm,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- HTTP.pm   2 Sep 2004 20:56:51 -0000       1.8
  +++ HTTP.pm   9 Aug 2005 19:07:41 -0000       1.9
  @@ -134,25 +134,29 @@
       my $events = $self->{events};
       my ($event, $service, $name, $method, $args);
       my $results = "";
  -    my $display_current_widget = 1;
  +    # my $display_current_widget = 1;
   
       eval {
           while ($#$events > -1) {
               $event = shift(@$events);
               ($service, $name, $method, $args) = @$event;
  -            if ($service eq "SessionObject") {
  -                $self->call($service, $name, $method, $args);
  -            }
  -            else {
  +            #if ($service eq "SessionObject") {
  +            #    $self->call($service, $name, $method, $args);
  +            #}
  +            #else {
                   $results = $self->call($service, $name, $method, $args);
  -                $display_current_widget = 0;
  -            }
  +                #$results = [ $results ] if (!ref($results));
  +            #    $display_current_widget = 0;
  +            #}
           }
  -        if ($display_current_widget) {
  +        #if ($display_current_widget) { }
  +        #if (! defined $results) {
               my $type = $self->so_get("default","ctype","SessionObject");
  -            my $name = $self->so_get("default","cname","default");
  -            $results = $self->service($type, $name);
  -        }
  +            my $name = $self->so_get("default","cname");
  +            #if ($xyz) {
  +                $results = $self->service($type, $name);
  +            #}
  +        #}
   
           my $response = $self->response();
           my $ref = ref($results);
  @@ -542,6 +546,19 @@
       &App::sub_entry if ($App::trace);
       my $self = shift;
       my $user = $self->request()->user();
  +    my $switchable_users = $self->get_option("switchable_users");
  +    if ($switchable_users && $switchable_users =~ /\b$user\b/) {
  +        # check more carefully ...
  +        if ($switchable_users eq $user ||
  +            $switchable_users =~ /:$user:/ ||
  +            $switchable_users =~ /^$user:/ ||
  +            $switchable_users =~ /:$user$/) {
  +            my $newuser = $self->so_get("default","u");
  +            if ($newuser) {
  +                $user = $newuser;
  +            }
  +        }
  +    }
       &App::sub_exit($user) if ($App::trace);
       return $user;
   }
  
  
  

Reply via email to