comparison Lib/IMPL/Web/Handler/RestController.pm @ 230:6d8092d8ce1b

*reworked IMPL::Security *reworked IMPL::Web::Security *refactoring
author sergey
date Mon, 08 Oct 2012 03:37:37 +0400
parents 47f77e6409f7
children 3cebcf6fdb9b
comparison
equal deleted inserted replaced
229:47f77e6409f7 230:6d8092d8ce1b
36 36
37 if (length $pathInfo) { 37 if (length $pathInfo) {
38 38
39 @segments = split(/\//, $pathInfo, $this->trailingSlash ? -1 : 0); 39 @segments = split(/\//, $pathInfo, $this->trailingSlash ? -1 : 0);
40 40
41 # remove first segment since it's always empty 41 # remove first segment if it is empty
42 shift @segments; 42 shift @segments if @segments && length($segments[0]) == 0;
43 43
44 my ($obj,$view) = (pop(@segments) =~ m/(.*?)(?:\.(\w+))?$/); 44 if(@segments) {
45 push @segments, $obj; 45 my ($obj,$view) = (pop(@segments) =~ m/(.*?)(?:\.(\w+))?$/);
46 push @segments, $obj;
47 }
46 48
47 } 49 }
48 50
49 return @segments; 51 return @segments;
50 } 52 }
61 63
62 while(@segments) { 64 while(@segments) {
63 my $id = shift @segments; 65 my $id = shift @segments;
64 66
65 $res = $res->FetchChildResource($id); 67 $res = $res->FetchChildResource($id);
66
67 die NotFoundException->new($pathInfo,$id) unless $res;
68 } 68 }
69 69
70 $res = $res->InvokeHttpVerb($method,$action); 70 $res = $res->InvokeHttpVerb($method,$action);
71 } 71 }
72 72