| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace app\modules\client\behaviors;
- use app\models\Option;
- use app\models\SaasUser;
- use app\models\User;
- use yii\base\ActionFilter;
- use yii\web\Response;
- class MaterialLevelAuth extends ActionFilter
- {
- public function beforeAction($action)
- {
- $store_id = get_params('store_id') ?: post_params('store_id');
- $access_token = get_params('access_token') ?: post_params('access_token');
- if (!$access_token) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => 'access_token 不能为空'
- ];
- return false;
- }
- $saasUser = SaasUser::findIdentityByAccessToken($access_token);
- if (!$saasUser) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => '登录失败 获取不到用户信息'
- ];
- return false;
- }
- $user = User::findOne(['store_id' => $store_id, 'binding' => $saasUser->mobile, 'is_delete' => 0]);
- if (!$user) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => '登录失败 获取不到商城用户信息'
- ];
- return false;
- }
- $materialVisualLevel = Option::get('material_visual_level', $store_id, 'store', json_encode([], JSON_UNESCAPED_UNICODE))['value'];
- $materialVisualLevelArray = json_decode($materialVisualLevel, true);
- //默认所有会员都可以进入 或者后台设置全部会员可进
- if (empty($materialVisualLevelArray) || in_array(-1, $materialVisualLevelArray)) {
- return true;
- }
- if (!in_array($user->level, $materialVisualLevelArray)) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 0,
- 'msg' => '您的权限不足,不能进入该板块',
- 'data' => [
- 'status' => 1
- ]
- ];
- return false;
- }
- return true;
- }
- }
|