예제 #1
0
 protected function processPasswordSchemes($schemeArrays)
 {
     $disabledSchemes = array();
     $processedSchemes = array();
     foreach ($schemeArrays as $schemeArray) {
         $schemeArray = vB_XML_Parser::getList($schemeArray['scheme']);
         foreach ($schemeArray as $scheme) {
             //if its disbabled, just mark it and move on
             if (!empty($scheme['disabled'])) {
                 $disabledSchemes[] = $scheme['name'];
                 continue;
             }
             //makes sure we don't pick up any stray attributes from the xml file.
             $values['priority'] = isset($scheme['priority']) ? $scheme['priority'] : null;
             //duplicate schemes are not allowed, wether in one file or in many
             if (isset($processedSchemes[$scheme['name']])) {
                 throw new vB_Exception_Api(array('error_x', 'Duplicate scheme ' . $scheme['name']));
             }
             $processedSchemes[$scheme['name']] = $values;
         }
     }
     //anything that disabled should be treated as if we never saw it.
     foreach ($disabledSchemes as $disabled) {
         unset($processedSchemes[$disabled]);
     }
     return $processedSchemes;
 }