Beispiel #1
0
 /**
  * Converts user rights mask into it's object representation
  * 
  * @param array $raw_config Raw config
  * @param array $options Associative array of options
  * @return \ConfigContainer Config object
  */
 public function objectify(array $raw_config = array(), array $options = array())
 {
     if (!isset($options['access_table'])) {
         throw new Exception('Access table not provided. Cannot find user rights config!');
     }
     $config = new ConfigContainer();
     $access_table = $options['access_table'];
     $mask = $raw_config[0];
     $len = strlen($mask);
     $bin = '';
     $result = array();
     for ($cnt = $len; $cnt > 0; $cnt--) {
         $bin = sprintf('%04b', hexdec($mask[$cnt - 1])) . $bin;
     }
     $len = strlen($bin);
     for ($cnt = $len - 1; $cnt >= 0; $cnt--) {
         if ($bin[$cnt] == '1') {
             $result[] = $len - $cnt - 1;
         }
     }
     $variables = array();
     foreach ($result as $level) {
         if ($level === 0) {
             $variables[] = new ConfigVariable('superuser', true);
         }
         if (isset($access_table[$level]['privilege'])) {
             $variables[] = new ConfigVariable($access_table[$level]['privilege'], true);
         }
     }
     $section = new ConfigSection('privileges');
     $section->addVariables($variables);
     $config->addSection($section);
     return $config;
 }
 /**
  * Converts user rights array into it's object representation
  * 
  * @param array $raw_config Raw config
  * @param array $options Associative array of options
  * @return \ConfigContainer Config object
  */
 public function objectify(array $raw_config = array(), array $options = array())
 {
     $config = new ConfigContainer();
     $rights = $raw_config[0];
     $access = AccessRights::getInstance();
     $variables = array();
     foreach ($rights as $right) {
         if ($right === 'full_access') {
             $variables[] = new ConfigVariable('superuser', true);
         }
         if ($access->checkPrivilege($right)) {
             $variables[] = new ConfigVariable($right, true);
         }
     }
     $section = new ConfigSection('privileges');
     $section->addVariables($variables);
     $config->addSection($section);
     return $config;
 }
Beispiel #3
0
 /**
  * Converts raw ui config into it's object representation
  * 
  * @param array $raw_config Raw config
  * @param array $options Associative array of options
  * @return \ConfigContainer Config object
  */
 public function objectify(array $raw_config = array(), array $options = array())
 {
     $config = new ConfigContainer();
     $sections = array();
     foreach ($raw_config as $section_variable) {
         $section_name = $section_variable['section'];
         $variable_name = $section_variable['var'];
         $variable_value = $section_variable['value'];
         $variable_comment = $section_variable['description'];
         $variable = new ConfigVariable($variable_name, $variable_value, $variable_comment);
         if (isset($sections[$section_name])) {
             $sections[$section_name][] = $variable;
         } else {
             $sections[$section_name] = array($variable);
         }
     }
     foreach ($sections as $section_name => $section_variables) {
         $section = new ConfigSection($section_name);
         $section->addVariables($section_variables);
         $config->addSection($section);
     }
     return $config;
 }