45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | saiadmin [ saiadmin快速开发框架 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Author: your name
|
|
// +----------------------------------------------------------------------
|
|
namespace app\channel\logic\manage;
|
|
|
|
use plugin\saiadmin\basic\eloquent\BaseLogic;
|
|
use plugin\saiadmin\exception\ApiException;
|
|
use app\channel\model\manage\ChannelManage;
|
|
|
|
/**
|
|
* 渠道逻辑层
|
|
*/
|
|
class ChannelManageLogic extends BaseLogic
|
|
{
|
|
/**
|
|
* 构造函数
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->model = new ChannelManage();
|
|
}
|
|
|
|
/**
|
|
* 判断当前用户是否可操作该渠道(仅渠道管理员或超级管理员可操作)
|
|
* @param object|array $channel 渠道数据,需包含 admin_id
|
|
* @return bool
|
|
*/
|
|
public function canOperateChannel($channel): bool
|
|
{
|
|
if (empty($this->adminInfo) || !isset($this->adminInfo['id'])) {
|
|
return false;
|
|
}
|
|
$adminId = (int) ($this->adminInfo['id']);
|
|
if ($adminId === 1) {
|
|
return true;
|
|
}
|
|
$channelAdminId = is_array($channel) ? ($channel['admin_id'] ?? null) : ($channel->admin_id ?? null);
|
|
return $channelAdminId !== null && (int) $channelAdminId === $adminId;
|
|
}
|
|
|
|
}
|