Example #1
0
 function getPerm($fid, $bz = '', $i = 0)
 {
     global $_G;
     ///*static $i=0;
     $i++;
     if ($i > 20) {
         //防死循环,如果循环20次以上,直接退出;
         return false;
     }
     if ($folder = C::t('folder')->fetch($fid)) {
         if ($folder['gid']) {
             if (C::t('organization_admin')->ismoderator_by_uid_orgid($folder['gid'], $_G['uid'])) {
                 return perm_binPerm::getGroupPower('all');
             }
             $perm = intval($folder['perm']);
             $power = new perm_binPerm($perm);
             if ($power->isPower('flag')) {
                 //不继承,使用此权限
                 if ($_G['setting']['allowshare']) {
                     $perm = $power->delPower('share');
                 }
                 return $perm;
             } else {
                 //继承上级,查找上级
                 if ($folder['pfid'] > 0 && $folder['pfid'] != $folder['fid']) {
                     //有上级目录
                     return self::getPerm($folder['pfid'], $bz, $i);
                 } else {
                     //其他的情况使用
                     return perm_binPerm::getGroupPower('read');
                 }
             }
         } else {
             return self::getuserPerm();
         }
     } else {
         return 3;
     }
 }
Example #2
0
 function getSumByAction($action = array())
 {
     //$action==all 时返回所有的值相加
     $i = 0;
     $powerarr = self::getPowerArr();
     if ($action == 'all') {
         foreach ($powerarr as $key => $val) {
             $i += $val;
         }
     } else {
         $i = 1;
         foreach ($action as $val) {
             $i += intval($powerarr[$val]);
         }
     }
     if (getglobal('setting/allowshare')) {
         $power = new perm_binPerm($i);
         $i = $power->delPower('share');
     }
     return $i;
 }