You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.6 KiB
110 lines
3.6 KiB
<?php |
|
/** |
|
* @link http://www.zjhejiang.com/ |
|
* @copyright Copyright (c) 2018 浙江禾匠信息科技有限公司 |
|
* @author Lu Wei |
|
* |
|
* Created by IntelliJ IDEA. |
|
* User: luwei |
|
* Date: 2018/6/19 |
|
* Time: 10:26 |
|
*/ |
|
|
|
|
|
namespace app\models; |
|
|
|
use app\hejiang\CloudPlugin; |
|
use yii\base\BaseObject; |
|
use Yii; |
|
|
|
class StorePermission extends BaseObject |
|
{ |
|
|
|
/** |
|
* 获取当前小程序商城的权限(固定权限、已安装插件) |
|
* @param int we7Uid 该参数只用于后端管理接口(除操作员,操作员和小程序请求类似) |
|
* @return array ['coupon','miaosha',...] |
|
*/ |
|
public static function getOpenPermissionList($store = null, $we7Uid = 0) |
|
{ |
|
if (!$store) { |
|
return []; |
|
} |
|
if ($store->user_id) { |
|
//微擎版账户 |
|
$user = User::findOne($store->user_id); |
|
if (!$user || !$user->we7_uid) { |
|
return null; |
|
} |
|
|
|
$we7Uid = $we7Uid ? $we7Uid : $user->we7_uid; |
|
$we7UserAuth = We7UserAuth::findOne(['we7_user_id' => $we7Uid]); |
|
if (!$we7UserAuth) { |
|
//微擎账户未设置过权限,是否默认有所有权限,总管理员默认有所有权限 |
|
$we7_default_all_permission = Option::get('we7_default_all_permission'); |
|
if ($we7_default_all_permission || $we7Uid == 1) { |
|
$permission_list = self::getAllPermissionList(); |
|
} else { |
|
$permission_list = []; |
|
} |
|
} else { |
|
//微擎账户设置过权限,根据已设置的权限 |
|
if ($we7UserAuth->auth) { |
|
$permission_list = \Yii::$app->serializer->decode($we7UserAuth->auth); |
|
if (!$permission_list) { |
|
$permission_list = []; |
|
} |
|
} else { |
|
$permission_list = []; |
|
} |
|
} |
|
if ($we7Uid == 1) { |
|
$permission_list = self::getAllPermissionList(); |
|
} |
|
} elseif ($store->admin_id) { |
|
|
|
//独立版账户 |
|
$adminId = $we7Uid ? $we7Uid : $store->admin_id; |
|
$admin = Admin::findOne($adminId); |
|
if (!$admin) { |
|
return null; |
|
} |
|
if ($admin->permission) { |
|
$permission_list = \Yii::$app->serializer->decode($admin->permission); |
|
if (!$permission_list) { |
|
$permission_list = []; |
|
} |
|
} else { |
|
$permission_list = []; |
|
} |
|
} else { |
|
return []; |
|
} |
|
|
|
return (array)$permission_list; |
|
|
|
} |
|
|
|
/** |
|
* 获取当前系统所有权限(固定权限、已安装插件) |
|
* @return array ['coupon','miaosha',...] |
|
*/ |
|
private static function getAllPermissionList() |
|
{ |
|
$plugin_list = CloudPlugin::getInstalledPluginList(); |
|
$plugin_permission_list = []; |
|
if (is_array($plugin_list)) { |
|
foreach ($plugin_list as $p) { |
|
$plugin_permission_list[] = $p['name']; |
|
} |
|
} |
|
$admin_permission_list = AdminPermission::getList(); |
|
$system_permission_list = []; |
|
if (is_array($admin_permission_list)) { |
|
foreach ($admin_permission_list as $ap) { |
|
$system_permission_list[] = $ap->name; |
|
} |
|
} |
|
return array_keys(array_flip($plugin_permission_list) + array_flip($system_permission_list)); |
|
} |
|
}
|
|
|