$icoarr['fsize'] = formatsize($icoarr['size']); $icoarr['ftype'] = getFileTypeName($icoarr['type'], $icoarr['ext']); $icoarr['fdateline'] = dgmdate($icoarr['dateline']); echo json_encode($icoarr); exit; } elseif ($icoarr['icoid'] = DB::insert('icos', $icoarr, 1)) { //$icoarr=array_merge($sourcedata,$icoarr); $icoarr['url'] = $app['url']; $icoarr = array_merge($app, $icoarr); addtoconfig($icoarr); $icoarr['img'] = $app['appico']; $icoarr['bz'] = ''; $icoarr['fsize'] = formatsize($icoarr['size']); $icoarr['ftype'] = getFileTypeName($icoarr['type'], $icoarr['ext']); $icoarr['fdateline'] = dgmdate($icoarr['dateline']); $icoarr['sperm'] = perm_FileSPerm::typePower($icoarr['type'], ''); echo json_encode($icoarr); exit; } else { echo json_encode(array('error' => '添加快捷方式失败')); exit; } } elseif ($do == 'appuninstall') { //删除用户应用 $appid = intval($_GET['appid']); $return = array(); if ($icoid = DB::result_first("select icoid from %t where oid=%d and uid=%d and type='app'", array('icos', $appid, $_G['uid']))) { C::t('icos')->delete($icoid); $return['icoid'] = $icoid; } $applist = DB::result_first("select applist from %t where uid=%d", array('user_field', $_G['uid']));
function checkperm($action, $arr, $bz = '') { //检查某个图标是否有权限; global $_G; if ($_G['uid'] < 1) { //游客没有权限 return false; } if ($bz || $arr['bz']) { return self::checkperm_Container($arr['pfid'], $action, $bz ? $bz : $arr['bz']); } else { //首先判断ico的超级权限; if (!perm_FileSPerm::isPower($arr['sperm'], $action)) { return false; } if ($folder = C::t('folder')->fetch_by_fid($arr['pfid'])) { //首先判断目录的超级权限; if (!perm_FolderSPerm::isPower($folder['fsperm'], $action)) { return false; } } if ($_G['adminid'] == 1) { return true; } //网站管理员 有权限; //if($folder['gid']>0){ if ($action == 'rename') { $action = 'edit'; } if (in_array($action, array('read', 'delete', 'edit', 'download', 'copy'))) { if ($_G['uid'] == $arr['uid']) { $action .= '1'; } else { $action .= '2'; } } //} return self::checkperm_Container($arr['pfid'], $action, $bz); } }
public function fetch_by_icoid($icoid) { //返回一条数据同时加载资源表数据 global $_G; $icoid = intval($icoid); $data = $icodata = $soucedata = array(); //if($force_from_db || ($data = $this->fetch_cache('parse_'.$icoid)) === false) { if (!($icodata = self::fetch($icoid))) { return array(); } if (!($sourcedata = self::getsourcedata($icodata['type'], $icodata['oid']))) { return array(); } if ($icodata['type'] == 'pan' || $icodata['type'] == 'storage') { $icodata['oid'] = $sourcedata['fid']; } $data = array_merge($sourcedata, $icodata); $data['size'] = isset($sourcedata['filesize']) ? $sourcedata['filesize'] : 0; if ($data['type'] == 'image') { $data['img'] = DZZSCRIPT . '?mod=io&op=thumbnail&width=256&height=256&path=' . dzzencode($data['icoid']); $data['url'] = DZZSCRIPT . '?mod=io&op=thumbnail&width=1440&height=900&original=1&path=' . dzzencode($data['icoid']); } elseif ($data['type'] == 'attach' || $data['type'] == 'document') { $data['img'] = geticonfromext($data['ext'], $data['type']); $data['url'] = DZZSCRIPT . '?mod=io&op=getStream&path=' . dzzencode($data['icoid']); } elseif ($data['type'] == 'shortcut') { $data['img'] = isset($data['tdata']['img']) ? $data['tdata']['img'] : geticonfromext($data['tdata']['ext'], $data['tdata']['type']); $data['ttype'] = $data['tdata']['type']; $data['ext'] = $data['tdata']['ext']; } elseif ($data['type'] == 'dzzdoc') { $data['url'] = DZZSCRIPT . '?mod=document&icoid=' . dzzencode($data['icoid']); $data['img'] = isset($data['icon']) ? $data['icon'] : geticonfromext($data['ext'], $data['type']); } else { $data['img'] = isset($data['icon']) ? $data['icon'] : geticonfromext($data['ext'], $data['type']); } if (empty($data['name'])) { $data['name'] = $data['title']; } $data['url'] = isset($data['url']) ? replace_canshu($data['url']) : ''; $data['ftype'] = getFileTypeName($data['type'], $data['ext']); $data['fdateline'] = dgmdate($data['dateline']); $data['fsize'] = formatsize($data['size']); $data['path'] = $data['icoid']; $data['bz'] = ''; if ($data['remote'] > 1) { $data['rbz'] = io_remote::getBzByRemoteid($data['remote']); } //增加安全相关的路径 $data['dpath'] = dzzencode($data['path']); $data['apath'] = $data['aid'] ? dzzencode('attach::' . $data['aid']) : $data['dpath']; //$data['like']=C::t('icos_like')->fetch_by_icoid_uid($icoid,$data['uid']); //获取sperm if (!$data['sperm']) { $data['sperm'] = perm_FileSPerm::typePower($data['type'], $data['ext']); } //if(!empty($data)) $this->store_cache('parse_'.$icoid, $data); //} return $data; }
function dzz_desktop_init() { global $_G; //建立用户设置主表 $userconfig = array('uid' => $_G['uid'], 'applist' => array(), 'screenlist' => array(), 'docklist' => array(), 'dateline' => $_G['timestamp'], 'updatetime' => $_G['timestamp'], 'wins' => serialize(array()), 'perm' => 0, 'iconview' => $_G['setting']['desktop_default']['iconview'] ? $_G['setting']['desktop_default']['iconview'] : 2, 'taskbar' => $_G['setting']['desktop_default']['taskbar'] ? $_G['setting']['desktop_default']['taskbar'] : 'bottom', 'iconposition' => intval($_G['setting']['desktop_default']['iconposition']), 'direction' => intval($_G['setting']['desktop_default']['direction'])); //初始化默认目录 dzz_default_folder_init(); if ($_G['uid'] > 0) { //创建机构部门的快捷方式; dzz_organization_shortcut(); } /*else{ $userconfig['iconview']=1; $userconfig['iconposition']=4; $userconfig['direction']=1; }*/ //添加默认数据 include DZZ_ROOT . './dzz/defaultdata.php'; //处理默认目录 if ($_G['uid'] > 0) { //游客不生成默认目录到桌面 foreach (C::t('folder')->fetch_all_default_by_uid($_G['uid']) as $value) { $type = str_replace('m:', '', $value['default']); $pfid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='{$type}'"); $sperm = perm_FileSPerm::flagPower($value['flag']); if ($icoid = DB::result_first("select icoid from " . DB::table('icos') . " where uid='{$_G[uid]}' and oid='{$value[fid]}' and flag='{$value[flag]}' and type='folder'")) { C::t('icos')->update($icoid, array('pfid' => $pfid, 'sperm' => $sperm)); if ($type == 'desktop') { $userconfig['screenlist'][] = $icoarr['icoid']; } elseif ($type == 'dock') { $userconfig['docklist'][] = $icoarr['icoid']; } } else { $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $value['fid'], 'name' => $value['fname'], 'type' => 'folder', 'flag' => $value['flag'], 'dateline' => $_G['timestamp'], 'pfid' => $pfid, 'sperm' => $sperm); if ($icoarr['icoid'] = C::t('icos')->insert($icoarr, 1)) { if ($type == 'desktop') { $userconfig['screenlist'][] = $icoarr['icoid']; } elseif ($type == 'dock') { $userconfig['docklist'][] = $icoarr['icoid']; } //addtoconfig($icoarr); } } } } //处理理默认应用; $apps = C::t('app_market')->fetch_all_by_default($_G['uid']); foreach ($apps as $appid => $app) { $userconfig['applist'][] = $appid; if ($app['position'] == 1) { continue; } elseif ($app['position'] == 2) { //桌面 $fid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='desktop'"); } else { //dock条 $fid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='dock'"); } if (!$fid) { continue; } if ($icoid = DB::result_first("select icoid from " . DB::table('icos') . " where uid='{$_G[uid]}' and oid='{$appid}' and type='app'")) { C::t('icos')->update($icoid, array('pfid' => $fid, 'isdelete' => 0)); if ($app['position'] == 2) { $userconfig['screenlist'][] = $icoid; } else { $userconfig['docklist'][] = $icoid; } } else { $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $appid, 'name' => '', 'type' => 'app', 'dateline' => $_G['timestamp'], 'pfid' => $fid, 'ext' => '', 'size' => 0); if ($icoarr['icoid'] = C::t('icos')->insert($icoarr, 1)) { if ($app['position'] == 2) { $userconfig['screenlist'][] = $icoarr['icoid']; } else { $userconfig['docklist'][] = $icoarr['icoid']; } } } } $userconfig['applist'] = $userconfig['applist'] ? implode(',', $userconfig['applist']) : ''; $userconfig['screenlist'] = $userconfig['screenlist'] ? implode(',', $userconfig['screenlist']) : ''; $userconfig['docklist'] = $userconfig['docklist'] ? implode(',', $userconfig['docklist']) : ''; if ($_G['uid']) { C::t('user_field')->insert($userconfig, false, true); if ($userconfig['applist']) { C::t('app_user')->insert_by_uid($_G['uid'], $userconfig['applist'], 1); } return C::t('user_field')->fetch($_G['uid']); } else { return $userconfig; } }