Работа над сайтом 13
This commit is contained in:
parent
fc59eff6db
commit
d5bb9137f7
|
@ -101,7 +101,9 @@ $config = [
|
||||||
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>' => 'order/supply-<action>',
|
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>' => 'order/supply-<action>',
|
||||||
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>/<target:(stts|cost|time|comm)>' => 'order/supply-<action>-<target>',
|
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>/<target:(stts|cost|time|comm)>' => 'order/supply-<action>-<target>',
|
||||||
'invoices/<order:[^/]+>' => 'invoice/index',
|
'invoices/<order:[^/]+>' => 'invoice/index',
|
||||||
'invoices/<order:[^/]+>/<action:(download)>' => 'invoice/<action>'
|
'invoices/<order:[^/]+>/<action:(download)>' => 'invoice/<action>',
|
||||||
|
'verify/send' => 'verify/send',
|
||||||
|
'verify/<vrfy:[^/]+>' => 'verify/index'
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -131,17 +133,44 @@ $config = [
|
||||||
],
|
],
|
||||||
'params' => require __DIR__ . '/params.php',
|
'params' => require __DIR__ . '/params.php',
|
||||||
'on beforeAction' => function ($event) {
|
'on beforeAction' => function ($event) {
|
||||||
if (
|
if (yii::$app->user->isGuest) {
|
||||||
!yii::$app->user->isGuest
|
// Гость
|
||||||
&& (yii::$app->request->getPathInfo() !== 'offer'
|
} else {
|
||||||
&& yii::$app->request->getPathInfo() !== 'offer/suppliers'
|
// Пользователь
|
||||||
&& yii::$app->request->getPathInfo() !== 'offer/accept'
|
|
||||||
&& yii::$app->request->getPathInfo() !== 'offer/accept-suppliers'
|
|
||||||
&& yii::$app->request->getPathInfo() !== 'notification'
|
|
||||||
&& yii::$app->request->getPathInfo() !== 'identification')
|
|
||||||
) {
|
|
||||||
// Нет соглашения с офертой
|
|
||||||
|
|
||||||
|
// Подтверждение почты
|
||||||
|
if (yii::$app->user->identity->vrfy !== true) {
|
||||||
|
// Почта не подтверждена
|
||||||
|
|
||||||
|
if (!(str_starts_with(yii::$app->request->getPathInfo(), 'verify')
|
||||||
|
|| match (yii::$app->request->getPathInfo()) {
|
||||||
|
'policy', 'notification', 'identification' => true,
|
||||||
|
default => false
|
||||||
|
})) {
|
||||||
|
// Фильтрация страниц
|
||||||
|
|
||||||
|
if (yii::$app->request->isPost) {
|
||||||
|
// POST-запрос
|
||||||
|
|
||||||
|
yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
yii::$app->response->statusCode = 401;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'main' => yii::$app->controller->renderPartial('/account/verify'),
|
||||||
|
'redirect' => '/registration',
|
||||||
|
'_csrf' => yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
// Подразумевается как GET-запрос
|
||||||
|
|
||||||
|
// Переадресация на страницу указывающую на необходимость подтвердить почту
|
||||||
|
yii::$app->response->redirect('/verify')->send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Согласие с офертой
|
||||||
if (
|
if (
|
||||||
!(isset(yii::$app->session['offer_buyer_accepted'])
|
!(isset(yii::$app->session['offer_buyer_accepted'])
|
||||||
&& yii::$app->session['offer_buyer_accepted'] === true)
|
&& yii::$app->session['offer_buyer_accepted'] === true)
|
||||||
|
@ -150,8 +179,33 @@ $config = [
|
||||||
) {
|
) {
|
||||||
// Нет подтверждения офферты пользователя
|
// Нет подтверждения офферты пользователя
|
||||||
|
|
||||||
|
if (!(str_starts_with(yii::$app->request->getPathInfo(), 'verify')
|
||||||
|
|| str_starts_with(yii::$app->request->getPathInfo(), 'offer')
|
||||||
|
|| match (yii::$app->request->getPathInfo()) {
|
||||||
|
'notification', 'identification' => true,
|
||||||
|
default => false
|
||||||
|
})) {
|
||||||
|
// Фильтрация страниц
|
||||||
|
|
||||||
|
if (yii::$app->request->isPost) {
|
||||||
|
// POST-запрос
|
||||||
|
|
||||||
|
yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
yii::$app->response->statusCode = 401;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'main' => yii::$app->controller->renderPartial('/offer/index'),
|
||||||
|
'redirect' => '/registration',
|
||||||
|
'_csrf' => yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
// Подразумевается как GET-запрос
|
||||||
|
|
||||||
// Переадресация на оферту
|
// Переадресация на оферту
|
||||||
yii::$app->response->redirect('/offer')->send();
|
yii::$app->response->redirect('/offer')->send();
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (
|
} else if (
|
||||||
(isset(yii::$app->user->identity->agnt)
|
(isset(yii::$app->user->identity->agnt)
|
||||||
&& yii::$app->user->identity->agnt === true)
|
&& yii::$app->user->identity->agnt === true)
|
||||||
|
@ -162,11 +216,36 @@ $config = [
|
||||||
) {
|
) {
|
||||||
// Нет подтверждения офферты поставщика
|
// Нет подтверждения офферты поставщика
|
||||||
|
|
||||||
|
if (!(str_starts_with(yii::$app->request->getPathInfo(), 'verify')
|
||||||
|
|| str_starts_with(yii::$app->request->getPathInfo(), 'offer')
|
||||||
|
|| match (yii::$app->request->getPathInfo()) {
|
||||||
|
'notification', 'identification' => true,
|
||||||
|
default => false
|
||||||
|
})) {
|
||||||
|
// Фильтрация страниц
|
||||||
|
|
||||||
|
if (yii::$app->request->isPost) {
|
||||||
|
// POST-запрос
|
||||||
|
|
||||||
|
yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
yii::$app->response->statusCode = 401;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'main' => $this->renderPartial('/offer/supplier'),
|
||||||
|
'redirect' => '/registration',
|
||||||
|
'_csrf' => yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
// Подразумевается как GET-запрос
|
||||||
|
|
||||||
// Переадресация на оферту
|
// Переадресация на оферту
|
||||||
yii::$app->response->redirect('/offer/suppliers')->send();
|
yii::$app->response->redirect('/offer/suppliers')->send();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
if (YII_ENV_DEV) {
|
if (YII_ENV_DEV) {
|
||||||
|
|
Reference in New Issue