Ignore:
Timestamp:
09/15/10 17:06:46 (14 years ago)
Author:
pereira.jair
Message:

Ticket #1186 - Alterado modulo administrativo do organograma p/ definir diferentes niveis de usuarios.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/workflow/inc/class.so_adminaccess.inc.php

    r3167 r3255  
    184184        function get_granted_organograms($user_id) 
    185185        { 
    186                 return $this->getUserPermissions('ORG', $user_id); 
     186                return $this->getUserPermissions('ORG', $user_id, 0); 
    187187        } 
    188188 
     
    311311        * @param string $type type of resource 
    312312        * @param integer $uid user id 
     313        * @param requiredLevel Level Required to Access. 
    313314        * @return bool 
    314315        * @access public 
    315316        */ 
    316         function getUserPermissions($type, $uid) 
     317        function getUserPermissions($type, $uid, $requiredLevel = null) 
    317318        { 
    318319                $query = " 
    319320                        SELECT 
    320                                 numvalue 
     321                                numvalue, 
     322                                nivel 
    321323                        FROM 
    322324                                egw_wf_admin_access 
     
    329331                $output = array(); 
    330332                if ($result) 
    331                         while ($row = $result->fetchRow()) 
    332                                 $output[] = $row['numvalue']; 
     333                        while ($row = $result->fetchRow()) { 
     334                                $authorized = $this->_checkLevelNumber($row['nivel'], $requiredLevel); 
     335                                if (isset($requiredLevel)) { 
     336                                        $authorized = $this->checkUserAccessToResource($type,$uid,$row['numvalue'],$requiredLevel); 
     337                                        if ($authorized) { 
     338                                                $output[] = $row['numvalue']; 
     339                                        } 
     340                                } else { 
     341                                        $output[] = $row['numvalue']; 
     342                                } 
     343                        } 
    333344 
    334345                return $output; 
     
    342353         * @return array 
    343354         */ 
    344         function getUserGroupPermissions($type, $uid) 
     355        function getUserGroupPermissions($type, $uid, $requiredLevel = null) 
    345356        { 
    346357                $groups = galaxia_retrieve_user_groups($uid); 
     
    361372                $output = array(); 
    362373                if ($result) 
    363                         while ($row = $result->fetchRow()) 
    364                                 $output[] = $row['numvalue']; 
     374                        while ($row = $result->fetchRow()) { 
     375                                if (isset($requiredLevel)) { 
     376                                        //$authorized = $this->_checkLevelNumber($row['nivel'], $requiredLevel);                 
     377                                        $authorized = $this->checkUserAccessToResource($type,$uid,$row['numvalue'],$requiredLevel); 
     378                                        if ($authorized) { 
     379                                                $output[] = $row['numvalue']; 
     380                                        } 
     381                                } else { 
     382                                        $output[] = $row['numvalue']; 
     383                                } 
     384                        } 
    365385 
    366386                return $output; 
     
    376396        function checkUserAccessToType($type, $uid) 
    377397        { 
    378                 return (count($this->getUserPermissions($type, $uid)) > 0); 
     398                return (count($this->getUserPermissions($type, $uid,0)) > 0); 
    379399        } 
    380400        /** 
     
    414434 
    415435                $result = $this->db->query($query, array($type, $uid, $numvalue)); 
     436                 
    416437                $row = $result->fetchRow(); 
    417438 
    418                 if (isset($row['nivel'])) 
    419                         return $this->_checkLevelNumber($row['nivel'], $requiredLevel); 
     439                if (isset($row['nivel'])) { 
     440                        $res = $this->_checkLevelNumber($row['nivel'], $requiredLevel);          
     441                        return $res; 
     442                } 
    420443                else 
    421444                        return false; 
     
    491514        } 
    492515        /** 
    493         * Setaa o nivel de administracao 
     516        * Seta o nivel de administracao 
    494517        * 
    495518        * @param string  $type tipo de recurso 
     
    505528                        $level = $this->_permissionListToNumber($level); 
    506529 
    507                 $query = " 
    508                         UPDATE egw_wf_admin_access 
     530                $query = "UPDATE egw_wf_admin_access 
    509531                        SET 
    510532                                nivel = ? 
     
    513535                                (tipo = ?) AND 
    514536                                (numvalue = ?)"; 
    515                 $this->db->query($query, array($level, $uid, $type, $numvalue)); 
     537                $result = $this->db->query($query, array($level, $uid, $type, $numvalue)); 
     538                 
     539                return $result; 
    516540        } 
    517541 
Note: See TracChangeset for help on using the changeset viewer.