예제 #1
0
 public function appendToSessionCreateXML($dom_)
 {
     $environment_node = $dom_->createElement('environment');
     $environment_node->setAttribute('id', 'Novell');
     $config = $this->prefs->get('SessionManagement', 'novell');
     $dlu = $config['dlu'] == 1;
     if ($dlu) {
         $environment_node->setAttribute('dlu', 'yes');
     } else {
         $environment_node->setAttribute('server', $this->userDB->config['host']);
         $environment_node->setAttribute('tree', suffix2domain($this->userDB->config['suffix']));
         $environment_node->setAttribute('login', $_POST['login']);
         $environment_node->setAttribute('password', $_POST['password']);
     }
     $dom_->documentElement->appendChild($environment_node);
     return;
 }
 public function config2form($prefs)
 {
     $form = array();
     $config = $prefs->get('UserDB', 'ldap');
     if (isset($config['extra']['dsfw'])) {
         $default_user_branch = 'cn=Users,';
         $domain_separator = 'dc';
     } else {
         $default_user_branch = '';
         //'ou=users,';
         $domain_separator = 'o';
     }
     $config_session = $prefs->get('SessionManagement', 'novell');
     $form['host'] = '';
     if (isset($config['hosts'][0])) {
         $form['host'] = $config['hosts'][0];
     }
     $form['host2'] = '';
     if (isset($config['hosts'][1])) {
         $form['host2'] = $config['hosts'][1];
     }
     $form['domain'] = suffix2domain($config['suffix'], $domain_separator);
     // Admin login - Todo: replace by a regexp
     if ($config['login'] != '') {
         $buf = explode('=', $config['login'], 2);
         $buf = explode(',', $buf[1], 2);
         $admin_login = $buf[0];
         $admin_ou = $buf[1];
     } else {
         $admin_login = '';
         $admin_ou = '';
     }
     $uidprefix = 'cn';
     if (isset($config['match']['login'])) {
         $uidprefix = $config['match']['login'];
     }
     $form['admin_login'] = $admin_login;
     $form['admin_password'] = $config['password'];
     $form['admin_branch_ou'] = '';
     if ($config['login'] == $uidprefix . '=' . $admin_login . ',' . $default_user_branch . $config['suffix']) {
         $form['admin_branch'] = 'default';
     } else {
         $form['admin_branch'] = 'specific';
         if (str_endswith(strtoupper($admin_ou), strtoupper($config['suffix']))) {
             $admin_ou = substr($admin_ou, 0, -1 * (strlen($config['suffix']) + 1));
         }
         $buffer = explode(',', $admin_ou);
         for ($i = 0; $i < count($buffer); $i++) {
             $buf = explode('=', $buffer[$i], 2);
             if (!isset($buf[1])) {
                 break;
             }
             $buffer[$i] = $buf[1];
         }
         $form['admin_branch_ou'] = implode(',', array_reverse($buffer));
     }
     if (isset($config['extra']['dsfw'])) {
         $form['dsfw'] = 'dsfw';
     }
     if ($config_session['dlu'] == 1) {
         $form['dlu'] = 'dlu';
     }
     $buf = $prefs->get('UserGroupDB', 'enable');
     $form['user_group'] = $buf == 'sql' ? 'internal' : 'novell';
     return $form;
 }