コード例 #1
0
ファイル: schema.php プロジェクト: kira8565/ITOP203-ZHCN
/**
 * Helper for the global list and the details of a given class
 */
function DisplaySubclasses($oPage, $sClass, $sContext)
{
    $aChildClasses = MetaModel::EnumChildClasses($sClass);
    if (count($aChildClasses) != 0) {
        $oPage->add("<ul>\n");
        $aOrderedClasses = array();
        foreach ($aChildClasses as $sClassName) {
            // Skip indirect childs, they will be handled somewhere else
            if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) {
                $aOrderedClasses[$sClassName] = MetaModel::GetName($sClassName);
            }
        }
        // Sort on the display name
        asort($aOrderedClasses);
        foreach ($aOrderedClasses as $sClassName => $sDisplayName) {
            // Skip indirect childs, they will be handled somewhere else
            if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) {
                $oPage->add("<li class=\"open\">" . MakeClassHLink($sClassName, $sContext) . "\n");
                DisplaySubclasses($oPage, $sClassName, $sContext);
                $oPage->add("</li>\n");
            }
        }
        $oPage->add("</ul>\n");
    }
}
コード例 #2
0
 public function GetClassActionGrant($iProfile, $sClass, $sAction)
 {
     if (isset($this->m_aClassActionGrants[$iProfile][$sClass][$sAction])) {
         return $this->m_aClassActionGrants[$iProfile][$sClass][$sAction];
     }
     // Get the permission for this profile/class/action
     $oSearch = DBObjectSearch::FromOQL_AllData("SELECT URP_ActionGrant WHERE class = :class AND action = :action AND profileid = :profile AND permission = 'yes'");
     $oSet = new DBObjectSet($oSearch, array(), array('class' => $sClass, 'action' => $sAction, 'profile' => $iProfile));
     if ($oSet->Count() >= 1) {
         $oGrantRecord = $oSet->Fetch();
     } else {
         $sParentClass = MetaModel::GetParentPersistentClass($sClass);
         if (empty($sParentClass)) {
             $oGrantRecord = null;
         } else {
             $oGrantRecord = $this->GetClassActionGrant($iProfile, $sParentClass, $sAction);
         }
     }
     $this->m_aClassActionGrants[$iProfile][$sClass][$sAction] = $oGrantRecord;
     return $oGrantRecord;
 }
コード例 #3
0
 public function GetProfileActionGrant($iProfile, $sClass, $sAction)
 {
     $this->LoadActionGrantCache();
     // Note: action is forced lowercase to be more flexible (historical bug)
     $sAction = strtolower($sAction);
     if (isset($this->m_aClassActionGrants[$iProfile][$sClass][$sAction])) {
         return $this->m_aClassActionGrants[$iProfile][$sClass][$sAction];
     }
     // Recursively look for the grant record in the class hierarchy
     $sParentClass = MetaModel::GetParentPersistentClass($sClass);
     if (empty($sParentClass)) {
         $iGrant = null;
     } else {
         // Recursively look for the grant record in the class hierarchy
         $iGrant = $this->GetProfileActionGrant($iProfile, $sParentClass, $sAction);
     }
     $this->m_aClassActionGrants[$iProfile][$sClass][$sAction] = $iGrant;
     return $iGrant;
 }