Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Rotua Panjaitan
yii2
Commits
ad218c67
Commit
ad218c67
authored
Jun 10, 2013
by
Qiang Xue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
moved HttpException to web.
parent
f14774df
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
19 additions
and
15 deletions
+19
-15
Application.php
framework/yii/base/Application.php
+1
-0
ErrorHandler.php
framework/yii/base/ErrorHandler.php
+1
-0
main.php
framework/yii/views/errorHandler/main.php
+2
-2
AccessControl.php
framework/yii/web/AccessControl.php
+1
-1
Application.php
framework/yii/web/Application.php
+1
-1
Controller.php
framework/yii/web/Controller.php
+1
-1
HttpException.php
framework/yii/web/HttpException.php
+6
-4
Request.php
framework/yii/web/Request.php
+1
-1
Response.php
framework/yii/web/Response.php
+1
-1
User.php
framework/yii/web/User.php
+1
-1
VerbFilter.php
framework/yii/web/VerbFilter.php
+2
-2
ResponseTest.php
tests/unit/framework/web/ResponseTest.php
+1
-1
No files found.
framework/yii/base/Application.php
View file @
ad218c67
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
namespace
yii\base
;
namespace
yii\base
;
use
Yii
;
use
Yii
;
use
yii\web\HttpException
;
/**
/**
* Application is the base class for all application classes.
* Application is the base class for all application classes.
...
...
framework/yii/base/ErrorHandler.php
View file @
ad218c67
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
namespace
yii\base
;
namespace
yii\base
;
use
Yii
;
use
Yii
;
use
yii\web\HttpException
;
/**
/**
* ErrorHandler handles uncaught PHP errors and exceptions.
* ErrorHandler handles uncaught PHP errors and exceptions.
...
...
framework/yii/views/errorHandler/main.php
View file @
ad218c67
...
@@ -14,7 +14,7 @@ $context = $this->context;
...
@@ -14,7 +14,7 @@ $context = $this->context;
<meta
charset=
"utf-8"
/>
<meta
charset=
"utf-8"
/>
<title>
<?php
<title>
<?php
if
(
$exception
instanceof
\yii\
base
\HttpException
)
{
if
(
$exception
instanceof
\yii\
web
\HttpException
)
{
echo
(
int
)
$exception
->
statusCode
.
' '
.
$context
->
htmlEncode
(
$exception
->
getName
());
echo
(
int
)
$exception
->
statusCode
.
' '
.
$context
->
htmlEncode
(
$exception
->
getName
());
}
elseif
(
$exception
instanceof
\yii\base\Exception
)
{
}
elseif
(
$exception
instanceof
\yii\base\Exception
)
{
echo
$context
->
htmlEncode
(
$exception
->
getName
()
.
' – '
.
get_class
(
$exception
));
echo
$context
->
htmlEncode
(
$exception
->
getName
()
.
' – '
.
get_class
(
$exception
));
...
@@ -362,7 +362,7 @@ pre .diff .change{
...
@@ -362,7 +362,7 @@ pre .diff .change{
<?php
else
:
?>
<?php
else
:
?>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAIAAACPssguAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwRURBOUQxQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwRURBOUQyQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBFREE5Q0ZDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBFREE5RDBDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4L6mYsAAAE9klEQVR42tRa227aTBDGiwkhJtD8EanSQ6RKqKpSBbWqql5U7QP0TfsSvWhvStMEO6cqDUpjRylSQ1QC+IQN/mdrhBIb413vgsheIDDr9XwzOzPfzFrwPC/Fe8Cauiybe3uersNPQZJylYr04oUgCNyfJXJfcTAYXH/5YoH0qjq66LbbTrtdfPcOITTXALDuf/40FSWlabeuq6rpeZkHD6Ryma8dOOvDdV19Zycg/XBoml6r9ft9vk9EnNV/dOT8+RM1oXdxof/4wdfrEF/1G7Va+uIiagL8BfaBafMIAHy38/17/+/fydNgAkyDyXMHwLEsS1EmqH9kBOvgACbPFwDQaPfr11S9TjT7+JijEfgAsFst8/CQYv7BQe/6el4AQGTsfPuGbqSt2CGcnrarVS4hlRUAxETz9+/eyQntjXAL3MgeUhG7+vXtbSr1Dx+sqoYss3sCYlS/cXLinJ8nu713emqoKqMRmAD4xAElBQA3GpA62DwBsagfiIN7ecnyeHZyIbKoP4o46KurY2+Rrq7CeQ08YenZs0wmM1MAI+KQDv3VKpd7r1+L2WwQsGH0q9VCyN3dZrOrKPdevUpGsxMCmEAcMqVSaWNjcXExcN00zRbQ7BAAWMSs1ZY2N7NLSzMCMJk4ZBFaXl4OAxBF0Yza68fH3Z2dzNu3Ceo1lMB3raurScQhgqjBDhGiibS1v98zzVlEIax+CJ0TM9fYqAIXB9HRBsiFXq0myGuIVv2xxGGQNCaCVcG2tCGVDkBi4jBU80ThYFlwLVojICr1kxAHFLHRsWoNgzu5oABASBw8247ygVScZJhcyDIVuUDk6tf39oiIg+exUAOwMNiZfAVSAI7jGPv7sSUvhwLl/Jyqc0EEwA+dsR2H+EFWy4OdwdqERiACQNhxGIaaaCcWyDY3Zni7u2BzPgDoOg64Yo92YvJ43e2CzUlCKmIlDsSZ2FcG4Qq4faQoJO0jRKJ+uszFq+tWr5PkNRRPHM7O2IWBpdxGYxrkAk2DODihbAqKdJpNkRIDJhdxniDGEgdavgpSWp8+XX7+HADg9vsJCnDcPnr+XHr0KKpeE6fScdA0l1P7AIwAu2BxfR3qIYotREEcpj8mkwsxkjjs7iYmDuRdCXJykSuXx3YuxEji0O2mE0lvlEpWpZK6vWsxv2s0BCjeE1kVk4ujo2KlEvYEkZE4jMlBCK1sbUFdf7NCx22YlRVHURKuCeSiVpM2N8NGEFmJwzgAIH2hUAhYAD6vGQ6J/bOpe2/eBDoXiJ04jNm1CAVsDT8Zj7ijyAViJQ6zHPV6Z3s7kNfQrcylqlCVpuZ42IeHgbMpdJM4QD2auFc+mxE+m0JUHQfSqHd2Fsg7mMxxWjxwNiX43yBzNT9+9GSZj6I2NsKZH5e5Y9+hSODQ79+vfvjgP0K8SRzSvCw9jgvxJBe/fpmaln/yBAe3WXYcOHYuRmdTCFctmsah4zBjhtdo+D08BGHVhs1zd9Q/MgKIDcJjCwzyefv+/dRdG86/zItzvri+7knS3ZLefPgQPX7sMxSUy+W8ly+NtbW7Ir2+tjaoVHL5fDqdFgFENpstlMtQ/bdlOc3pJZLpjX6x6G1t/ff0KegdH1v96yV7EEk7nU6r1bJtm+PrVPx9FyFQd7FYBMa+sLAwBODnMgirAAM+p/EqLDcuJAiwbaCsgU+fsf8vwADjle3ME1OGEwAAAABJRU5ErkJggg=="
alt=
"Attention"
/>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAIAAACPssguAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwRURBOUQxQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwRURBOUQyQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBFREE5Q0ZDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBFREE5RDBDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4L6mYsAAAE9klEQVR42tRa227aTBDGiwkhJtD8EanSQ6RKqKpSBbWqql5U7QP0TfsSvWhvStMEO6cqDUpjRylSQ1QC+IQN/mdrhBIb413vgsheIDDr9XwzOzPfzFrwPC/Fe8Cauiybe3uersNPQZJylYr04oUgCNyfJXJfcTAYXH/5YoH0qjq66LbbTrtdfPcOITTXALDuf/40FSWlabeuq6rpeZkHD6Ryma8dOOvDdV19Zycg/XBoml6r9ft9vk9EnNV/dOT8+RM1oXdxof/4wdfrEF/1G7Va+uIiagL8BfaBafMIAHy38/17/+/fydNgAkyDyXMHwLEsS1EmqH9kBOvgACbPFwDQaPfr11S9TjT7+JijEfgAsFst8/CQYv7BQe/6el4AQGTsfPuGbqSt2CGcnrarVS4hlRUAxETz9+/eyQntjXAL3MgeUhG7+vXtbSr1Dx+sqoYss3sCYlS/cXLinJ8nu713emqoKqMRmAD4xAElBQA3GpA62DwBsagfiIN7ecnyeHZyIbKoP4o46KurY2+Rrq7CeQ08YenZs0wmM1MAI+KQDv3VKpd7r1+L2WwQsGH0q9VCyN3dZrOrKPdevUpGsxMCmEAcMqVSaWNjcXExcN00zRbQ7BAAWMSs1ZY2N7NLSzMCMJk4ZBFaXl4OAxBF0Yza68fH3Z2dzNu3Ceo1lMB3raurScQhgqjBDhGiibS1v98zzVlEIax+CJ0TM9fYqAIXB9HRBsiFXq0myGuIVv2xxGGQNCaCVcG2tCGVDkBi4jBU80ThYFlwLVojICr1kxAHFLHRsWoNgzu5oABASBw8247ygVScZJhcyDIVuUDk6tf39oiIg+exUAOwMNiZfAVSAI7jGPv7sSUvhwLl/Jyqc0EEwA+dsR2H+EFWy4OdwdqERiACQNhxGIaaaCcWyDY3Zni7u2BzPgDoOg64Yo92YvJ43e2CzUlCKmIlDsSZ2FcG4Qq4faQoJO0jRKJ+uszFq+tWr5PkNRRPHM7O2IWBpdxGYxrkAk2DODihbAqKdJpNkRIDJhdxniDGEgdavgpSWp8+XX7+HADg9vsJCnDcPnr+XHr0KKpeE6fScdA0l1P7AIwAu2BxfR3qIYotREEcpj8mkwsxkjjs7iYmDuRdCXJykSuXx3YuxEji0O2mE0lvlEpWpZK6vWsxv2s0BCjeE1kVk4ujo2KlEvYEkZE4jMlBCK1sbUFdf7NCx22YlRVHURKuCeSiVpM2N8NGEFmJwzgAIH2hUAhYAD6vGQ6J/bOpe2/eBDoXiJ04jNm1CAVsDT8Zj7ijyAViJQ6zHPV6Z3s7kNfQrcylqlCVpuZ42IeHgbMpdJM4QD2auFc+mxE+m0JUHQfSqHd2Fsg7mMxxWjxwNiX43yBzNT9+9GSZj6I2NsKZH5e5Y9+hSODQ79+vfvjgP0K8SRzSvCw9jgvxJBe/fpmaln/yBAe3WXYcOHYuRmdTCFctmsah4zBjhtdo+D08BGHVhs1zd9Q/MgKIDcJjCwzyefv+/dRdG86/zItzvri+7knS3ZLefPgQPX7sMxSUy+W8ly+NtbW7Ir2+tjaoVHL5fDqdFgFENpstlMtQ/bdlOc3pJZLpjX6x6G1t/ff0KegdH1v96yV7EEk7nU6r1bJtm+PrVPx9FyFQd7FYBMa+sLAwBODnMgirAAM+p/EqLDcuJAiwbaCsgU+fsf8vwADjle3ME1OGEwAAAABJRU5ErkJggg=="
alt=
"Attention"
/>
<h1>
<?php
<h1>
<?php
if
(
$exception
instanceof
\yii\
base
\HttpException
)
{
if
(
$exception
instanceof
\yii\
web
\HttpException
)
{
echo
'<span>'
.
$context
->
createHttpStatusLink
(
$exception
->
statusCode
,
$context
->
htmlEncode
(
$exception
->
getName
()))
.
'</span>'
;
echo
'<span>'
.
$context
->
createHttpStatusLink
(
$exception
->
statusCode
,
$context
->
htmlEncode
(
$exception
->
getName
()))
.
'</span>'
;
echo
' – '
.
$context
->
addTypeLinks
(
get_class
(
$exception
));
echo
' – '
.
$context
->
addTypeLinks
(
get_class
(
$exception
));
}
elseif
(
$exception
instanceof
\yii\base\Exception
)
{
}
elseif
(
$exception
instanceof
\yii\base\Exception
)
{
...
...
framework/yii/web/AccessControl.php
View file @
ad218c67
...
@@ -10,7 +10,7 @@ namespace yii\web;
...
@@ -10,7 +10,7 @@ namespace yii\web;
use
Yii
;
use
Yii
;
use
yii\base\Action
;
use
yii\base\Action
;
use
yii\base\ActionFilter
;
use
yii\base\ActionFilter
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
/**
/**
* AccessControl provides simple access control based on a set of rules.
* AccessControl provides simple access control based on a set of rules.
...
...
framework/yii/web/Application.php
View file @
ad218c67
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
namespace
yii\web
;
namespace
yii\web
;
use
Yii
;
use
Yii
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
use
yii\base\InvalidRouteException
;
use
yii\base\InvalidRouteException
;
/**
/**
...
...
framework/yii/web/Controller.php
View file @
ad218c67
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
namespace
yii\web
;
namespace
yii\web
;
use
Yii
;
use
Yii
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
use
yii\base\InlineAction
;
use
yii\base\InlineAction
;
/**
/**
...
...
framework/yii/
base
/HttpException.php
→
framework/yii/
web
/HttpException.php
View file @
ad218c67
...
@@ -5,7 +5,10 @@
...
@@ -5,7 +5,10 @@
* @license http://www.yiiframework.com/license/
* @license http://www.yiiframework.com/license/
*/
*/
namespace
yii\base
;
namespace
yii\web
;
use
yii\base\UserException
;
use
yii\web\Response
;
/**
/**
* HttpException represents an exception caused by an improper request of the end-user.
* HttpException represents an exception caused by an improper request of the end-user.
...
@@ -42,9 +45,8 @@ class HttpException extends UserException
...
@@ -42,9 +45,8 @@ class HttpException extends UserException
*/
*/
public
function
getName
()
public
function
getName
()
{
{
// use absolute namespaced class here because PHP will generate a mysterious error otherwise
if
(
isset
(
Response
::
$httpStatuses
[
$this
->
statusCode
]))
{
if
(
isset
(
\yii\web\Response
::
$httpStatuses
[
$this
->
statusCode
]))
{
return
Response
::
$httpStatuses
[
$this
->
statusCode
];
return
\yii\web\Response
::
$httpStatuses
[
$this
->
statusCode
];
}
else
{
}
else
{
return
'Error'
;
return
'Error'
;
}
}
...
...
framework/yii/web/Request.php
View file @
ad218c67
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
namespace
yii\web
;
namespace
yii\web
;
use
Yii
;
use
Yii
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
use
yii\base\InvalidConfigException
;
use
yii\base\InvalidConfigException
;
use
yii\helpers\SecurityHelper
;
use
yii\helpers\SecurityHelper
;
...
...
framework/yii/web/Response.php
View file @
ad218c67
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
namespace
yii\web
;
namespace
yii\web
;
use
Yii
;
use
Yii
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
use
yii\base\InvalidParamException
;
use
yii\base\InvalidParamException
;
use
yii\helpers\FileHelper
;
use
yii\helpers\FileHelper
;
use
yii\helpers\Html
;
use
yii\helpers\Html
;
...
...
framework/yii/web/User.php
View file @
ad218c67
...
@@ -9,7 +9,7 @@ namespace yii\web;
...
@@ -9,7 +9,7 @@ namespace yii\web;
use
Yii
;
use
Yii
;
use
yii\base\Component
;
use
yii\base\Component
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
use
yii\base\InvalidConfigException
;
use
yii\base\InvalidConfigException
;
/**
/**
...
...
framework/yii/web/VerbFilter.php
View file @
ad218c67
...
@@ -10,7 +10,7 @@ namespace yii\web;
...
@@ -10,7 +10,7 @@ namespace yii\web;
use
Yii
;
use
Yii
;
use
yii\base\ActionEvent
;
use
yii\base\ActionEvent
;
use
yii\base\Behavior
;
use
yii\base\Behavior
;
use
yii\
base
\HttpException
;
use
yii\
web
\HttpException
;
/**
/**
* VerbFilter is an action filter that filters by HTTP request methods.
* VerbFilter is an action filter that filters by HTTP request methods.
...
@@ -70,7 +70,7 @@ class VerbFilter extends Behavior
...
@@ -70,7 +70,7 @@ class VerbFilter extends Behavior
/**
/**
* @param ActionEvent $event
* @param ActionEvent $event
* @return boolean
* @return boolean
* @throws
\yii\base\
HttpException when the request method is not allowed.
* @throws HttpException when the request method is not allowed.
*/
*/
public
function
beforeAction
(
$event
)
public
function
beforeAction
(
$event
)
{
{
...
...
tests/unit/framework/web/ResponseTest.php
View file @
ad218c67
...
@@ -76,7 +76,7 @@ class ResponseTest extends \yiiunit\TestCase
...
@@ -76,7 +76,7 @@ class ResponseTest extends \yiiunit\TestCase
*/
*/
public
function
testSendFileWrongRanges
(
$rangeHeader
)
public
function
testSendFileWrongRanges
(
$rangeHeader
)
{
{
$this
->
setExpectedException
(
'yii\
base
\HttpException'
);
$this
->
setExpectedException
(
'yii\
web
\HttpException'
);
$dataFile
=
\Yii
::
getAlias
(
'@yiiunit/data/web/data.txt'
);
$dataFile
=
\Yii
::
getAlias
(
'@yiiunit/data/web/data.txt'
);
$_SERVER
[
'HTTP_RANGE'
]
=
'bytes='
.
$rangeHeader
;
$_SERVER
[
'HTTP_RANGE'
]
=
'bytes='
.
$rangeHeader
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment