Работа над сайтом 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)>/<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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue