예제 #1
0
$total = $rows[0]['count'];
if (!$optDryRun) {
    $cli->output("{$total} policies to check... (In the progess bar, 'R' means that the policy was removed)");
} else {
    $cli->output("{$total} policies to check...");
}
if (!$optDryRun) {
    $script->setIterationData('R', '.');
    $script->resetIteration($total);
}
$limitation = array('offset' => 0, 'limit' => 100);
$db = eZDB::instance();
$modules = eZModule::globalPathList();
$removedPolicies = 0;
while (true) {
    $policies = eZPersistentObject::fetchObjectList(eZPolicy::definition(), null, null, null, $limitation, true);
    if (empty($policies)) {
        break;
    }
    foreach ($policies as $policy) {
        if ($policy->attribute('module_name') === '*') {
            continue;
        }
        $moduleExists = false;
        foreach ($modules as $module) {
            if (file_exists($module . '/' . $policy->attribute('module_name'))) {
                $moduleExists = true;
                break;
            }
        }
        if (!$moduleExists) {
예제 #2
0
 function policyList()
 {
     if (!isset($this->Policies)) {
         $sorting = array('module_name' => 'asc', 'function_name' => 'asc');
         $policies = eZPersistentObject::fetchObjectList(eZPolicy::definition(), null, array('role_id' => $this->attribute('id'), 'original_id' => 0), $sorting, null, true);
         if ($this->LimitIdentifier) {
             foreach (array_keys($policies) as $policyKey) {
                 $policies[$policyKey]->setAttribute('limit_identifier', 'User_' . $this->attribute('limit_identifier'));
                 $policies[$policyKey]->setAttribute('limit_value', $this->attribute('limit_value'));
                 $policies[$policyKey]->setAttribute('user_role_id', $this->attribute('user_role_id'));
             }
         }
         $this->Policies = $policies;
     }
     return $this->Policies;
 }
예제 #3
0
 static function fetch($policyID)
 {
     return eZPersistentObject::fetchObject(eZPolicy::definition(), null, array('id' => $policyID), true);
 }