2024-08-31 01:03:37 +08:00

622 lines
24 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/*
* @link http://kodcloud.com/
* @author warlee | e-mail:kodcloud@qq.com
* @copyright warlee 2014.(Shanghai)Co.,Ltd
* @license http://kodcloud.com/tools/license/license.txt
*/
class explorerUserShare extends Controller{
private $model;
function __construct(){
parent::__construct();
$this->model = Model('Share');
}
// 通过文档获取分享没有则返回false;
public function get(){
$path = Input::get('path','require');
$pathParse = KodIO::parse($path);$shareInfo = false;
if($pathParse['type'] == KodIO::KOD_SHARE_ITEM){
show_json($this->getShareInfo($pathParse['id']));
}
// 物理路径,io路径;
if( $pathParse['type'] == KodIO::KOD_IO || !$pathParse['type'] ){
$shareInfo = $this->model->getInfoBySourcePath(rtrim($path,'/'));
}else{
$sourceID = KodIO::sourceID($path);
$shareInfo = $this->model->getInfoByPath($sourceID);
}
if($shareInfo && $shareInfo['userID'] != KodUser::id()){
show_json(LNG('explorer.noPermissionAction'),false);
}
show_json($shareInfo);
}
// 内部协作分享,分享对象角色权限为拥有者时,可以编辑该协作分享(成员及权限/过期时间)
private function getShareInfo($shareID,$checkAuth = true){
$shareInfo = $this->model->getInfo($shareID);
if(!$shareInfo){show_json(LNG('explorer.noPermissionAction'),false);}
if($shareInfo['userID'] == KodUser::id()){return $shareInfo;}
$sourceInfo = $this->sharePathInfo($shareID);
if( !$sourceInfo || !$sourceInfo['auth'] ||
!Model('Auth')->authCheckRoot($sourceInfo['auth']['authValue']) ){
if($checkAuth){ // 编辑后不检测权限(与我协作-管理者,移除或降低自己的权限)
return show_json(LNG('explorer.noPermissionAction'),false);
}
}
$shareInfo['selfIsShareToUser'] = true;
$shareInfo['sourceInfo'] = $sourceInfo;
return $shareInfo;
}
// 分享信息处理;
public function shareAppendItem(&$item){
$shareInfo = _get($item,'shareInfo');
if(!isset($item['sourceInfo'])){$item['sourceInfo'] = array();}
if(isset($item['sourceInfo']['shareInfo']) ) return $item;
static $shareList = false;
if($shareList === false){
$shareList = $this->model->listSimple();
$shareList = array_to_keyvalue($shareList,'sourcePath');
}
$shareInfo = $shareInfo ? $shareInfo : _get($shareList,$item['path']);
$shareInfo = $shareInfo ? $shareInfo : _get($shareList,rtrim($item['path'],'/'));
$shareInfo = $shareInfo ? $shareInfo : _get($shareList,rtrim($item['path'],'/').'/');
if(!$shareInfo) return $item;
$picker = 'shareID,shareHash,createTime,sourceID,userID,shareSource,isLink,isShareTo,timeTo,options';
if($shareInfo['isLink']=='1'){$picker.=',numDownload,numView';}
$item['sourceInfo']['shareInfo'] = array_field_key($shareInfo,explode(',',$picker));
return $item;
}
/**
* 我的分享列表
* 点击进入对应文档目录;
* link/to
*/
public function myShare($type=''){
$shareList = $this->model->listData($type);
$result = array('fileList'=>array(),'folderList'=>array(),'pageInfo'=>$shareList['pageInfo']);
$sourceArray = array_to_keyvalue($shareList['list'],'','sourceID');
$sourceArray = array_unique($sourceArray);
if($sourceArray){
$where = array(
'sourceID' => array('in',$sourceArray),
'isDelete' => 0,
);
$sourceList = Model('Source')->listSource($where);
$sourceArray = array_merge($sourceList['folderList'],$sourceList['fileList']);
$sourceArray = array_to_keyvalue($sourceArray,'sourceID');
}
$notExist = array();
$sourceCountGroup = 0;$sourceCountIO = 0;
foreach ($shareList['list'] as $shareItem) {
$shareItem = $this->shareItemParse($shareItem);
// 物理路径,io路径;
if($shareItem['sourceID'] == '0'){
// IO 对象存储等加速;
$info = $this->sharePathInfoCheck($shareItem['sourcePath']);
}else{
$info = $sourceArray[$shareItem['sourceID']];
}
if(!$info){
$notExist[] = $shareItem['shareID'];
continue;
}
$info['sharePath'] = KodIO::makeShare($shareItem['shareID'],$info['sourceID']);
$info['shareInfo'] = $shareItem;
$key = $info['type'] == 'folder' ? 'folderList':'fileList';
$this->shareTarget($info,$shareItem);
// 协作内容不再有分享权限时处理; 其他人内容--隐藏; 自己的内容-突出显示;(前提:自己有内部协作或外链分享的对应角色权限);
$shareType = $type == 'to' ? 'shareTo':'shareLink';
$authType = $shareType == 'shareTo' ? 'explorer.share':'explorer.shareLink';
if( Action('user.authRole')->authCan($authType) &&
!Action('explorer.authUser')->canShare($shareItem)){
$this->removeShare($shareItem,$shareType);continue;
}
$result[$key][] = $info;
if(!$info['sourceID']){$sourceCountIO++;}
if($info['groupParentLevel']){$sourceCountGroup++;}
}
// if($notExist){$this->model->remove($notExist);}// 自动清除不存在的分享内容;
// 对自己和部门内容进行分组;
$result['groupShow'] = array(
'selfData' => array(
'type' => 'selfData',
'title' => LNG('explorer.pathGroup.shareSelf'),
"filter"=> array('groupParentLevel'=>'_null_','sourceID'=>'')
),
'groupData' => array(
'type' => 'groupData',
'title' => LNG('explorer.pathGroup.shareGroup'),
"filter"=> array('groupParentLevel'=>'','sourceID'=>'')
),
'ioData' => array(
'type' => 'ioData',
'title' => LNG('admin.storage.localStore').'/IO',
"filter"=> array('sourceID'=>'_null_')
),
);
$length = count($result['folderList']) + count($result['fileList']);
if($sourceCountGroup == 0){unset($result['groupShow']['groupData']);}
if($sourceCountIO == 0){unset($result['groupShow']['ioData']);}
if($length <= 3 || count($result['groupShow']) <= 1){unset($result['groupShow']);}
return $result;
}
private function shareItemParse($shareItem){
// 兼容早期版本,该字段为空的情况;
if(!$shareItem['sourcePath'] && $shareItem['sourceID'] != '0'){
$shareItem['sourcePath'] = KodIO::make($shareItem['sourceID']);
}
return $shareItem;
}
private function sharePathInfoCheck($path){
$parse = KodIO::parse($path);
if ($parse['driverType'] == 'io') {
$driver = Model('Storage')->listData($parse['id']);
if (!$driver) return false;
$type = strtolower($driver['driver']);
$typeList = $GLOBALS['config']['settings']['ioClassList'];
$class = 'PathDriver'.(isset($typeList[$type]) ? $typeList[$type] : ucfirst($type));
if( !class_exists($class) ) return false;
}
try {
$info = IO::info($path);
} catch (Exception $e){$info = false;}
return $info;
}
public function shareToMe($type=''){
$allowTree = Model("SystemOption")->get('shareToMeAllowTree');
$showType = Model('UserOption')->get('shareToMeShowType');
if($allowTree == '0'){$showType = 'list';}
if( $showType == 'group' || strpos($type, 'group') === 0){
return Action('explorer.userShareGroup')->get($type);
}
if( $showType == 'user' || strpos($type, 'user') === 0 ){
return Action('explorer.userShareUser')->get($type);
}
Model("share_to")->selectPageReset();// 确保被筛选后分页数据正常;
$shareList = $this->model->listToMe(5000);
Model("share_to")->selectPageRestore();
$shareHide = Model('UserOption')->get('hideList','shareToMe');
$shareHide = $shareHide ? json_decode($shareHide,true):array();
foreach ($shareList['list'] as $key=>$shareItem){
if(isset($shareHide[$shareItem['shareID'].''])){
$shareItem['shareHide'] = 1;
}else{
$shareItem['shareHide'] = 0;
}
$shareList['list'][$key] = $shareItem;
//$type: '':显示内容; hide: 隐藏内容; all: 全部内容;
if($type == '' && $shareItem['shareHide']){$shareList['list'][$key] = false;}
if($type == 'hide' && !$shareItem['shareHide']){$shareList['list'][$key] = false;}
}
$result = $this->shareToMeListMake($shareList['list']);
$result['currentFieldAdd'] = array("pathDesc"=>'['.LNG('admin.setting.shareToMeList').'],'.LNG('explorer.pathDesc.shareToMe'));
return $result;
}
public function shareToMeListMake($shareList){
$result = array('fileList'=>array(),'folderList'=>array());
$sourceArray = array_to_keyvalue($shareList,'','sourceID');
$sourceArray = array_unique($sourceArray);
if($sourceArray){
$where = array(
'sourceID' => array('in',$sourceArray),
'isDelete' => 0,
);
Model('Source')->selectPageReset();
$sourceList = Model('Source')->listSource($where);
Model('Source')->selectPageRestore();
$sourceArray = array_merge($sourceList['folderList'],$sourceList['fileList']);
$sourceArray = array_to_keyvalue($sourceArray,'sourceID');
}
$notExist = array();
foreach ($shareList as $shareItem) {
if(!$shareItem) continue;
$timeout = intval(_get($shareItem,'options.shareToTimeout',0));
if($timeout > 0 && $timeout < time()) continue;// 过期内容;
if($shareItem['sourceID'] == '0'){// 物理路径,io路径;
$info = $this->sharePathInfoCheck($shareItem['sourcePath']);
}else{
$info = $sourceArray[$shareItem['sourceID']];
}
if(!$info){
$notExist[] = $shareItem['shareID'];
continue;
}
$info = $this->_shareItemeParse($info,$shareItem);
if(!$info) continue;
$key = $info['type'] == 'folder' ? 'folderList':'fileList';
if(isset($shareItem['shareHide'])){$info['shareHide'] = $shareItem['shareHide'];}
$result[$key][] = $info;
}
// if($notExist){$this->model->remove($notExist);} // 自动清除不存在的分享内容;
return $result;
}
public function shareDisplay(){
$data = Input::getArray(array(
"shareArr" => array("check"=>"json","default"=>array()),
"isHide" => array("check"=>"bool","default"=>'1'),
));
$shareHide = Model('UserOption')->get('hideList','shareToMe');
$shareHide = $shareHide ? json_decode($shareHide,true):array();
foreach ($data['shareArr'] as $shareID) {
$shareID = $shareID.'';
if($data['isHide'] == '1'){
$shareHide[$shareID] = '1';
}else{
unset($shareHide[$shareID]);
}
}
Model('UserOption')->set('hideList',json_encode($shareHide),'shareToMe');
show_json(LNG('explorer.success'),true);
}
// 分享内容属性; 默认$sourceID为空则分享本身属性; 指定则文件夹字内容属性;
public function sharePathInfo($shareID,$sourceID=false,$withChildren=false){
$shareInfo = $this->model->getInfo($shareID);
if($shareInfo['sourceID'] == '0'){
$truePath = KodIO::clear($shareInfo['sourcePath'].$sourceID);
// $sourceInfo = IO::info($truePath);
$sourceInfo = array('path'=>$truePath);
}else{
$sourceID = $sourceID ? $sourceID : $shareInfo['sourceID'];
if(!$withChildren){
$sourceInfo = Model('Source')->pathInfo($sourceID);
}else{
$sourceInfo = Model('Source')->pathInfoMore($sourceID);
}
}
// pr($sourceID,$truePath,$sourceInfo,$shareInfo);exit;
if(!$this->shareIncludeCheck($shareInfo,$sourceInfo)) return false;
$sourceInfo = $this->_shareItemeParse($sourceInfo,$shareInfo);
return $sourceInfo;
}
// 检测附带文档是否归属于该分享;
private function shareIncludeCheck($shareInfo,$sourceInfo){
// pr_trace($shareInfo,$sourceInfo);exit;
if(!$shareInfo || !$sourceInfo) return false;
// 物理路径,io路径;
if($shareInfo['sourceID'] == '0'){
$sharePath = KodIO::clear($shareInfo['sourcePath']);
$thisPath = KodIO::clear($sourceInfo['path']);
if(substr($thisPath,0,strlen($sharePath)) != $sharePath) return false;
return true;
}
$shareSource = $shareInfo['sourceInfo'];
// 分享目标为文件,追加子内容必须是自己;
if( $shareSource['type'] == 'file' &&
$shareSource['sourceID'] != $sourceInfo['sourceID']){
return false;
}
if( $shareSource['type'] == 'folder' &&
strpos($sourceInfo['parentLevel'],$shareSource['parentLevel']) !== 0 ){
return false;
}
return true;
}
public function sharePathList($parseInfo){
$shareID = $parseInfo['id'];
$param = explode('/',trim($parseInfo['param'],'/'));
$shareInfo = $this->model->getInfo($shareID);
// 物理路径,io路径;
if($shareInfo['sourceID'] == '0'){
$truePath = KodIO::clear($shareInfo['sourcePath'].$parseInfo['param']);
$sourceInfo = $this->sharePathInfoCheck($truePath);
if(!$sourceInfo) return false;
$list = IO::listPath($truePath);
}else{
$sourceID = $param[0] ? $param[0] : $shareInfo['sourceID'];
$sourceInfo = Model('Source')->pathInfo($sourceID);
if(!$this->shareIncludeCheck($shareInfo,$sourceInfo)) return false;
$list = Model('Source')->listSource(array('parentID' => $sourceID));
}
foreach ($list as $key => &$keyList) {
if($key != 'folderList' && $key != 'fileList' ) continue;
foreach ($keyList as &$source) {
$source = $this->_shareItemeParse($source,$shareInfo);
};unset($source);
};unset($keyList);
$list['current'] = $this->_shareItemeParse($sourceInfo,$shareInfo);
// pr($parseInfo,$truePath,$sourceInfo,$shareInfo,$list);exit;
return $list;
}
/**
* 处理source到分享列表
* 去除无关字段处理parentLevelpathDisplay
*/
public function _shareItemeParse($source,$share){
if(!$source || !is_array($source)){return false;}
$share = $this->shareItemParse($share);
$sourceBefore = $source;
$user = Model('User')->getInfoSimpleOuter($share['userID']);
$source['auth'] = Model("SourceAuth")->authMake($share['authList']);//覆盖原来文档权限;每次进行计算
$source['shareUser'] = $user;
$source['shareCreateTime'] = $share['createTime'];
$source['shareModifyTime'] = $share['modifyTime'];
$source['shareID'] = $share['shareID'];
$sourceRoot = isset($share['sourceInfo']) ? $share['sourceInfo'] : $source;
// 物理路径,io路径;
$pathAdd = $source['sourceID'];
if($share['sourceID'] == '0'){
$sharePath = KodIO::clear($share['sourcePath']);
$thisPath = KodIO::clear($source['path']);
$pathAdd = substr($thisPath,strlen($sharePath));
if(substr($thisPath,0,strlen($sharePath)) != $sharePath) return false;
// 子目录不再追加;
if($pathAdd){unset($source['shareInfo']);}
}
$source['path'] = KodIO::makeShare($share['shareID'],$pathAdd);
$source['path'] = KodIO::clear($source['path']);
if($source['auth'] && $share['sourceID'] != '0'){
$listData = array($source);
Model('Source')->_listAppendAuthSecret($listData);
$source = $listData[0];
if($share['userID'] == USER_ID){
$source['auth'] = $share['sourceInfo']['auth'];
}
}
// 分享者名字;
$userName = $user['nickName'] ? $user['nickName']:$user['name'];
$displayUser = '['.$userName.']'.LNG('common.share').'-'.$sourceRoot['name'];
if($share['userID'] == USER_ID){
$displayUser = $sourceRoot['name'];
$picker = 'shareID,shareHash,createTime,shareSource,isLink,isShareTo,timeTo,options,numDownload,numView';
$shareInfoAdd = array_field_key($share,explode(',',$picker));
$source['sourceInfo']['selfShareInfo'] = array_merge($sourceRoot,$shareInfoAdd);
if(!$pathAdd){$source['sourceInfo']['shareInfo'] = $share;}
}
if($sourceRoot['targetType'] == 'group'){
$source['sharePathFrom'] = $sourceRoot['pathDisplay'];
}else{
$source['sharePathFrom'] = LNG('explorer.toolbar.rootPath').'('.$userName.')';
}
$source['parentLevel'] = ',0,'.substr($source['parentLevel'],strlen($sourceRoot['parentLevel']));
$source['pathDisplay'] = $displayUser.'/'.substr($source['pathDisplay'],strlen($sourceRoot['pathDisplay']));
if($share['sourceID'] == '0'){
$source['parentLevel'] = '';
$source['pathDisplay'] = $displayUser.'/'.$pathAdd;
}
$source['pathDisplay'] = KodIO::clear($source['pathDisplay']);
if($source['type'] == 'folder'){
$source['pathDisplay'] = rtrim($source['pathDisplay'],'/').'/';
}
// 读写权限;
if($source['auth']){// 读写权限同时受: 来源权限+设置权限;
$isWriteable = true;$isReadable = true;
if($share['sourceID'] == '0'){ // 物理路径协作分享,保留原来权限;
$isWriteable = array_key_exists('isWriteable',$source) ? $source['isWriteable'] : true;
$isReadable = array_key_exists('isReadable',$source) ? $source['isReadable'] : true;
}
// 物理路径分享,自己访问自己分享的内容时权限处理;
if($share['sourceID'] == '0' && $share['userID'] == USER_ID){
$source['auth']['authValue'] = AuthModel::authAll();
}
$source['isWriteable'] = $isWriteable && AuthModel::authCheckEdit($source['auth']['authValue']);
$source['isReadable'] = $isReadable && AuthModel::authCheckView($source['auth']['authValue']);
}
if(isset($source['sourceInfo']['tagInfo'])){
unset($source['sourceInfo']['tagInfo']);
}
$this->shareTarget($source,$share);
// 协作内容不再有分享权限时处理; 其他人内容--隐藏; 自己的内容-突出显示;
if(!Action('explorer.authUser')->canShare($share)){return false;}
// pr($source,$sourceBefore,$share);exit;
return $source;
}
private function shareTarget(&$source,$share){
$isRoot = false;
if($source['sourceID'] && $source['sourceID'] == $share['sourceID']){$isRoot = true;}
if($share['sourcePath'] && count(explode('/',trim($source['path'],'/'))) == 1){$isRoot = true;}
if(!$source['shareID']){$isRoot = true;}
$userArr = array();$groupArr = array();
$source['sourceInfo']['shareIsRoot'] = $isRoot;
if(!$isRoot) return; // 子文件夹不显示协作成员;
if($isRoot){$share = $this->model->getInfo($share['shareID']);}//获取完整的authList;
foreach($share['authList'] as $item){
$auth = Model("SourceAuth")->authInfo($item);
if($item['targetType'] == SourceModel::TYPE_GROUP){
$item = Model("Group")->getInfoSimple($item['targetID']);
$item['auth'] = $auth;$groupArr[] = $item;
}else{
$item = Model("User")->getInfoSimpleOuter($item['targetID']);
$item['auth'] = $auth;$userArr[] = $item;
}
}
$source['shareTarget'] = array_merge($groupArr,$userArr);
}
/**
* 添加分享;
*/
public function add(){
$data = $this->_getParam('sourceID');
$pathParse = KodIO::parse($data['path']);
$this->checkRoleAuth($data['isLink'] ? 'shareLink':'shareTo');
// 物理路径,io路径;
$data['sourcePath'] = KodIO::clear($data['path']);
if( $pathParse['type'] == KodIO::KOD_IO || !$pathParse['type'] ){
$result = $this->model->shareAdd('0',$data);
}else{
$sourceID = KodIO::sourceID($data['path']);
$pathInfo = Model('Source')->pathInfo($sourceID);
$this->checkSetAuthAllow($data['authTo'],$pathInfo);
$result = $this->model->shareAdd($sourceID,$data);
}
if(!$result) show_json(LNG('explorer.error'),false);
$shareInfo = $this->model->getInfo($result);
show_json($shareInfo,true);
}
/**
* 编辑分享
*/
public function edit(){
$data = $this->_getParam('shareID');
$this->checkRoleAuth($data['isLink'] == '1' ? 'shareLink':'shareTo');
$shareInfo = $this->getShareInfo($data['shareID']);
$this->checkSetAuthAllow($data['authTo'],$shareInfo['sourceInfo']);
$result = $this->model->shareEdit($data['shareID'],$data);
// 编辑后不检测权限(与我协作-管理者,移除或降低自己的权限)
if(!$result) show_json(LNG('explorer.error'),false);
show_json($this->getShareInfo($data['shareID'],false));
}
// 协作分享: 可以设置的权限,必须小于等于自己在当前文档的权限;
public function checkSetAuthAllow($authTo,$pathInfo){
if(!$authTo || !$pathInfo || !$pathInfo['auth']) return;
$selfAuth = intval($pathInfo['auth']['authInfo']['auth']);
foreach ($authTo as $authItem){
$authInfo = Model("Auth")->listData($authItem['authID']);
$authBoth = $selfAuth | intval($authInfo['auth']);
if($authBoth == $selfAuth) continue;
show_json(LNG('admin.auth.errorAdmin'),false);
}
}
private function checkRoleAuth($shareType){
if(KodUser::isRoot()){return;}
$canShareTo = Action('user.authRole')->authCan('explorer.share');
$canShareLink = Action('user.authRole')->authCan('explorer.shareLink');
if($shareType == 'shareTo' && !$canShareTo){
show_json(LNG('explorer.noPermissionAction'),false,1004);
}
if($shareType == 'shareLink' && !$canShareLink){
show_json(LNG('explorer.noPermissionAction'),false,1004);
}
}
/**
* 添加/编辑分享;
* shareType:
* 0: 暂未指定分享
* 1: 内部指定用户分享
* 2: 外链分享
* 3: 内部指定、外链分享同时包含
*
* 外链分享; title,password,timeTo,options
* authTo: [
* {"targetType":"1","targetID":"23","authID":"1"},
* {"targetType":"2","targetID":"3","authDefine":"512"}
* ]
* param: title,password,timeTo,options
*/
private function _getParam($key='shareID'){
$keys = array(
"isLink" => array("check"=>"bool", "default"=>0),
"isShareTo" => array("check"=>"bool", "default"=>0),
"title" => array("check"=>"require","default"=>''),
"password" => array("default"=>''),//密码设置为空处理;
"timeTo" => array("check"=>"require","default"=>0),
"options" => array("check"=>"json", "default"=>array()),
"authTo" => array("check"=>"json", "default"=>array()),
);
//修改默认值为null不修改
if($key == 'shareID'){
$keys['shareID'] = array("check"=>"int");
foreach ($keys as $key => &$value) {
$value['default'] = null;
};unset($value);
}else{//添加时,目录值
$keys['path'] = array("check"=>"require");
}
$data = Input::getArray($keys);
// 外链分享检测;
if($data['isLink'] == '1'){
$options = Model('SystemOption')->get();
if($options['shareLinkAllow'] == '0'){
show_json(LNG('admin.setting.shareLinkAllowTips'),false);
}
if($options['shareLinkPasswordAllowEmpty'] == '0' && !$data['password']){
show_json(LNG('user.pwdNotNull'),false);
}
if($options['shareLinkAllowGuest'] == '0'){
$data["options"]['onlyLogin'] = '1';
}
// 外链分享,分享者角色没有上传权限时, 不允许开启允许上传;
if(!Action('user.authRole')->authCan('explorer.upload')){
$data["options"]['canUpload'] = '0';
$data["options"]['canEditSave'] = '0';
if($options['shareLinkAllowEdit'] == '0'){$data["options"]['canEditSave'] = '0';}
}
}
return $data;
}
/**
* 批量取消分享;
* 如果制定了分享类型: 则不直接删除数据;
*/
public function del() {
$list = Input::get('dataArr','json');
$shareType = _get($this->in,'type','');
// 批量删除指定内部协作分享, or外链分享;
foreach ($list as $shareID) {
$shareInfo = $this->model->getInfo($shareID);
if(!$shareInfo || $shareInfo['userID'] != KodUser::id()){continue;}
if(!$shareType){
$res = $this->model->remove(array($shareID));
continue;
}
$res = $this->removeShare($shareInfo,$shareType);
}
$msg = !!$res ? LNG('explorer.success'): LNG('explorer.error');
show_json($msg,!!$res);
}
public function removeShare($shareInfo,$shareType){
$this->checkRoleAuth($shareType == 'shareTo' ? 'shareTo':'shareLink');
if($shareType == 'shareTo'){
$data = array('isShareTo'=>0,'authTo'=>array(),'options'=>$shareInfo['options']);
if (isset($data['options']['shareToTimeout'])) unset($data['options']['shareToTimeout']);
}else{
$data = array('isLink'=>0);
}
// 都为空时则删除数据, 再次分享shareID更新;
if( $data['isLink'] == 0 && $shareInfo['isShareTo'] == 0 ||
$data['isShareTo'] == 0 && $shareInfo['isLink'] == 0 ){
return $this->model->remove(array($shareInfo['shareID']));
}
return $this->model->shareEdit($shareInfo['shareID'],$data);
}
}