HomeHelpTrac

Changeset 15893


Ignore:
Timestamp:
01/18/12 02:04:39 (4 months ago)
Author:
Alexander Trofimov
Message:

Grid - visibile_for_levels field was added to sys_objects_grid table

Location:
trunk/inc/classes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/inc/classes/BxDolAcl.php

    r15872 r15893  
    103103 
    104104        return $GLOBALS['bxDolClasses'][__CLASS__]; 
     105    } 
     106 
     107    /** 
     108     * Check if member has one of the provided membership levels 
     109     * @param $iPermissions - integer value to check permissions for, every bit is matched with some membership id 
     110     * @param $iProfileId - profile if to check, if it isn't provided or is 0 then currently loggen in profile is used. 
     111     * @return true if member has privided membership levels, or false if member hasn't. 
     112     */ 
     113    public function isMemberLevelInSet($iPermissions, $iProfileId = 0) { 
     114        if (!$iPermissions) 
     115            return false; 
     116        if (!(int)$iProfileId) 
     117            $iProfileId = 1; // TODO: get current profile id 
     118        $aACL = $this->getMemberMembershipInfo($iProfileId); 
     119        return ($iPermissions & pow(2, $aACL['id'] - 1)); 
    105120    } 
    106121 
  • trunk/inc/classes/BxDolGrid.php

    r15880 r15893  
    6767 *      - auto: use 'like' or 'fulltext', depending on 'useLikeOperator' setting option. 
    6868 * - sorting_fields: comma separated field names, which will be allowed for sorting. 
     69 * - visibile_for_levels: bit field with set of member level ids. To use member level id in bit field - the level id minus 1 as power of 2 is used, for example: 
     70 *      - user level id = 1 -> 2^(1-1) = 1 
     71 *      - user level id = 2 -> 2^(2-1) = 2 
     72 *      - user level id = 3 -> 2^(3-1) = 4 
     73 *      - user level id = 4 -> 2^(4-1) = 8 
    6974 * - override_class_name: user defined class name which is derived from BxTemplGrid. 
    7075 * - override_class_file: the location of the user defined class, leave it empty if class is located in system folders. 
     
    281286         
    282287        $o = new $sClass($aObject); 
     288         
     289        if (!$o->_isVisibleGrid($aObject)) 
     290            return false; 
    283291 
    284292        return ($GLOBALS['bxDolClasses']['BxDolGrid!'.$sObject] = $o); 
     
    407415        return str_replace(' ', '', ucwords(str_replace('_' , ' ', $s))); 
    408416    } 
     417 
     418    protected function _isVisibleGrid ($a) { 
     419        bx_import('BxDolAcl'); 
     420        return BxDolAcl::getInstance()->isMemberLevelInSet($a['visibile_for_levels']); 
     421    } 
    409422} 
    410423 
  • trunk/inc/classes/BxDolPage.php

    r15864 r15893  
    144144    }     
    145145 
    146     protected function _isVisible ($a) { 
    147         if (!$a['visibile_for_levels']) 
    148             return false; 
    149         bx_import('BxTemplAcl'); 
    150         $oACL = BxTemplAcl::getInstance(); 
    151         $iProfileId = 1; // TODO: get current profile id 
    152         $aACL = $oACL->getMemberMembershipInfo($iProfileId); 
    153         return ($a['visibile_for_levels'] & pow(2, $aACL['id'] - 1)); 
    154     } 
    155  
    156146    protected function _isVisibleBlock ($a) { 
    157         return $this->_isVisible ($a); 
     147        bx_import('BxDolAcl'); 
     148        return BxDolAcl::getInstance()->isMemberLevelInSet($a['visibile_for_levels']); 
    158149    } 
    159150 
    160151    protected function _isVisiblePage ($a) { 
    161         return $this->_isVisible ($a); 
     152        bx_import('BxDolAcl'); 
     153        return BxDolAcl::getInstance()->isMemberLevelInSet($a['visibile_for_levels']); 
    162154    } 
    163155 
Note: See TracChangeset for help on using the changeset viewer.