Работа над сайтом 13

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-07-07 06:56:04 +10:00
parent fc59eff6db
commit d5bb9137f7

View File

@ -101,7 +101,9 @@ $config = [
'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>',
'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',
'on beforeAction' => function ($event) {
if (
!yii::$app->user->isGuest
&& (yii::$app->request->getPathInfo() !== 'offer'
&& 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->isGuest) {
// Гость
} else {
// Пользователь
// Подтверждение почты
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 (
!(isset(yii::$app->session['offer_buyer_accepted'])
&& yii::$app->session['offer_buyer_accepted'] === true)
@ -150,8 +179,33 @@ $config = [
) {
// Нет подтверждения офферты пользователя
// Переадресация на оферту
yii::$app->response->redirect('/offer')->send();
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();
}
}
} else if (
(isset(yii::$app->user->identity->agnt)
&& yii::$app->user->identity->agnt === true)
@ -162,8 +216,33 @@ $config = [
) {
// Нет подтверждения офферты поставщика
// Переадресация на оферту
yii::$app->response->redirect('/offer/suppliers')->send();
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();
}
}
}
}
}