Initial import
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\controllers;
|
||||
|
||||
|
||||
use app\models\CmsRr;
|
||||
use app\models\UserSession;
|
||||
use app\services\Auth;
|
||||
use app\widgets\services\UserRight;
|
||||
|
||||
class PartnerController extends BaseController
|
||||
{
|
||||
public $layout = 'cms';
|
||||
public $userTypeKey = 'partner';
|
||||
public $partnerKey = '';
|
||||
/** @var \app\models\UserPartner */
|
||||
public $partner;
|
||||
|
||||
public function beforeAction($action)
|
||||
{
|
||||
$partner = Auth::userPartner();
|
||||
|
||||
if (!$partner) {
|
||||
header('Location: /partner/');
|
||||
exit;
|
||||
} else {
|
||||
if($partner && $partner->open_id) {
|
||||
$us = UserSession::find()->where(['sub' => $partner->open_id])->one();
|
||||
if(!$us) {
|
||||
Auth::userPartnerLogout();
|
||||
return $this->redirect('/partner');
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->partner = $partner;
|
||||
UserRight::setPartner($this->partner);
|
||||
return parent::beforeAction($action);
|
||||
}
|
||||
|
||||
public function actionIndex($page)
|
||||
{
|
||||
if(!$this->partner) {
|
||||
$redirect = \Yii::$app->params['cms'] . '/partner-register-login/';
|
||||
header('Location: '. $redirect);
|
||||
exit;
|
||||
}
|
||||
|
||||
return $this->render("index/$page");
|
||||
}
|
||||
|
||||
public function actionWebsite($page)
|
||||
{
|
||||
if ($page == 'users' && !$this->partner->getRightsIds(1))
|
||||
return $this->redirect('/partner/index/dashboard');
|
||||
|
||||
return $this->render("website/$page");
|
||||
}
|
||||
|
||||
public function actionUser($page)
|
||||
{
|
||||
return $this->render("user/$page");
|
||||
}
|
||||
|
||||
|
||||
public function actionLogout()
|
||||
{
|
||||
$partner = Auth::userPartner();
|
||||
|
||||
if($partner->open_id) {
|
||||
$q = "";
|
||||
if(!empty($_SESSION['id_token_hint'])) {
|
||||
$redirect = \Yii::$app->params['cms'] . '/partner-register-login/';
|
||||
$q = '?id_token_hint='.$_SESSION['id_token_hint'].'&post_logout_redirect_uri='.$redirect;
|
||||
}
|
||||
header('Location: '. \Yii::$app->params['sso_logout_url'].$q);
|
||||
exit;
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
public function actionRoleRights()
|
||||
{
|
||||
if (!empty($_GET['role_id'])) {
|
||||
|
||||
$roleRights = CmsRr::find()->innerJoinWith('right')->where(['role_id' => $_GET['role_id'], 'is_active' => 1])->all();
|
||||
$rightsIds = [];
|
||||
foreach ($roleRights as $rr) {
|
||||
$rightsIds[] = $rr->right_id;
|
||||
}
|
||||
|
||||
return $this->asJson(['rights' => $rightsIds]);
|
||||
}
|
||||
return $this->asJson([]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user