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;
}