[20849] update setup
Sigurd Nes <[email protected]>
| Newsgroups | gmane.comp.web.phpgroupware.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 20849
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=20849
Author: sigurdne
Date: 2009-11-20 10:29:14 +0000 (Fri, 20 Nov 2009)
Log Message:
-----------
update setup
Modified Paths:
--------------
people/sigurdne/modules/setup/trunk/accounts.php
people/sigurdne/modules/setup/trunk/applications.php
people/sigurdne/modules/setup/trunk/config.php
people/sigurdne/modules/setup/trunk/inc/functions.inc.php
people/sigurdne/modules/setup/trunk/inc/hook_config.inc.php
people/sigurdne/modules/setup/trunk/index.php
people/sigurdne/modules/setup/trunk/lang.php
people/sigurdne/modules/setup/trunk/ldap.php
people/sigurdne/modules/setup/trunk/ldapexport.php
people/sigurdne/modules/setup/trunk/ldapimport.php
people/sigurdne/modules/setup/trunk/ldapmodify.php
people/sigurdne/modules/setup/trunk/manageheader.php
people/sigurdne/modules/setup/trunk/sqltoarray.php
people/sigurdne/modules/setup/trunk/templates/base/config.tpl
people/sigurdne/modules/setup/trunk/templates/base/head.tpl
people/sigurdne/modules/setup/trunk/templates/base/manageheader.tpl
Modified: people/sigurdne/modules/setup/trunk/accounts.php
===================================================================
--- people/sigurdne/modules/setup/trunk/accounts.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/accounts.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -2,7 +2,7 @@
/**
* Setup
*
- * @copyright Copyright (C) 2000-2008 Free Software Foundation, Inc. http://www.fsf.org/
+ * @copyright Copyright (C) 2000-2009 Free Software Foundation, Inc. http://www.fsf.org/
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @package setup
* @version $Id$
@@ -78,9 +78,9 @@
(
'common' => array
(
- 'maxmatchs' => 25,
- 'template_set' => 'idots',
- 'theme' => 'idots',
+ 'maxmatchs' => 10,
+ 'template_set' => 'portico',
+ 'theme' => 'portico',
'tz_offset' => 0,
'dateformat' => 'Y/m/d',
'lang' => substr(phpgw::get_var('ConfigLang'), 0, 2),
@@ -179,6 +179,7 @@
$GLOBALS['phpgw_info']['server']['account_repository'] = 'sql';
$GLOBALS['phpgw_info']['server']['auth_type'] = 'sql';
$GLOBALS['phpgw_info']['server']['encryption_type'] = 'ssha';
+ $GLOBALS['phpgw_info']['server']['password_level'] = 'NONALPHA';
$GLOBALS['phpgw_info']['server']['account_min_id'] = 1000;
$GLOBALS['phpgw_info']['server']['account_max_id'] = 65535;
$GLOBALS['phpgw_info']['server']['group_min_id'] = 500;
@@ -189,8 +190,10 @@
. " WHERE config_name LIKE 'ldap%' OR config_name LIKE '%_id'"
. " OR config_name = 'account_repository'"
. " OR config_name = 'auth_type'"
+ . " OR config_name = 'encryption_type'"
. " OR config_name = 'encryptkey'"
- . " OR config_name = 'encryption_type'";
+ . " OR config_name = 'password_level'"
+ . " OR config_name = 'webserver_url'";
$GLOBALS['phpgw_setup']->db->query($sql, __LINE__, __FILE__);
while ( $GLOBALS['phpgw_setup']->db->next_record() )
@@ -200,14 +203,8 @@
$GLOBALS['phpgw'] = new phpgw;
$GLOBALS['phpgw']->db =& $db;
+ $GLOBALS['phpgw']->accounts = CreateObject('phpgwapi.accounts');
$GLOBALS['phpgw']->acl = CreateObject('phpgwapi.acl');
- $GLOBALS['phpgw']->accounts = CreateObject('phpgwapi.accounts');
- //XXX Dec 08. Caeies : Fix the first admin login when using cache as files and that mcrypt is enabled
- //XXX Dec 08. Caeies : This is stolen from phpgwapi/inc/class.sessions.inc.php ... which let me think that's there's a design problem there.
- //XXX Dec 08. Caeies : If a notice or error is triggered from here ... then your config was not properly done.
- //XXX Dec 08. Caeies : note : we rely on the fact that the setup use the same session_id than the one which is used for the next session generation ... if it not the case ... then
- //XXX Dec 08. Caeies : the resulting cached string will not be able to be decoded ... hope this don't broke to much thing.
- //XXX Dec 08. Caeies : btw it's potentially risky not to encrypt the session files since the admin password is stored in clear in the cache file. no idea for shm.
$GLOBALS['phpgw']->crypto->init(array(md5(session_id() . $GLOBALS['phpgw_info']['server']['encryptkey']), $GLOBALS['phpgw_info']['server']['mcrypt_iv']));
/* Posted admin data */
@@ -219,7 +216,7 @@
$lname = phpgw::get_var('lname', 'string', 'POST');
if ( ($GLOBALS['phpgw_info']['server']['account_repository'] == 'ldap')
- && !$GLOBALS['phpgw']->accounts->ds )
+ && !$GLOBALS['phpgw']->accounts->connected )
{
echo "<strong>Error: Error connecting to LDAP server {$GLOBALS['phpgw_info']['server']['ldap_host']}</strong><br>";
exit;
@@ -227,6 +224,11 @@
$errors = validate_admin($username, $passwd, $passwd2, $fname, $lname);
+ if(in_array($username, array('admin', 'default')))
+ {
+ $errors[] = lang('That loginid has already been taken');
+ }
+
if ( !count($errors) )
{
$admin_acct = array
@@ -238,7 +240,8 @@
);
// Begin transaction for acl, etc
- $GLOBALS['phpgw_setup']->db->transaction_begin();
+ // FIXME: Conflicting transactions - there are transactions in phpgwapi_accounts_::create() and acl::save_repository()
+ //$GLOBALS['phpgw_setup']->db->transaction_begin();
// Now, clear out existing tables
$contacts_to_delete = $GLOBALS['phpgw']->accounts->get_account_with_contact();
@@ -246,6 +249,28 @@
$GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_preferences');
$GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_acl');
$GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_mapping');
+ $GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_group_map');
+ $GLOBALS['phpgw_setup']->db->query("DELETE FROM phpgw_nextid WHERE appname = 'groups' OR appname = 'accounts'");
+ $GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_contact');
+ $GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_contact_person');
+ $GLOBALS['phpgw_setup']->db->query('DELETE FROM phpgw_contact_org');
+
+ // Clean out LDAP
+ if( $GLOBALS['phpgw_info']['server']['account_repository'] == 'ldap' || $GLOBALS['phpgw_info']['server']['account_repository'] = 'sqlldap')
+ {
+ $accounts = $GLOBALS['phpgw']->accounts->get_list('accounts', -1, '', '', '',-1);
+
+ foreach ($accounts as $account)
+ {
+ $GLOBALS['phpgw']->accounts->delete($account->id);
+ }
+ $accounts = $GLOBALS['phpgw']->accounts->get_list('groups', -1, '', '', '',-1);
+ foreach ($accounts as $account)
+ {
+ $GLOBALS['phpgw']->accounts->delete($account->id);
+ }
+ }
+
$contacts = CreateObject('phpgwapi.contacts');
if(is_array($contacts_to_delete))
{
@@ -270,6 +295,13 @@
'todo'
);
+ $acls[] = array
+ (
+ 'appname' => 'preferences',
+ 'location' => 'changepassword',
+ 'rights' => 1
+ );
+
$group = array('username' => 'default');
$defaultgroupid = add_account($group, 'g', array(), $modules);
@@ -280,19 +312,10 @@
$groups = array($defaultgroupid, $admingroupid);
- try
- {
- $accountid = add_account($admin_acct, 'u', $groups, array('admin'));
- $GLOBALS['phpgw_setup']->db->transaction_commit();
-
+ $accountid = add_account($admin_acct, 'u', $groups, array('admin'), $acls);
Header('Location: index.php');
exit;
}
- catch (Exception $e )
- {
- $errors[] = $e->getMessage();
- }
- }
}
$tpl_root = $GLOBALS['phpgw_setup']->html->setup_tpl_dir('setup');
Modified: people/sigurdne/modules/setup/trunk/applications.php
===================================================================
--- people/sigurdne/modules/setup/trunk/applications.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/applications.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -1,34 +1,14 @@
<?php
/**
- * Setup - Applications Manager
+ * Setup
*
- * @author Dave Hall <[email protected]>
- * @author Others <unknown>
- * @copyright Copyright (C) 2000 - 2008 Free Software Foundation, Inc. http://www.fsf.org/
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public License v3 or later
- * @package phpgroupware
- * @subpackage setup
- * @version $Id$
+ * @copyright Copyright (C) 2000-2005 Free Software Foundation, Inc. http://www.fsf.org/
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
+ * @package setup
+ * @version $Id$
*/
/*
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
- $DEBUG = (isset($_POST['debug']) && $_POST['debug']) || (isset($_GET['debug']) && $_GET['debug']);
- /*
TODO: We allow a user to hose their setup here, need to make use
of dependencies so they are warned that they are pulling the rug
out from under other apps. e.g. if they select to uninstall the api
@@ -157,8 +137,14 @@
$install = phpgw::get_var('install', 'string', 'POST');
$upgrade = phpgw::get_var('upgrade', 'string', 'POST');
+ if( !isset($GLOBALS['phpgw_setup']->oProc) || !$GLOBALS['phpgw_setup']->oProc )
+ {
+ $GLOBALS['phpgw_setup']->process->init_process();
+ }
+
if(!empty($remove) && is_array($remove))
{
+ $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_begin();
foreach($remove as $appname => $key)
{
echo '<h3>' . lang('Processing: %1', lang($appname)) . "</h3>\n<ul>";
@@ -167,7 +153,7 @@
if ( isset($setup_info[$appname]['tables'])
&& $setup_info[$appname]['tables'] )
{
- // Tables has to be dropped in reversed order (mssql) if they are referenced by others
+ // Sigurd: Tables has to be dropped in reversed order (mssql) if they are referenced by others
$terror[0]['tables'] = array_reverse($setup_info[$appname]['tables']);
$GLOBALS['phpgw_setup']->process->droptables($terror, $DEBUG);
echo '<li>' . lang('%1 tables dropped', lang($appname)) . ".</li>\n";
@@ -186,10 +172,12 @@
$terror = $GLOBALS['phpgw_setup']->process->drop_langs($terror, $DEBUG);
echo '<li>' . lang('%1 translations removed', $appname) . ".</li>\n</ul>\n";
}
+ $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_commit();
}
if(!empty($install) && is_array($install))
{
+ $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_begin();
foreach($install as $appname => $key)
{
echo '<h3>' . lang('Processing: %1', lang($appname)) . "</h3>\n<ul>";
@@ -230,6 +218,7 @@
$terror = $GLOBALS['phpgw_setup']->process->add_langs($terror,$DEBUG,$force_en);
echo '<li>' . lang('%1 translations added', lang($appname)) . ".</li>\n</ul>\n";
}
+ $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_commit();
}
if(!empty($upgrade) && is_array($upgrade))
Modified: people/sigurdne/modules/setup/trunk/config.php
===================================================================
--- people/sigurdne/modules/setup/trunk/config.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/config.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -82,50 +82,38 @@
$GLOBALS['phpgw_setup']->loaddb();
// Guessing default values.
- $current_config['hostname'] = $_SERVER['SERVER_NAME'];
+ $GLOBALS['current_config']['hostname'] = $_SERVER['HTTP_HOST'];
// files-dir is not longer allowed in document root, for security reasons !!!
- $current_config['files_dir'] = '/outside/webserver/docroot';
+ $GLOBALS['current_config']['files_dir'] = '/outside/webserver/docroot';
if( @is_dir('/tmp') )
{
- $current_config['temp_dir'] = '/tmp';
+ $GLOBALS['current_config']['temp_dir'] = '/tmp';
}
elseif( @is_dir('C:\\TEMP') )
{
- $current_config['temp_dir'] = 'C:\\TEMP';
+ $GLOBALS['current_config']['temp_dir'] = 'C:\\TEMP';
}
else
{
- $current_config['temp_dir'] = '/path/to/temp/dir';
+ $GLOBALS['current_config']['temp_dir'] = '/path/to/temp/dir';
}
// guessing the phpGW url
$parts = explode('/',$_SERVER['PHP_SELF']);
- array_pop($parts); // config.php
- array_pop($parts); // setup
- if ( count((array) $parts) > 1)
- {
- $current_config['webserver_url'] = implode('/',$parts);
- }
- else
- {
- $http = 'http';
- if ( isset($_SERVER['HTTPS']) )
- {
- $http .= 's';
- }
- $current_config['webserver_url'] = "{$http}://{$_SERVER['HTTP_HOST']}";
- }
+ unset($parts[count($parts)-1]); // config.php
+ unset($parts[count($parts)-1]); // setup
+ $GLOBALS['current_config']['webserver_url'] = implode('/',$parts);
// Add some sane defaults for accounts
- $current_config['account_min_id'] = 1000;
- $current_config['account_max_id'] = 65535;
- $current_config['group_min_id'] = 500;
- $current_config['group_max_id'] = 999;
- $current_config['ldap_account_home'] = '/noexistant';
- $current_config['ldap_account_shell'] = '/bin/false';
- $current_config['ldap_host'] = 'localhost';
+ $GLOBALS['current_config']['account_min_id'] = 1000;
+ $GLOBALS['current_config']['account_max_id'] = 65535;
+ $GLOBALS['current_config']['group_min_id'] = 500;
+ $GLOBALS['current_config']['group_max_id'] = 999;
+ $GLOBALS['current_config']['ldap_account_home'] = '/noexistant';
+ $GLOBALS['current_config']['ldap_account_shell'] = '/bin/false';
+ $GLOBALS['current_config']['ldap_host'] = 'localhost';
- $current_config['encryptkey'] = md5(time() . $_SERVER['HTTP_HOST']); // random enough
+ $GLOBALS['current_config']['encryptkey'] = md5(time() . $_SERVER['HTTP_HOST']); // random enough
$setup_info = $GLOBALS['phpgw_setup']->detection->get_db_versions();
@@ -158,7 +146,7 @@
/* Don't erase passwords, since we also do not print them below */
if ( $value
- || (!preg_match('/(passwd|password|root_pw)/', $setting)) )
+ || (!preg_match('/passwd/', $setting) && !preg_match('/password/', $setting) && !preg_match('/root_pw/', $setting)) )
{
$GLOBALS['phpgw_setup']->db->query("DELETE FROM phpgw_config WHERE config_name='{$setting}'", __LINE__, __FILE__);
}
@@ -205,7 +193,7 @@
$GLOBALS['phpgw_setup']->db->query('SELECT * FROM phpgw_config');
while($GLOBALS['phpgw_setup']->db->next_record())
{
- $current_config[$GLOBALS['phpgw_setup']->db->f('config_name')] = $GLOBALS['phpgw_setup']->db->f('config_value');
+ $GLOBALS['current_config'][$GLOBALS['phpgw_setup']->db->f('config_name')] = $GLOBALS['phpgw_setup']->db->f('config_value');
}
// are we here because of an error: files-dir in docroot
@@ -215,7 +203,7 @@
foreach($_POST['newsettings'] as $key => $val)
{
- $current_config[$key] = $val;
+ $GLOBALS['current_config'][$key] = $val;
}
}
@@ -261,16 +249,15 @@
$setup_tpl->set_var($value, lang($newval));
break;
case 'value':
- $newval = preg_replace('/ /','_',$newval);
+ $newval = ereg_replace(' ','_',$newval);
/* Don't show passwords in the form */
- if ( !isset($current_config[$newval])
- || preg_match('/(passwd|password|root_pw)/', $value) )
+ if(ereg('passwd',$value) || ereg('password',$value) || ereg('root_pw',$value))
{
- $setup_tpl->set_var($value, '');
+ $setup_tpl->set_var($value,'');
}
else
{
- $setup_tpl->set_var($value, $current_config[$newval]);
+ $setup_tpl->set_var($value,@$current_config[$newval]);
}
break;
case 'selected':
Modified: people/sigurdne/modules/setup/trunk/inc/functions.inc.php
===================================================================
--- people/sigurdne/modules/setup/trunk/inc/functions.inc.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/inc/functions.inc.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -17,24 +17,6 @@
/* $Id$ */
- // PHP5 compat fix
- if (version_compare(phpversion(), '5.0') < 0)
- {
- eval('
- function clone($obj)
- {
- if ( method_exists($obj, "__clone") )
- {
- $new_obj = $obj;
- $new_obj->__clone();
- return $new_obj;
- }
- return $obj;
- }
- ');
- }
-
-
/**
* phpGroupWare Information level "error"
*/
@@ -277,7 +259,7 @@
case E_STRICT:
$log_args['severity'] = 'N';
$log->notice($log_args);
- echo "\n<br>" . lang('ERROR Notice: %1 in %2 at line %3', $error_msg, $error_file, $error_line) . "<br>\n"; //this will be commented in the final version
+ // echo "\n<br>" . lang('ERROR Notice: %1 in %2 at line %3', $error_msg, $error_file, $error_line) . "<br>\n"; //this will be commented in the final version
//No default, we just ignore it, for now
}
}
@@ -358,4 +340,18 @@
$GLOBALS['phpgw_info']['server']['app_images'] = 'templates/base/images';
+ if($_POST['setting']['enable_mcrypt'] == 'True')
+ {
+ $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] = true;
+ $_iv = $_POST['setting']['mcrypt_iv'];
+ $_key = $_POST['setting']['setup_mcrypt_key'];
+ }
+ else
+ {
+ $_iv = $GLOBALS['phpgw_info']['server']['mcrypt_iv'];
+ $_key = $GLOBALS['phpgw_info']['server']['setup_mcrypt_key'];
+ }
+
+ $GLOBALS['phpgw']->crypto->init(array($_key, $_iv));
+
$GLOBALS['phpgw_setup'] = CreateObject('phpgwapi.setup', True, True);
Modified: people/sigurdne/modules/setup/trunk/inc/hook_config.inc.php
===================================================================
--- people/sigurdne/modules/setup/trunk/inc/hook_config.inc.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/inc/hook_config.inc.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -2,15 +2,74 @@
/**
* Setup - configuration hook
*
- * cConfiguration hook
+ * @author Dave Hall <[email protected]>
* @author Mark Peters <[email protected]>
- * @copyright Copyright (C) 2000-2002,2005 Free Software Foundation, Inc. http://www.fsf.org/
+ * @copyright Copyright (C) 2000-2008 Free Software Foundation, Inc. http://www.fsf.org/
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
- * @package setup
+ * @package phpgroupware
+ * @subpackage setup
+ * @caegory hooks
* @version $Id$
*/
+ /*
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
/**
+ * Get a list of possible domains to be used for a session cookies
+ *
+ * @param array $config the current configuration values
+ * @return string HTML snippet with the available domain options
+ */
+ function cookie_domain($config)
+ {
+ $current_domain = '';
+ if ( isset($config['cookie_domain']) )
+ {
+ $current_domain = $config['cookie_domain'];
+ }
+
+ $available = array();
+ $domain_parts = explode('.', $_SERVER['HTTP_HOST']);
+
+ foreach ( $domain_parts as $cnt => $part )
+ {
+ $str = '.' . implode('.', $domain_parts);
+ $available[$str] = $str;
+ unset($domain_parts[$cnt]);
+ }
+
+ // give the user a sane default
+ $available[''] = lang('request fqdn');
+
+ $available = array_reverse($available, true);
+
+ $out = '';
+ foreach ( $available as $key => $domain )
+ {
+ $sel = '';
+ if ( $key == $current_domain )
+ {
+ $sel = ' selected';
+ }
+ $out .= "<option value=\"{$key}\"{$sel}>{$domain}</option>\n";
+ }
+ return $out;
+ }
+
+ /**
* Get selectbox for supported encryption algorithms selectbox
*
* @param $config
@@ -18,46 +77,46 @@
*/
function encryptalgo($config)
{
- if(@function_exists('mcrypt_list_algorithms'))
+ if ( function_exists('mcrypt_list_algorithms') )
{
$listed = array();
if(!isset($config['mcrypt_algo']))
{
- $config['mcrypt_algo'] = 'tripledes'; /* MCRYPT_TRIPLEDES */
+ $config['mcrypt_algo'] = MCRYPT_TRIPLEDES;
}
- $algos = @mcrypt_list_algorithms();
+ $algos = mcrypt_list_algorithms();
$found = False;
$out = '';
- while(list($key,$value) = each($algos))
+ foreach ( $algos as $algo )
{
$found = True;
/* Only show each once - seems this is a problem in some installs */
- if(!in_array($value,$listed))
- {
- if($config['mcrypt_algo'] == $value)
+ if ( in_array($algo, $listed) )
{
- $selected = ' selected="selected"';
+ continue;
}
- else
- {
+
$selected = '';
+ if ( $config['mcrypt_algo'] == $algo )
+ {
+ $selected = ' selected';
}
- $descr = strtoupper($value);
- $out .= '<option value="' . $value . '"' . $selected . '>' . $descr . '</option>' . "\n";
- $listed[] = $value;
- }
+ $descr = strtoupper($algo);
+
+ $out .= "<option value=\"{$algo}\"{$selected}>{$descr}</option>\n";
+ $listed[] = $algo;
}
if(!$found)
{
/* Something is wrong with their mcrypt install or php.ini */
- $out = '<option value="">' . lang('no algorithms available') . '</option>' . "\n";;
+ $out = '<option value="">' . lang('no algorithms available') . '</option>' . "\n";
}
}
else
{
- $out = '<option value="tripledes">TRIPLEDES</option>' . "\n";;
+ $out = '<option value="tripledes">TRIPLEDES</option>' . "\n";
}
return $out;
}
@@ -154,43 +213,42 @@
}
return $out;
}
-
/**
- * Get HTML select options with cookie_domain data
+ * Configureable password securitylevel
*
- * @param none
+ * @param $config
* @return string HTML select box
*/
- function cookie_domain($config)
- {
- $current = 'request_fqdn';
- if ( isset($config['cookie_domain']))
+ function passwdlevels($config)
{
- $current = $config['cookie_domain'];
- }
+ $levels = array
+ (
+ '8CHAR' => lang('at least 8 characters long'),
+ '2UPPER' => lang('..and at least 2 upper case characters'),
+ '2LOW' => lang('..and at least 2 lower case characters'),
+ '1NUM' => lang('..and contain at least 1 number'),
+ 'NONALPHA' => lang('..and at least 1 non alphanumeric character')
+ );
- $options = array('request_fqdn' => lang('Fully Qualified Domain of Request'));
-
- $domain = '';
-
- $parts = explode('.', phpgw::get_var('SERVER_NAME', 'string', 'SERVER'));
- for ( $i = count($parts) -1; $i >= 0; --$i )
+ if ( !isset($config['password_level']) )
{
- $domain .= ".{$parts[$i]}";
- $options[$domain] = $domain;
+ $config['password_level'] = 'NONALPHA';
}
+ $enc_type = $config['password_level'];
$out = '';
- foreach ( $options as $key => $option )
+ foreach ( $levels as $level => $label)
{
$selected = '';
- if ( $key == $current )
+ if ( $enc_type == $level)
{
$selected = ' selected';
}
- $out .= "<option value=\"{$key}\"{$selected}>$option</option>\n";
+ $out .= <<<HTML
+ <option value="{$level}"{$selected}>{$label}</option>";
+
+HTML;
}
return $out;
}
-
\ No newline at end of file
Modified: people/sigurdne/modules/setup/trunk/index.php
===================================================================
--- people/sigurdne/modules/setup/trunk/index.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/index.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -248,7 +248,14 @@
switch ($GLOBALS['phpgw_info']['setup']['currentver']['phpgwapi'])
{
case 'dbcreate':
+ try
+ {
$GLOBALS['phpgw_setup']->db->create_database($_POST['db_root'], $_POST['db_pass']);
+ }
+ catch (Exception $e)
+ {
+ $setup_tpl->set_var('status',$e->getMessage());
+ }
break;
case 'drop':
$setup_info = $GLOBALS['phpgw_setup']->detection->get_versions($setup_info);
@@ -338,7 +345,7 @@
$btn_config_ldap = $GLOBALS['phpgw_setup']->html->make_frm_btn_simple(
lang('LDAP account import/export'),
'POST','ldap.php',
- 'submit',lang('Configure Now'),
+ 'submit',lang('Configure LDAP accounts'),
''
);
}
Modified: people/sigurdne/modules/setup/trunk/lang.php
===================================================================
--- people/sigurdne/modules/setup/trunk/lang.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/lang.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -9,6 +9,7 @@
*/
$phpgw_info = array();
+ $error = '';
if ( !isset($included) || !$included )
{
$GLOBALS['phpgw_info']['flags'] = array
Modified: people/sigurdne/modules/setup/trunk/ldap.php
===================================================================
--- people/sigurdne/modules/setup/trunk/ldap.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/ldap.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -65,7 +65,7 @@
$setup_tpl->set_var('ldapmodify','ldapmodify.php');
$setup_tpl->set_var('ldapimport','ldapimport.php');
$setup_tpl->set_var('ldapexport','ldapexport.php');
- $setup_tpl->set_var('ldapdummy','setup_demo.php');
+ $setup_tpl->set_var('ldapdummy','accounts.php');
$setup_tpl->set_var('action_url','index.php');
$setup_tpl->set_var('cancel',lang('Cancel'));
Modified: people/sigurdne/modules/setup/trunk/ldapexport.php
===================================================================
--- people/sigurdne/modules/setup/trunk/ldapexport.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/ldapexport.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -2,18 +2,18 @@
/**
* Setup
*
- * @copyright Copyright (C) 2000-2005 Free Software Foundation, Inc. http://www.fsf.org/
+ * @copyright Copyright (C) 2000-2009 Free Software Foundation, Inc. http://www.fsf.org/
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @package setup
* @version $Id$
*/
- $phpgw_info = array();
- $phpgw_info["flags"] = array(
- 'noheader' => True,
- 'nonavbar' => True,
+ $GLOBALS['phpgw_info']['flags'] = array
+ (
+ 'noheader' => true,
+ 'nonavbar' => true,
'currentapp' => 'home',
- 'noapi' => True
+ 'noapi' => true
);
/**
@@ -29,47 +29,61 @@
}
// Does not return unless user is authorized
- //This stops timeout problems for larger conversions
- @set_time_limit(0);
/**
- * phpGroupWare class
- * @package setup
- * @ignore
+ * Add account
+ *
+ * @param array $acct Account name and other information to use
+ * @param string $type Account type: u = user | g = group
+ * @param array $groups Groups to add account to
+ * @param array $modules Modules to grant account access to
+ * @param array $acls ACLs to set for account
+ *
+ * @return integer Account ID
*/
- class phpgw
+ function add_account($acct, $type, $groups = array(), $modules = array(), $acls = array())
{
- /**
- * Common
- * @var object
- */
- var $common;
+ if ( $type == 'u' )
+ {
+ $account = new phpgwapi_user();
+ $account->id = $acct['id'];
+ $account->lid = $acct['lid'];
+ $account->firstname = $acct['firstname'];
+ $account->lastname = $acct['lastname'];
+ $account->passwd = $acct['password'];
+ $account->enabled = true;
+ $account->expires = -1;
+ $account->person_id = $acct['person_id'];
+ }
+ else
+ {
+ $account = new phpgwapi_group();
+ $account->id = $acct['id'];
+ $account->lid = $acct['lid'];
+ $account->firstname = ucfirst($acct['lid']);
+ $account->person_id = $acct['person_id'];
+ }
- /**
- * Accounts
- * @var object
- */
- var $accounts;
+ return $GLOBALS['phpgw']->accounts->create($account, $groups, $acls, $modules);
+ }
- /**
- * Applications
- * @var object
- */
- var $applications;
+
+ //This stops timeout problems for larger conversions
+ @set_time_limit(0);
/**
- * Database
- * @var object
+ * phpGroupWare class
+ * @package setup
+ * @ignore
*/
- var $db;
- }
- $phpgw = new phpgw;
- $phpgw->common = CreateObject('phpgwapi.common');
- $common = $phpgw->common;
+ $common = $GLOBALS['phpgw']->common;
$GLOBALS['phpgw_setup']->loaddb();
- $phpgw->db = $GLOBALS['phpgw_setup']->db;
+ $GLOBALS['phpgw']->db = $GLOBALS['phpgw_setup']->db;
+ $GLOBALS['phpgw']->hooks = createObject('phpgwapi.hooks');
+ $GLOBALS['phpgw']->acl = createObject('phpgwapi.acl');
+
$tpl_root = $GLOBALS['phpgw_setup']->html->setup_tpl_dir('setup');
$setup_tpl = CreateObject('phpgwapi.Template',$tpl_root);
$setup_tpl->set_file(array(
@@ -95,11 +109,6 @@
// connect to ldap server
if(!$ldap = $common->ldapConnect())
{
- $noldapconnection = True;
- }
-
- if($noldapconnection)
- {
Header('Location: config.php?error=badldapconnection');
exit;
}
@@ -109,17 +118,19 @@
while($GLOBALS['phpgw_setup']->db->next_record())
{
$i = $GLOBALS['phpgw_setup']->db->f('account_id');
- $account_info[$i]['account_id'] = $GLOBALS['phpgw_setup']->db->f('account_id');
- $account_info[$i]['account_lid'] = $GLOBALS['phpgw_setup']->db->f('account_lid');
- $account_info[$i]['account_firstname'] = $GLOBALS['phpgw_setup']->db->f('account_firstname');
- $account_info[$i]['account_lastname'] = $GLOBALS['phpgw_setup']->db->f('account_lastname');
- $account_info[$i]['account_status'] = $GLOBALS['phpgw_setup']->db->f('account_status');
- $account_info[$i]['account_expires'] = $GLOBALS['phpgw_setup']->db->f('account_expires');
+ $account_info[$i]['id'] = $GLOBALS['phpgw_setup']->db->f('account_id');
+ $account_info[$i]['lid'] = $GLOBALS['phpgw_setup']->db->f('account_lid');
+ $account_info[$i]['firstname'] = $GLOBALS['phpgw_setup']->db->f('account_firstname');
+ $account_info[$i]['lastname'] = $GLOBALS['phpgw_setup']->db->f('account_lastname');
+ $account_info[$i]['status'] = $GLOBALS['phpgw_setup']->db->f('account_status');
+ $account_info[$i]['expires'] = $GLOBALS['phpgw_setup']->db->f('account_expires');
+ $account_info[$i]['person_id'] = $GLOBALS['phpgw_setup']->db->f('person_id');
}
+ $newaccount = array();
while(list($key,$data) = @each($account_info))
{
- $tmp = $data['account_id'];
+ $tmp = $data['id'];
$newaccount[$tmp] = $data;
}
$account_info = $newaccount;
@@ -129,48 +140,47 @@
while($GLOBALS['phpgw_setup']->db->next_record())
{
$i = $GLOBALS['phpgw_setup']->db->f('account_id');
- $group_info[$i]['account_id'] = $GLOBALS['phpgw_setup']->db->f('account_id');
- $group_info[$i]['account_lid'] = $GLOBALS['phpgw_setup']->db->f('account_lid');
- $group_info[$i]['account_firstname'] = $GLOBALS['phpgw_setup']->db->f('account_firstname');
- $group_info[$i]['account_lastname'] = $GLOBALS['phpgw_setup']->db->f('account_lastname');
- $group_info[$i]['account_status'] = $GLOBALS['phpgw_setup']->db->f('account_status');
- $group_info[$i]['account_expires'] = $GLOBALS['phpgw_setup']->db->f('account_expires');
+ $group_info[$i]['id'] = $GLOBALS['phpgw_setup']->db->f('account_id');
+ $group_info[$i]['lid'] = $GLOBALS['phpgw_setup']->db->f('account_lid');
+ $group_info[$i]['firstname'] = $GLOBALS['phpgw_setup']->db->f('account_firstname');
+ $group_info[$i]['lastname'] = $GLOBALS['phpgw_setup']->db->f('account_lastname');
+ $group_info[$i]['status'] = $GLOBALS['phpgw_setup']->db->f('account_status');
+ $group_info[$i]['expires'] = $GLOBALS['phpgw_setup']->db->f('account_expires');
+ $group_info[$i]['person_id'] = $GLOBALS['phpgw_setup']->db->f('person_id');
}
-
- if($_POST['cancel'])
+ if(isset($_POST['cancel']) && $_POST['cancel'])
{
Header('Location: ldap.php');
exit;
}
- if($_POST['submit'])
+ if(isset($_POST['submit']) && $_POST['submit'])
{
- if($_POST['ldapgroups'] && is_array($_POST['ldapgroups']))
+ if(isset($_POST['ldapgroups']) && $_POST['ldapgroups'] && is_array($_POST['ldapgroups']))
{
-
+ $groups = CreateObject('phpgwapi.accounts');
foreach($_POST['ldapgroups'] as $key => $groupid)
{
$id_exist = 0;
- $thisacctid = $group_info[$groupid]['account_id'];
- $thisacctlid = $group_info[$groupid]['account_lid'];
- $thisfirstname = $group_info[$groupid]['account_firstname'];
- $thislastname = $group_info[$groupid]['account_lastname'];
- $thismembers = $group_info[$groupid]['members'];
+ $thisacctid = $group_info[$groupid]['id'];
+ $thisacctlid = $group_info[$groupid]['lid'];
+ $thisfirstname = $group_info[$groupid]['firstname'];
+ $thislastname = $group_info[$groupid]['lastname'];
+ // $thismembers = $group_info[$groupid]['members'];
+ $thisperson = $group_info[$groupid]['person_id'];
// Do some checks before we try to import the data to LDAP.
if(!empty($thisacctid) && !empty($thisacctlid))
{
- $groups = CreateObject('phpgwapi.accounts',intval($thisacctid));
- $groups->db = $GLOBALS['phpgw_setup']->db;
-
+ // $groups->set_account($thisacctid, 'g');
// Check if the account is already there.
// If so, we won't try to create it again.
- $acct_exist = $acct->groupName2id($thisacctlid);
+ $acct_exist = $groups->name2id($thisacctlid);
if($acct_exist)
{
$thisacctid = $acct_exist;
}
- $id_exist = $groups->group_exists(intval($thisacctid));
+ $id_exist = $groups->exists(intval($thisacctid));
/*
echo '<br />accountid: ' . $thisacctid;
@@ -182,18 +192,20 @@
if(!$id_exist)
{
echo "<br />\nAdding Group: $thisacctlid (gid: $thisacctid)";
- $groups->create(
- array(
- 'account_type' => 'g',
- 'account_id' => $thisacctid,
- 'account_lid' => $thisacctlid,
- 'account_passwd' => 'x',
- 'account_firstname' => $thisfirstname,
- 'account_lastname' => $thislastname,
- 'account_status' => 'A',
- 'account_expires' => -1
- )
+ $thisgroup_info = array
+ (
+ 'type' => 'g',
+ 'id' => $thisacctid,
+ 'lid' => $thisacctlid,
+ // 'passwd' => 'x',
+ 'firstname' => $thisfirstname,
+ 'lastname' => $thislastname,
+ 'status' => 'A',
+ 'expires' => -1,
+ 'person_id' => $thisperson
);
+
+ add_account($thisgroup_info, 'g');
}
else
{
@@ -203,21 +215,22 @@
}
}
- if($_POST['users'] && is_array($_POST['users']))
+ if(isset($_POST['users']) && $_POST['users'] && is_array($_POST['users']))
{
+ $accounts = CreateObject('phpgwapi.accounts');
foreach($_POST['users'] as $key => $accountid)
{
$id_exist = 0; $acct_exist = 0;
- $thisacctid = $account_info[$accountid]['account_id'];
- $thisacctlid = $account_info[$accountid]['account_lid'];
- $thisfirstname = $account_info[$accountid]['account_firstname'];
- $thislastname = $account_info[$accountid]['account_lastname'];
+ $thisacctid = $account_info[$accountid]['id'];
+ $thisacctlid = $account_info[$accountid]['lid'];
+ $thisfirstname = $account_info[$accountid]['firstname'];
+ $thislastname = $account_info[$accountid]['lastname'];
+ $thisperson = $account_info[$accountid]['person_id'];
// Do some checks before we try to import the data.
if(!empty($thisacctid) && !empty($thisacctlid))
{
- $accounts = CreateObject('phpgwapi.accounts',intval($thisacctid));
- $accounts->db = $GLOBALS['phpgw_setup']->db;
+ $accounts->set_account($thisacctid, 'u');
// Check if the account is already there.
// If so, we won't try to create it again.
@@ -226,28 +239,30 @@
{
$thisacctid = $acct_exist;
}
- /* create_account handles existing accounts
+
$id_exist = $accounts->exists(intval($thisacctid));
- */
+
// If not, create it now.
- if(!$id_exist)
+ if($id_exist)
{
echo "<br />\nAdding User: $thisacctlid (uid: $thisacctid)";
- $accounts->create(
- array(
- 'account_type' => 'u',
- 'account_id' => $thisacctid,
- 'account_lid' => $thisacctlid,
- 'account_passwd' => 'x',
- 'account_firstname' => $thisfirstname,
- 'account_lastname' => $thislastname,
- 'account_status' => 'A',
- 'account_expires' => -1,
- 'homedirectory' => $config['ldap_account_home']
- . '/' . $thisacctlid,
- 'loginshell' => $config['ldap_account_shell']
- )
+ $thisaccount_info = array
+ (
+ 'type' => 'u',
+ 'id' => $thisacctid,
+ 'lid' => $thisacctlid,
+ 'password' => '12345678XXxx_&',
+ 'firstname' => $thisfirstname,
+ 'lastname' => $thislastname,
+ 'status' => 'A',
+ 'expires' => -1,
+ 'person_id' => $thisperson
+ // 'homedirectory' => $config['ldap_account_home']
+ // . '/' . $thisacctlid,
+ // 'loginshell' => $config['ldap_account_shell']
);
+
+ add_account($thisaccount_info, 'u');
}
else
{
@@ -261,13 +276,13 @@
$GLOBALS['phpgw_setup']->html->show_header('LDAP Export','','config',$ConfigDomain);
- if($error)
+ if(isset($error) && $error)
{
//echo '<br /><center><b>Error:</b> '.$error.'</center>';
$GLOBALS['phpgw_setup']->html->show_alert_msg('Error',$error);
}
- if($setup_complete)
+ if(isset($setup_complete) && $setup_complete)
{
echo '<br /><center>'.lang('Export has been completed! You will need to set the user passwords manually.').'</center>';
echo '<br /><center>'.lang('Click <a href="index.php">here</a> to return to setup.').'</center>';
@@ -283,25 +298,28 @@
$setup_tpl->set_block('ldap','submit','submit');
$setup_tpl->set_block('ldap','footer','footer');
+ $user_list = '';
while(list($key,$account) = @each($account_info))
{
- $user_list .= '<option value="' . $account['account_id'] . '">'
- . $common->display_fullname($account['account_lid'],$account['account_firstname'],$account['account_lastname'])
+ $user_list .= '<option value="' . $account['id'] . '">'
+ . $common->display_fullname($account['lid'],$account['firstname'],$account['lastname'])
. '</option>';
}
@reset($account_info);
+ $admin_list = '';
while(list($key,$account) = @each($account_info))
{
- $admin_list .= '<option value="' . $account['account_id'] . '">'
- . $common->display_fullname($account['account_lid'],$account['account_firstname'],$account['account_lastname'])
+ $admin_list .= '<option value="' . $account['id'] . '">'
+ . $common->display_fullname($account['lid'],$account['firstname'],$account['lastname'])
. '</option>';
}
+ $group_list = '';
while(list($key,$group) = @each($group_info))
{
- $group_list .= '<option value="' . $group['account_id'] . '">'
- . $group['account_lid']
+ $group_list .= '<option value="' . $group['id'] . '">'
+ . $group['lid']
. '</option>';
}
@@ -309,7 +327,7 @@
$setup_tpl->set_var('users',$user_list);
$setup_tpl->set_var('admins',$admin_list);
$setup_tpl->set_var('ldapgroups',$group_list);
- $setup_tpl->set_var('s_apps',$app_list);
+// $setup_tpl->set_var('s_apps',$app_list);
$setup_tpl->set_var('ldap_import',lang('LDAP export users'));
$setup_tpl->set_var('description',lang("This section will help you export users and groups from phpGroupWare's account tables into your LDAP tree").'.');
Modified: people/sigurdne/modules/setup/trunk/ldapimport.php
===================================================================
--- people/sigurdne/modules/setup/trunk/ldapimport.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/ldapimport.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -2,19 +2,18 @@
/**
* Setup
*
- * @copyright Copyright (C) 2000-2005 Free Software Foundation, Inc. http://www.fsf.org/
+ * @copyright Copyright (C) 2000-2009 Free Software Foundation, Inc. http://www.fsf.org/
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @package setup
* @version $Id$
*/
- $GLOBALS['phpgw_info'] = array();
$GLOBALS['phpgw_info']['flags'] = array
(
- 'noheader' => True,
- 'nonavbar' => True,
+ 'noheader' => true,
+ 'nonavbar' => true,
'currentapp' => 'home',
- 'noapi' => True
+ 'noapi' => true
);
/**
@@ -30,59 +29,51 @@
}
// Does not return unless user is authorized
- /**
- * phpGroupWare class
- * @package setup
- * @ignore
- */
- class phpgw
- {
- /**
- * Common
- * @var object
- */
- var $common;
/**
- * Accounts
- * @var object
+ * Add account
+ *
+ * @param array $acct Account name and other information to use
+ * @param string $type Account type: u = user | g = group
+ * @param array $groups Groups to add account to
+ * @param array $modules Modules to grant account access to
+ * @param array $acls ACLs to set for account
+ *
+ * @return integer Account ID
*/
- var $accounts;
+ function add_account($acct, $type, $groups = array(), $modules = array(), $acls = array())
+ {
+ $person_id = 0;
+ if ( $type == 'u' )
+ {
+ $account = new phpgwapi_user();
+ $account->id = $acct['id'];
+ $account->lid = $acct['lid'];
+ $account->firstname = $acct['firstname'];
+ $account->lastname = $acct['lastname'];
+ $account->passwd = $acct['password'];
+ $account->enabled = true;
+ $account->expires = -1;
+ }
+ else
+ {
+ $account = new phpgwapi_group();
+ $account->id = $acct['id'];
+ $account->lid = $acct['lid'];
+ $account->firstname = ucfirst($acct['lid']);
+ }
- /**
- * Applications
- * @var object
- */
- var $applications;
-
- /**
- * Database
- * @var object
- */
- var $db;
-
- /**
- * Hooks
- * @var object
- */
- var $hooks;
-
- /**
- * Access control list
- * @var object
- */
- var $acl;
+ return $GLOBALS['phpgw']->accounts->create($account, $groups, $acls, $modules);
}
- $GLOBALS['phpgw'] = new phpgw;
- $GLOBALS['phpgw']->common = CreateObject('phpgwapi.common');
+
+ $GLOBALS['phpgw_info']['server']['account_repository'] = 'sql'; // importing into sql repository
$common = $GLOBALS['phpgw']->common;
$GLOBALS['phpgw_setup']->loaddb();
$GLOBALS['phpgw']->db = $GLOBALS['phpgw_setup']->db;
$GLOBALS['phpgw']->hooks = createObject('phpgwapi.hooks');
$GLOBALS['phpgw']->acl = createObject('phpgwapi.acl');
- $GLOBALS['phpgw']->acl->db = $GLOBALS['phpgw_setup']->db;
$tpl_root = $GLOBALS['phpgw_setup']->html->setup_tpl_dir('setup');
$setup_tpl = CreateObject('phpgwapi.Template',$tpl_root);
@@ -99,7 +90,17 @@
$GLOBALS['phpgw']->applications = CreateObject('phpgwapi.applications');
$applications = $GLOBALS['phpgw']->applications;
- $GLOBALS['phpgw_setup']->db->query("SELECT config_name,config_value FROM phpgw_config WHERE config_name LIKE 'ldap%' OR config_name='account_repository'",__LINE__,__FILE__);
+ $sql = "SELECT config_name,config_value FROM phpgw_config"
+ . " WHERE config_name LIKE 'ldap%'"
+ . " OR config_name='account_repository'"
+ . " OR config_name='account_min_id'"
+ . " OR config_name='account_max_id'"
+ . " OR config_name='group_min_id'"
+ . " OR config_name='group_max_id'"
+ . " OR config_name='encryption_type'";
+
+ $GLOBALS['phpgw_setup']->db->query($sql, __LINE__,__FILE__);
+
while ($GLOBALS['phpgw_setup']->db->next_record())
{
$config[$GLOBALS['phpgw_setup']->db->f('config_name')] = $GLOBALS['phpgw_setup']->db->f('config_value');
@@ -109,8 +110,15 @@
$GLOBALS['phpgw_info']['server']['ldap_group_context'] = $config['ldap_group_context'];
$GLOBALS['phpgw_info']['server']['ldap_root_dn'] = $config['ldap_root_dn'];
$GLOBALS['phpgw_info']['server']['ldap_root_pw'] = $config['ldap_root_pw'];
- $GLOBALS['phpgw_info']['server']['account_repository'] = $config['account_repository'];
+ $GLOBALS['phpgw_info']['server']['account_min_id'] = $config['account_min_id'];
+ $GLOBALS['phpgw_info']['server']['account_max_id'] = $config['account_max_id'];
+ $GLOBALS['phpgw_info']['server']['group_min_id'] = $config['group_min_id'];
+ $GLOBALS['phpgw_info']['server']['group_max_id'] = $config['group_max_id'];
+ $GLOBALS['phpgw_info']['server']['encryption_type'] = $config['encryption_type'];
+ $GLOBALS['phpgw_info']['server']['password_level'] = '8CHAR';
+ //$GLOBALS['phpgw_info']['server']['account_repository'] = $config['account_repository'];
+
$GLOBALS['phpgw']->accounts = CreateObject('phpgwapi.accounts');
$acct = $GLOBALS['phpgw']->accounts;
@@ -120,55 +128,52 @@
// connect to ldap server
if (! $ldap = $common->ldapConnect())
{
- $noldapconnection = True;
- }
-
- if ($noldapconnection)
- {
Header('Location: config.php?error=badldapconnection');
exit;
}
$sr = ldap_search($ldap,$config['ldap_context'],'(|(uid=*))',array('sn','givenname','uid','uidnumber'));
$info = ldap_get_entries($ldap, $sr);
+
$tmp = '';
+ phpgw::import_class('phpgwapi.globally_denied');
+ $account_info = array();
for ($i=0; $i<$info['count']; ++$i)
{
- if (! $GLOBALS['phpgw_info']['server']['global_denied_users'][$info[$i]['uid'][0]])
+ if (! phpgwapi_globally_denied::user($info[$i]['uid'][0]) )
{
$tmp = $info[$i]['uidnumber'][0];
- $account_info[$tmp]['account_id'] = $info[$i]['uidnumber'][0];
- $account_info[$tmp]['account_lid'] = $info[$i]['uid'][0];
- $account_info[$tmp]['account_firstname'] = $info[$i]['givenname'][0];
- $account_info[$tmp]['account_lastname'] = $info[$i]['sn'][0];
- $account_info[$tmp]['account_passwd'] = $info[$i]['userpassword'][0];
+ $account_info[$tmp]['id'] = $info[$i]['uidnumber'][0];
+ $account_info[$tmp]['lid'] = $info[$i]['uid'][0];
+ $account_info[$tmp]['firstname'] = $info[$i]['givenname'][0];
+ $account_info[$tmp]['lastname'] = $info[$i]['sn'][0];
+ $account_info[$tmp]['password'] = isset($info[$i]['userpassword'][0]) ? $info[$i]['userpassword'][0] : '';
+ //echo 'password?';
}
}
+ $group_info = array();
if ($GLOBALS['phpgw_info']['server']['ldap_group_context'])
{
$srg = ldap_search($ldap,$config['ldap_group_context'],'(|(cn=*))',array('gidnumber','cn','memberuid'));
$info = ldap_get_entries($ldap, $srg);
+
$tmp = '';
-
for ($i=0; $i<$info['count']; ++$i)
{
- if (! $GLOBALS['phpgw_info']['server']['global_denied_groups'][$info[$i]['cn'][0]] &&
- ! $account_info[$i][$info[$i]['cn'][0]])
+ if ( isset($info[$i]['cn'][0])
+ && ! phpgwapi_globally_denied::user($info[$i]['cn'][0])
+ && ( !isset($account_info[$i][$info[$i]['cn'][0]]) || ! $account_info[$i][$info[$i]['cn'][0]]) )
{
$tmp = $info[$i]['gidnumber'][0];
- $group_info[$tmp]['account_id'] = $info[$i]['gidnumber'][0];
- $group_info[$tmp]['account_lid'] = $info[$i]['cn'][0];
+ $group_info[$tmp]['id'] = $info[$i]['gidnumber'][0];
+ $group_info[$tmp]['lid'] = $info[$i]['cn'][0];
$group_info[$tmp]['members'] = $info[$i]['memberuid'];
- $group_info[$tmp]['account_firstname'] = $info[$i]['cn'][0];
- $group_info[$tmp]['account_lastname'] = 'Group';
- }
+ $group_info[$tmp]['firstname'] = $info[$i]['cn'][0];
+ $group_info[$tmp]['lastname'] = 'Group';
}
}
- else
- {
- $group_info = array();
}
$GLOBALS['phpgw_setup']->db->query("SELECT app_name FROM phpgw_applications WHERE app_enabled!='0' AND app_enabled!='3' ORDER BY app_name",__LINE__,__FILE__);
@@ -177,13 +182,13 @@
$apps[$GLOBALS['phpgw_setup']->db->f('app_name')] = lang($GLOBALS['phpgw_setup']->db->f('app_name'));
}
- if ($_POST['cancel'])
+ if (isset($_POST['cancel']) && $_POST['cancel'])
{
Header("Location: ldap.php");
exit;
}
- if ($_POST['submit'])
+ if (isset($_POST['submit']) && $_POST['submit'])
{
if (! @count($_POST['admins']) )
{
@@ -195,24 +200,35 @@
$error .= '<br />You must select at least 1 application';
}
- if (!$error)
+ if (!isset($error) || !$error)
{
- if ( isset($_POST['ldapgroups']) && count($_POST['ldapgroups']) )
+ if ( $ldapgroups = phpgw::get_var('ldapgroups', '', 'POST') )
{
+ $modules = array
+ (
+ 'addressbook',
+ 'calendar',
+ 'email',
+ 'filemanager',
+ 'manual',
+ 'preferences',
+ 'notes',
+ 'todo'
+ );
+
foreach($ldapgroups as $key => $groupid)
{
$id_exist = 0;
- $thisacctid = $group_info[$groupid]['account_id'];
- $thisacctlid = $group_info[$groupid]['account_lid'];
- $thisfirstname = $group_info[$groupid]['account_firstname'];
- $thislastname = $group_info[$groupid]['account_lastname'];
+ $thisacctid = $group_info[$groupid]['id'];
+ $thisacctlid = $group_info[$groupid]['lid'];
+ $thisfirstname = $group_info[$groupid]['firstname'];
+ $thislastname = $group_info[$groupid]['lastname'];
$thismembers = $group_info[$groupid]['members'];
// Do some checks before we try to import the data.
- if (!empty($thisacctid) && !empty($thisacctlid))
+ if ($thisacctid > 0 && !empty($thisacctlid))
{
$groups = CreateObject('phpgwapi.accounts',intval($thisacctid));
- $groups->db = $GLOBALS['phpgw_setup']->db;
// Check if the account is already there.
// If so, we won't try to create it again.
@@ -227,16 +243,18 @@
if(!$id_exist)
{
$thisgroup_info = array(
- 'account_type' => 'g',
- 'account_lid' => $thisacctlid,
- 'account_passwd' => $passwd,
- 'account_firstname' => $thisfirstname,
- 'account_lastname' => $thislastname,
- 'account_status' => 'A',
- 'account_expires' => -1
+ 'type' => 'g',
+ 'id' => $thisacctid,
+ 'lid' => $thisacctlid,
+ // 'passwd' => $passwd,
+ 'firstname' => $thisfirstname,
+ 'lastname' => $thislastname,
+ 'status' => 'A',
+ 'expires' => -1
);
- $groups->create($thisgroup_info);
- $thisacctid = $acct->name2id($thisacctlid);
+
+ add_account($thisgroup_info, 'g', array(), $modules);
+ // $thisacctid = $acct->name2id($thisacctlid);
}
// Now make them a member of this group in phpgw.
@@ -264,14 +282,10 @@
*/
if($tmpid)
{
- $GLOBALS['phpgw']->acl->acl($tmpid);
- $GLOBALS['phpgw']->acl->read();
+ $acct->add_user2group($tmpid, $thisacctid);
- $GLOBALS['phpgw']->acl->delete('phpgw_group',$thisacctid,1);
- $GLOBALS['phpgw']->acl->add('phpgw_group',$thisacctid,1);
-
+ $GLOBALS['phpgw']->acl->set_account_id($tmpid);
/* Now add the acl to let them change their password */
- $GLOBALS['phpgw']->acl->delete('preferences','changepassword',1);
$GLOBALS['phpgw']->acl->add('preferences','changepassword',1);
$GLOBALS['phpgw']->acl->save_repository();
@@ -280,8 +294,7 @@
App access is added below.
*/
$pref = CreateObject('phpgwapi.preferences',$tmpid);
- $pref->db = $GLOBALS['phpgw_setup']->db;
- $pref->account_id = intval($tmpid);
+ $pref->set_account_id(intval($tmpid));
$pref->read();
@reset($_POST['s_apps']);
while (list($key,$app) = each($_POST['s_apps']))
@@ -292,15 +305,13 @@
}
}
/* Now give this group some rights */
- $GLOBALS['phpgw']->acl->acl($thisacctid);
- $GLOBALS['phpgw']->acl->read();
+ $GLOBALS['phpgw']->acl->set_account_id($thisacctid);
@reset($_POST['s_apps']);
while (list($key,$app) = each($_POST['s_apps']))
{
- $GLOBALS['phpgw']->acl->delete($app,'run',1);
$GLOBALS['phpgw']->acl->add($app,'run',1);
}
- $acl->add('preferences','changepassword', 1);
+ $GLOBALS['phpgw']->acl->add('preferences','changepassword', 1);
$GLOBALS['phpgw']->acl->save_repository();
$defaultgroupid = $thisacctid;
}
@@ -308,9 +319,9 @@
}
else
{
+ $acls = array();
/* Create the 'Default' group */
$groups = CreateObject('phpgwapi.accounts',$defaultgroupid);
- $groups->db = $GLOBALS['phpgw_setup']->db;
// Check if the group account is already there.
// If so, set our group_id to that account's id for use below.
@@ -325,30 +336,25 @@
{
$groups->delete($defaultgroupid);
}
- $thisgroup_info = array
- (
- 'account_type' => 'g',
- 'account_lid' => 'Default',
- 'account_passwd' => $passwd,
- 'account_firstname' => 'Default',
- 'account_lastname' => 'Group',
- 'account_status' => 'A',
- 'account_expires' => -1
- );
- $acct->create($thisgroup_info);
- $defaultgroupid = $acct->name2id('Default');
-
- $acl = CreateObject('phpgwapi.acl',$defaultgroupid);
- $acl->db = $GLOBALS['phpgw_setup']->db;
- $acl->set_account_id(intval($defaultgroupid));
foreach ( $_POST['s_apps'] as $app )
{
- $acl->delete($app,'run',1);
- $acl->add($app,'run',1);
+ $acls[] = array
+ (
+ 'appname' => $app,
+ 'location' => 'run',
+ 'rights' => 1
+ );
}
- $acl->add('preferences','changepassword', 1);
- $acl->save_repository();
+ $acls[] = array
+ (
+ 'appname' => 'preferences',
+ 'location' => 'changepassword',
+ 'rights' => 1
+ );
+
+ add_account(array('username' => 'default'), 'g', array(), $modules, $acls);
+
} //end default group creation
}
@@ -356,18 +362,18 @@
{
foreach($_POST['users'] as $key => $id)
{
+ $acls = array();
$id_exist = 0;
- $thisacctid = $account_info[$id]['account_id'];
- $thisacctlid = $account_info[$id]['account_lid'];
- $thisfirstname = $account_info[$id]['account_firstname'];
- $thislastname = $account_info[$id]['account_lastname'];
- $thispasswd = $account_info[$id]['account_passwd'];
+ $thisacctid = $account_info[$id]['id'];
+ $thisacctlid = $account_info[$id]['lid'];
+ $thisfirstname = $account_info[$id]['firstname'];
+ $thislastname = $account_info[$id]['lastname'];
+ $thispasswd = $account_info[$id]['password'];
// Do some checks before we try to import the data.
if (!empty($thisacctid) && !empty($thisacctlid) )
{
$accounts = CreateObject('phpgwapi.accounts',intval($thisacctid));
- $accounts->db = $GLOBALS['phpgw_setup']->db;
// Check if the account is already there.
// If so, we won't try to create it again.
@@ -381,36 +387,39 @@
if(!$id_exist)
{
$thisaccount_info = array(
- 'account_type' => 'u',
- 'account_lid' => $thisacctlid,
- 'account_passwd' => 'x',
+ 'type' => 'u',
+ 'id' => $thisacctid,
+ 'lid' => $thisacctlid,
+ 'password' => 'xxxxxxxx',
/* 'account_passwd' => $thispasswd, */
- 'account_firstname' => $thisfirstname,
- 'account_lastname' => $thislastname,
- 'account_status' => 'A',
- 'account_expires' => -1
+ 'firstname' => $thisfirstname,
+ 'lastname' => $thislastname,
+ 'status' => 'A',
+ 'expires' => -1
);
- $accounts->create($thisaccount_info);
- $thisacctid = $acct->name2id($thisacctlid);
}
// Insert default acls for this user.
// Since the group has app rights, we don't need to give users
// these rights. Instead, we make the user a member of the Default group
// below.
- $GLOBALS['phpgw']->acl->acl($thisacctid);
- $GLOBALS['phpgw']->acl->read();
// Only give them admin if we asked for them to have it.
// This is typically an exception to apps for run rights
// as a group member.
- $cnt_admins = count($_POST['admins']);
+ $admins = phpgw::get_var('admins', '', 'POST');
+ $cnt_admins = count($admins);
+
for ($a = 0; $a < $cnt_admins; ++$a)
{
if ($admins[$a] == $thisacctlid)
{
- $GLOBALS['phpgw']->acl->delete('admin','run',1);
- $GLOBALS['phpgw']->acl->add('admin','run',1);
+ $acls[] = array
+ (
+ 'appname' => 'admin',
+ 'location' => 'run',
+ 'rights' => 1
+ );
}
}
@@ -423,27 +432,28 @@
if($defaultgroupid)
{
- $GLOBALS['phpgw']->acl->delete('phpgw_group',$defaultgroupid,1);
- $GLOBALS['phpgw']->acl->add('phpgw_group',$defaultgroupid,1);
+ $groups = array($defaultgroupid);
}
-
+ if(!$id_exist)
+ {
+ $thisacctid = add_account($thisaccount_info, 'u', $groups, array('admin'), $acls);
+ }
// Save these new acls.
- $GLOBALS['phpgw']->acl->save_repository();
}
}
}
- $setup_complete = True;
+ $setup_complete = true;
}
$GLOBALS['phpgw_setup']->html->show_header('LDAP Import','','config',$_COOKIE['ConfigDomain']);
- if ($error)
+ if (isset($error) && $error)
{
//echo '<br /><center><b>Error:</b> '.$error.'</center>';
$GLOBALS['phpgw_setup']->html->show_alert_msg('Error',$error);
}
- if ($setup_complete)
+ if (isset($setup_complete) && $setup_complete)
{
echo '<br /><center>'.lang('Import has been completed!').' '.lang('Click <a href="index.php">here</a> to return to setup.').'</center>';
$GLOBALS['phpgw_setup']->html->show_footer();
@@ -458,28 +468,32 @@
$setup_tpl->set_block('ldap','submit','submit');
$setup_tpl->set_block('ldap','footer','footer');
+ $user_list = '';
while (list($key,$account) = each($account_info))
{
- $user_list .= '<option value="' . $account['account_id'] . '">'
- . $common->display_fullname($account['account_lid'],$account['account_firstname'],$account['account_lastname'])
+ $user_list .= '<option value="' . $account['id'] . '">'
+ . $common->display_fullname($account['lid'],$account['firstname'],$account['lastname'])
. '</option>';
}
@reset($account_info);
+ $admin_list = '';
while (list($key,$account) = each($account_info))
{
- $admin_list .= '<option value="' . $account['account_lid'] . '">'
- . $common->display_fullname($account['account_lid'],$account['account_firstname'],$account['account_lastname'])
+ $admin_list .= '<option value="' . $account['lid'] . '">'
+ . $common->display_fullname($account['lid'],$account['firstname'],$account['lastname'])
. '</option>';
}
+ $group_list = '';
while (list($key,$group) = each($group_info))
{
- $group_list .= '<option value="' . $group['account_id'] . '">'
- . $group['account_lid']
+ $group_list .= '<option value="' . $group['id'] . '">'
+ . $group['lid']
. '</option>';
}
+ $app_list = '';
while(list($appname,$apptitle) = each($apps))
{
if($appname == 'admin' ||
Modified: people/sigurdne/modules/setup/trunk/ldapmodify.php
===================================================================
--- people/sigurdne/modules/setup/trunk/ldapmodify.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/ldapmodify.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -2,18 +2,18 @@
/**
* Setup
*
- * @copyright Copyright (C) 2000-2005 Free Software Foundation, Inc. http://www.fsf.org/
+ * @copyright Copyright (C) 2000-2009 Free Software Foundation, Inc. http://www.fsf.org/
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @package setup
* @version $Id$
*/
- $GLOBALS['phpgw_info'] = array();
- $GLOBALS['phpgw_info']['flags'] = array(
- 'noheader' => True,
- 'nonavbar' => True,
+ $GLOBALS['phpgw_info']['flags'] = array
+ (
+ 'noheader' => true,
+ 'nonavbar' => true,
'currentapp' => 'home',
- 'noapi' => True
+ 'noapi' => true
);
/**
@@ -35,34 +35,6 @@
* @package setup
* @ignore
*/
- class phpgw
- {
- /**
- * Common
- * @var object
- */
- var $common;
-
- /**
- * Accounts
- * @var object
- */
- var $accounts;
-
- /**
- * Applications
- * @var object
- */
- var $applications;
-
- /**
- * Database
- * @var object
- */
- var $db;
- }
- $GLOBALS['phpgw'] = new phpgw;
- $GLOBALS['phpgw']->common = CreateObject('phpgwapi.common');
$common =& $GLOBALS['phpgw']->common;
$GLOBALS['phpgw_setup']->loaddb();
@@ -94,10 +66,10 @@
// connect to ldap server
if (! $ldap = $common->ldapConnect())
{
- $noldapconnection = True;
+ $noldapconnection = true;
}
- if ($noldapconnection)
+ if (isset($noldapconnection))
{
Header('Location: config.php?error=badldapconnection');
exit;
@@ -109,7 +81,7 @@
for ($i=0; $i<$info['count']; ++$i)
{
- if (! $GLOBALS['phpgw_info']['server']['global_denied_users'][$info[$i]['uid'][0]])
+ if (!isset($GLOBALS['phpgw_info']['server']['global_denied_users'][$info[$i]['uid'][0]]) || !$GLOBALS['phpgw_info']['server']['global_denied_users'][$info[$i]['uid'][0]])
{
$account_info[$info[$i]['uidnumber'][0]] = $info[$i];
}
@@ -123,8 +95,8 @@
for ($i=0; $i<$info['count']; ++$i)
{
- if (! $GLOBALS['phpgw_info']['server']['global_denied_groups'][$info[$i]['cn'][0]] &&
- ! $account_info[$i][$info[$i]['cn'][0]])
+ if ((!isset($GLOBALS['phpgw_info']['server']['global_denied_groups'][$info[$i]['cn'][0]]) || !$GLOBALS['phpgw_info']['server']['global_denied_groups'][$info[$i]['cn'][0]]) &&
+ (!isset($account_info[$i][$info[$i]['cn'][0]]) || !$account_info[$i][$info[$i]['cn'][0]]))
{
$group_info[$info[$i]['gidnumber'][0]] = $info[$i];
}
@@ -151,14 +123,12 @@
$GLOBALS['phpgw_setup']->html->show_header('LDAP Modify','','config',$ConfigDomain);
- if ($_POST['submit'])
+ if (isset($_POST['submit']) && $_POST['submit'])
{
$acl = CreateObject('phpgwapi.acl');
- $acl->db = $GLOBALS['phpgw_setup']->db;
if ( isset($_POST['ldapgroups']) && count($_POST['ldapgroups']) )
{
$groups = CreateObject('phpgwapi.accounts');
- $groups->db = $GLOBALS['phpgw_setup']->db;
foreach($_POST['ldapgroups'] as $key => $groupid)
{
$id_exist = 0;
@@ -173,7 +143,7 @@
// Do some checks before we try to import the data.
if (!empty($thisacctid) && !empty($thisacctlid))
{
- $groups->account_id = intval($thisacctid);
+ $groups->set_account(intval($thisacctid));
$sr = ldap_search($ldap,$config['ldap_group_context'],'cn='.$thisacctlid);
$entry = ldap_get_entries($ldap, $sr);
@@ -197,8 +167,7 @@
// We add this here as it is mandatory
$replace['phpgwGroupID'] = $thisacctlid;
-
- $ok = ldap_mod_replace($ldap,$thisdn,$replace);
+ $ok = @ldap_mod_replace($ldap,$thisdn,$replace);
if (!$ok) // give user some feedback
{
echo lang('failed to modify: %1', $thisdn) . '<br />';
@@ -263,7 +232,7 @@
if( isset($_POST['users']) && count($_POST['users']) )
{
$accounts = CreateObject('phpgwapi.accounts');
- $accounts->db = $GLOBALS['phpgw_setup']->db;
+ // $accounts->db = $GLOBALS['phpgw_setup']->db;
foreach($_POST['users'] as $key => $id)
{
$id_exist = 0;
@@ -275,7 +244,7 @@
/* Do some checks before we try to import the data. */
if (!empty($thisacctid) && !empty($thisacctlid))
{
- $accounts->account_id = intval($thisacctid);
+ $accounts->set_account(intval($thisacctid));
$sr = ldap_search($ldap,$config['ldap_context'],'uid='.$thisacctlid);
$entry = ldap_get_entries($ldap, $sr);
reset($entry[0]['objectclass']);
@@ -358,6 +327,8 @@
This is typically an exception to apps for run rights
as a group member.
*/
+ if(isset($admins) && is_array($admins)) // Sigurd: don't seems to defined at all
+ {
for ($a=0; $a < count($admins); ++$a)
{
if ($admins[$a] == $thisacctid)
@@ -366,6 +337,7 @@
$acl->add('admin','run',1);
}
}
+ }
/* Save these new acls. */
$acl->save_repository();
}
@@ -374,13 +346,13 @@
$setup_complete = True;
}
- if ($error)
+ if (isset($error) && $error)
{
/* echo '<br /><center><b>Error:</b> '.$error.'</center>'; */
$GLOBALS['phpgw_setup']->html->show_alert_msg('Error',$error);
}
- if ($setup_complete)
+ if (isset($setup_complete) && $setup_complete)
{
echo '<br /><center>'.lang('Modifications have been completed!').' '.lang('Click <a href="index.php">here</a> to return to setup.').'<br /><center>';
$GLOBALS['phpgw_setup']->html->show_footer();
@@ -395,22 +367,26 @@
$setup_tpl->set_block('ldap','submit','submit');
$setup_tpl->set_block('ldap','footer','footer');
+ $user_list = '';
while (list($key,$account) = @each($account_info))
{
$user_list .= '<option value="' . $account['uidnumber'][0] . '">' . $account['cn'][0] . '(' . $account['uid'][0] . ')</option>';
}
@reset($account_info);
+ $admin_list = '';
while (list($key,$account) = @each($account_info))
{
$admin_list .= '<option value="' . $account['uidnumber'][0] . '">' . $account['cn'][0] . '(' . $account['uid'][0] . ')</option>';
}
+ $group_list = '';
while (list($key,$group) = @each($group_info))
{
$group_list .= '<option value="' . $group['gidnumber'][0] . '">' . $group['cn'][0] . '</option>';
}
+ $app_list = '';
while(list($appname,$apptitle) = each($apps)) // TODO: IMHO This needs to go - skwashd Jul-04
{
if($appname == 'admin' ||
Modified: people/sigurdne/modules/setup/trunk/manageheader.php
===================================================================
--- people/sigurdne/modules/setup/trunk/manageheader.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/manageheader.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -18,23 +18,37 @@
'noapi' => true
);
- // These are the system wide defaults, which will be overwritten below if the user has a valid config
- // This is the best way to prevent notices - skwashd jan08
- $GLOBALS['phpgw_info']['server']['server_root'] = realpath('../'); //'/path/to/phpgroupware';
- $GLOBALS['phpgw_info']['server']['include_root'] = realpath('../');
- $GLOBALS['phpgw_info']['server']['header_admin_password'] = '';
- $GLOBALS['phpgw_info']['server']['sessions_type'] = 'php';
- $GLOBALS['phpgw_info']['server']['db_persistent'] = false;
- $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] = false;
- $GLOBALS['phpgw_info']['server']['versions']['mcrypt'] = '';
- $GLOBALS['phpgw_info']['server']['domain_from_host'] = false;
- $GLOBALS['phpgw_info']['server']['show_domain_selectbox'] = false;
-
/**
* Include setup functions
*/
require_once('./inc/functions.inc.php');
+ srand((double)microtime()*1000000);
+ $random_char = array(
+ '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f',
+ 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
+ 'w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L',
+ 'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
+ );
+
+ if(!isset($GLOBALS['phpgw_info']['server']['mcrypt_iv']) || !$GLOBALS['phpgw_info']['server']['mcrypt_iv'])
+ {
+ $GLOBALS['phpgw_info']['server']['mcrypt_iv'] = '';
+ for($i=0; $i < 30; ++$i)
+ {
+ $GLOBALS['phpgw_info']['server']['mcrypt_iv'] .= $random_char[rand(0,count($random_char)-1)];
+ }
+ }
+
+ if(!isset($GLOBALS['phpgw_info']['server']['setup_mcrypt_key']) || !$GLOBALS['phpgw_info']['server']['setup_mcrypt_key'])
+ {
+ $GLOBALS['phpgw_info']['server']['setup_mcrypt_key'] = '';
+ for($i=0; $i < 30; ++$i)
+ {
+ $GLOBALS['phpgw_info']['server']['setup_mcrypt_key'] .= $random_char[rand(0,count($random_char)-1)];
+ }
+ }
+
//$GLOBALS['phpgw_info']['server']['versions']['current_header'] = $setup_info['phpgwapi']['versions']['current_header'];
unset($setup_info);
@@ -46,48 +60,36 @@
function check_form_values()
{
$errors = '';
+ $domains = phpgw::get_var('domains', 'string', 'POST');
+ if ( !is_array($domains) )
+ {
+ $domains = array();
+ }
- $settings = phpgw::get_var('settings', 'string', 'POST');
- $deletedomain = phpgw::get_var('deletedomain', 'string', 'POST', array());
- $domains = phpgw::get_var('domains', 'string', 'POST', array());
-
- foreach ( array_keys($domains) as $domain )
+ foreach($domains as $k => $v)
{
- if ( isset($deletedomain[$domain]) )
+ $deletedomain = phpgw::get_var('deletedomain', 'string', 'POST');
+ if ( isset($deletedomain[$k]) )
{
continue;
}
- if ( !$settings[$domain]['config_pass'] )
+ if(!$_POST['settings'][$k]['config_pass'])
{
- $errors .= '<li>' . lang('You didn\'t enter a config password for domain %1', $domain) . '</li>';
+ $errors .= '<br>' . lang("You didn't enter a config password for domain %1",$v);
}
- else if ( $settings[$domain]['config_pass'] == 'changeme' )
- {
- $errors .= '<li>' . lang('You must set a real password for domain %1, \'changeme\' is the insecure default', $domain) . '</li>';
- }
}
$setting = phpgw::get_var('setting', 'string', 'POST');
- if ( !$setting['HEADER_ADMIN_PASSWORD'] )
+ if(!$setting['HEADER_ADMIN_PASSWORD'])
{
- $errors .= '<li>' . lang('You didn\'t enter a header admin password') . '</li>';
+ $errors .= '<br>' . lang("You didn't enter a header admin password");
}
if($errors)
{
$GLOBALS['phpgw_setup']->html->show_header('Error',True);
- $lang_back = lang('go back');
- echo <<<HTML
- <h1>Whoops!</h1>
- <div class="err">
- <ul>
- $errors
- </ul>
- </div>
- <a href="javascript:back();">$lang_back</a>
-
-HTML;
+ echo $errors;
exit;
}
}
@@ -200,6 +202,7 @@
case 'write':
check_form_values();
$header_template = CreateObject('phpgwapi.Template','../');
+ $lang_continue = lang('continue');
if(is_writeable('../header.inc.php') || (!file_exists('../header.inc.php') && is_writeable('../')))
{
$newheader = $GLOBALS['phpgw_setup']->html->generate_header();
@@ -227,6 +230,7 @@
}
break;
default:
+
$GLOBALS['phpgw_setup']->html->show_header($GLOBALS['phpgw_info']['setup']['HeaderFormMSG'], False, 'header');
$detected = '';
@@ -245,7 +249,6 @@
$detected .= '<table id="manageheader">' . "\n";
-
if ( !isset($ConfigLang) || !$ConfigLang )
{
$_POST['ConfigLang'] = 'en';
@@ -285,7 +288,6 @@
{
$detected .= '<li class="warn">' . lang('No Microsoft SQL Server support found. Disabling') . "</li>\n";
}
- /* We don't currently support oracle
if (extension_loaded('oci8'))
{
$detected .= '<li>' . lang('You appear to have Oracle V8 (OCI) support enabled') . "</li>\n";
@@ -303,33 +305,32 @@
$detected .= '<li class="warn">' . lang('No Oracle-DB support found. Disabling') . "</li>\n";
}
}
- */
/* Not currently supported
if (extension_loaded('odbc') || function_exists('odbc_connect'))
{
- $detected .= lang('You appear to have ODBC/SAPDB support enabled') . '<br />' . "\n";
+ $detected .= lang('You appear to have ODBC/SAPDB support enabled') . '<br>' . "\n";
$supported_db[] = 'sapdb';
}
else
{
- $detected .= lang('No ODBC/SAPDB support found. Disabling') . '<br />' . "\n";
+ $detected .= lang('No ODBC/SAPDB support found. Disabling') . '<br>' . "\n";
}
*/
- if(!count($supported_db))
+ if ( !count($supported_db) )
{
- $lang_err_nodb = lang('Did not find any valid DB support!');
- $lang_fix_nodb = lang('Try to configure your php to support one of the above mentioned DBMS, or install phpGroupWare by hand.');
+ $lang_nodb = lang('Did not find any valid DB support!');
+ $lang_fix = lang('Try to configure your php to support one of the above mentioned DBMS, or install phpGroupWare by hand.');
$detected .= <<<HTML
- <li class="err">$lang_err_nodb</li>
+ <li class="err">$lang_nodb</li>
</ul>
+ <h2>$lang_fix</h2>
</b>
- $lang_fix_nodb
- </td>
+ <td>
</tr>
</table>
</body>
- </html>
+</html>
HTML;
die($detected);
@@ -355,26 +356,23 @@
{
$detected .= '<li class="warn">' . lang('No IMAP support found. Email functions will be disabled') . "</li>\n";
}
-
- if(extension_loaded('mcrypt') || function_exists('mcrypt_list_modes'))
+ if(extension_loaded('shmop') || function_exists('shmop_open'))
{
- $detected .= '<li>' . lang('You appear to have mcrypt support enabled') . "</li>\n";
- $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] = true;
+ $detected .= '<li>' . lang('You appear to have support for shared memory') . "</li>\n";
}
else
{
- $detected .= '<li class="warn">' . lang('No mcrypt support found. Some sensitive data may be store as plain text') . "</li>\n";
+ $detected .= '<li class="warn">' . lang('No support for shared memory found.') . "</li>\n";
}
-
- if(extension_loaded('shmop') || function_exists('shmop_open'))
+ if(extension_loaded('mcrypt') || function_exists('mcrypt_list_modes'))
{
- $detected .= '<li>' . lang('You appear to have shared memory support enabled') . "</li>\n";
+ $detected .= '<li>' . lang('You appear to have enabled support for mcrypt') . "</li>\n";
+// $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] = true;
}
else
{
- $detected .= '<li class="warn">' . lang('No SHMOP support found. Install or enable php-shmop if you want to use shared memory') . "</li>\n";
+ $detected .= '<li class="warn">' . lang('No mcrypt support found.') . "</li>\n";
}
-
if( extension_loaded('xsl') && class_exists('XSLTProcessor') )
{
$detected .= '<li>' . lang('You appear to have XML/XSLT support enabled') . "</li>\n";
@@ -414,13 +412,12 @@
}
else
{
- if ( !isset($GLOBALS['phpgw_info']['server']['header_version'])
- || !isset($GLOBALS['phpgw_info']['server']['current_header_version'])
- || $GLOBALS['phpgw_info']['server']['header_version'] != $GLOBALS['phpgw_info']['server']['current_header_version'] )
+ if( $GLOBALS['phpgw_info']['setup']['stage']['header'] == 3 )
{
$detected .= '<li class="warn">' . lang("You're using an old header.inc.php version...") . "</li>\n";
$detected .= '<li>' . lang('Importing old settings into the new format....') . "</li>\n";
}
+
reset($GLOBALS['phpgw_domain']);
$default_domain = each($GLOBALS['phpgw_domain']);
$GLOBALS['phpgw_info']['server']['default_domain'] = $default_domain[0];
@@ -442,12 +439,12 @@
$setup_tpl->set_var('lang_domain',lang('Domain'));
$setup_tpl->set_var('lang_delete',lang('Delete'));
$setup_tpl->set_var('db_domain',$key);
- $setup_tpl->set_var('db_host',$GLOBALS['phpgw_domain'][$key]['db_host']);
- $setup_tpl->set_var('db_name',$GLOBALS['phpgw_domain'][$key]['db_name']);
- $setup_tpl->set_var('db_user',$GLOBALS['phpgw_domain'][$key]['db_user']);
- $setup_tpl->set_var('db_pass',$GLOBALS['phpgw_domain'][$key]['db_pass']);
+ $setup_tpl->set_var('db_host',$GLOBALS['phpgw']->crypto->decrypt($GLOBALS['phpgw_domain'][$key]['db_host']));
+ $setup_tpl->set_var('db_name',$GLOBALS['phpgw']->crypto->decrypt($GLOBALS['phpgw_domain'][$key]['db_name']));
+ $setup_tpl->set_var('db_user',$GLOBALS['phpgw']->crypto->decrypt($GLOBALS['phpgw_domain'][$key]['db_user']));
+ $setup_tpl->set_var('db_pass',$GLOBALS['phpgw']->crypto->decrypt($GLOBALS['phpgw_domain'][$key]['db_pass']));
$setup_tpl->set_var('db_type',$GLOBALS['phpgw_domain'][$key]['db_type']);
- $setup_tpl->set_var('config_pass',$GLOBALS['phpgw_domain'][$key]['config_passwd']);
+ $setup_tpl->set_var('config_pass',$GLOBALS['phpgw']->crypto->decrypt($GLOBALS['phpgw_domain'][$key]['config_passwd']));
$selected = '';
$dbtype_options = '';
@@ -456,7 +453,7 @@
{
if ( $db == $GLOBALS['phpgw_domain'][$key]['db_type'] )
{
- $selected = ' selected ';
+ $selected = ' selected';
$found_dbtype = true;
}
else
@@ -464,10 +461,11 @@
$selected = '';
}
$dbtype_options .= <<<HTML
- <option{$selected}value="{$db}">$db</option>
+ <option{$selected} value="{$db}">$db</option>
HTML;
}
+
$setup_tpl->set_var('dbtype_options', $dbtype_options);
$setup_tpl->parse('domains','domain', true);
@@ -520,23 +518,10 @@
$setup_tpl->set_var('comment_l','<!-- ');
$setup_tpl->set_var('comment_r',' -->');
- srand((double)microtime()*1000000);
- $random_char = array(
- '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f',
- 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
- 'w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L',
- 'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
- );
-
- $GLOBALS['phpgw_info']['server']['mcrypt_iv'] = '';
- for($i=0; $i < 30; ++$i)
- {
- $GLOBALS['phpgw_info']['server']['mcrypt_iv'] .= $random_char[rand(0,count($random_char)-1)];
- }
$GLOBALS['phpgw_info']['server']['header_admin_password'] = '';
$GLOBALS['phpgw_info']['server']['db_persistent'] = false;
$GLOBALS['phpgw_info']['server']['sessions_type'] = 'php';
- $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] = extension_loaded('mcrypt');
+// $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] = extension_loaded('mcrypt');
$GLOBALS['phpgw_info']['server']['show_domain_selectbox'] = false;
$GLOBALS['phpgw_info']['server']['domain_from_host'] = false;
@@ -558,9 +543,10 @@
$setup_tpl->set_var('server_root', $GLOBALS['phpgw_info']['server']['server_root']);
$setup_tpl->set_var('include_root', $GLOBALS['phpgw_info']['server']['include_root']);
- $setup_tpl->set_var('header_admin_password', $GLOBALS['phpgw_info']['server']['header_admin_password']);
+ $setup_tpl->set_var('header_admin_password', isset($GLOBALS['phpgw_info']['server']['header_admin_password']) ? $GLOBALS['phpgw']->crypto->decrypt($GLOBALS['phpgw_info']['server']['header_admin_password']) : '');
+// $setup_tpl->set_var('header_admin_password', isset($GLOBALS['phpgw_info']['server']['header_admin_password']) ? $GLOBALS['phpgw_info']['server']['header_admin_password'] : '');
- if ( $GLOBALS['phpgw_info']['server']['db_persistent'] )
+ if ( isset($GLOBALS['phpgw_info']['server']['db_persistent']) && $GLOBALS['phpgw_info']['server']['db_persistent'] )
{
$setup_tpl->set_var('db_persistent_yes',' selected');
}
@@ -573,22 +559,20 @@
$session_options = '';
foreach ( $supported_sessions_type as $stype )
{
- if( $stype == $GLOBALS['phpgw_info']['server']['sessions_type'])
+ $selected = '';
+ if( isset($GLOBALS['phpgw_info']['server']['sessions_type'])
+ && $stype == $GLOBALS['phpgw_info']['server']['sessions_type'])
{
$selected = ' selected ';
}
- else
- {
- $selected = '';
- }
$session_options .= <<<HTML
- <option{$selected}value="{$stype}">{$stype}</option>
+ <option{$selected} value="{$stype}">{$stype}</option>
HTML;
}
$setup_tpl->set_var('session_options',$session_options);
- if ( $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] )
+ if ( isset($GLOBALS['phpgw_info']['server']['mcrypt_enabled']) && $GLOBALS['phpgw_info']['server']['mcrypt_enabled'] )
{
$setup_tpl->set_var('mcrypt_enabled_yes',' selected');
}
@@ -597,9 +581,10 @@
$setup_tpl->set_var('mcrypt_enabled_no',' selected');
}
- $setup_tpl->set_var('mcrypt',$GLOBALS['phpgw_info']['server']['versions']['mcrypt']);
$setup_tpl->set_var('mcrypt_iv',$GLOBALS['phpgw_info']['server']['mcrypt_iv']);
+ $setup_tpl->set_var('setup_mcrypt_key',$GLOBALS['phpgw_info']['server']['setup_mcrypt_key']);
+
if ( !isset($GLOBALS['phpgw_info']['server']['setup_acl']) || !$GLOBALS['phpgw_info']['server']['setup_acl'] )
{
$GLOBALS['phpgw_info']['server']['setup_acl'] = '127.0.0.1';
@@ -607,7 +592,7 @@
$setup_tpl->set_var('lang_setup_acl',lang('Limit access to setup to the following addresses or networks (e.g. 10.1.1,127.0.0.1)'));
$setup_tpl->set_var('setup_acl', $GLOBALS['phpgw_info']['server']['setup_acl']);
- if ( $GLOBALS['phpgw_info']['server']['show_domain_selectbox'] )
+ if ( isset($GLOBALS['phpgw_info']['server']['show_domain_selectbox']) && $GLOBALS['phpgw_info']['server']['show_domain_selectbox'] )
{
$setup_tpl->set_var('domain_selectbox_yes',' selected');
}
@@ -616,7 +601,7 @@
$setup_tpl->set_var('domain_selectbox_no',' selected');
}
- if ( $GLOBALS['phpgw_info']['server']['domain_from_host'] )
+ if ( isset($GLOBALS['phpgw_info']['server']['domain_from_host']) && $GLOBALS['phpgw_info']['server']['domain_from_host'] )
{
$setup_tpl->set_var('domain_from_host_yes',' selected');
}
@@ -678,6 +663,10 @@
$setup_tpl->set_var('lang_mcryptversiondescr',lang('Set this to "old" for versions < 2.4, otherwise the exact mcrypt version you use.'));
$setup_tpl->set_var('lang_mcryptiv',lang('MCrypt initialization vector'));
$setup_tpl->set_var('lang_mcryptivdescr',lang('This should be around 30 bytes in length.<br>Note: The default has been randomly generated.'));
+
+ $setup_tpl->set_var('lang_setup_mcrypt_key',lang('Enter some random text as encryption key for the setup encryption'));
+ $setup_tpl->set_var('lang_setup_mcrypt_key_descr',lang('This should be around 30 bytes in length.<br>Note: The default has been randomly generated.'));
+
$setup_tpl->set_var('lang_domselect',lang('Domain select box on login'));
$setup_tpl->set_var('lang_domain_from_host', lang('Automatically detect domain from hostname'));
$setup_tpl->set_var('lang_note_domain_from_host', lang('Note: This option will only work if show domain select box is off.'));
Modified: people/sigurdne/modules/setup/trunk/sqltoarray.php
===================================================================
--- people/sigurdne/modules/setup/trunk/sqltoarray.php 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/sqltoarray.php 2009-11-20 10:29:14 UTC (rev 20849)
@@ -41,7 +41,7 @@
$setup_tpl->set_file(array(
'sqlarr' => 'arraydl.tpl'
));
- $setup_tpl->set_var('idstring',"/* \$Id" . ": tables_current.inc.php" . ",v 1.0" . " 2001/05/28 08:42:04 username " . "Exp \$ */");
+ $setup_tpl->set_var('idstring',"/* \$Id" . ": tables_current.inc.php" . ",v 1.0 " . @date('Y/m/d',time()) . " username " . "Exp \$ */");
$setup_tpl->set_block('sqlarr','sqlheader','sqlheader');
$setup_tpl->set_block('sqlarr','sqlbody','sqlbody');
$setup_tpl->set_block('sqlarr','sqlfooter','sqlfooter');
@@ -101,24 +101,34 @@
if (count($fk) > 1)
{
- $GLOBALS['setup_tpl']->set_var('fks', "\n\t\t\t\t'" . implode(",\n\t\t\t\t'",$fk) );
+ $GLOBALS['setup_tpl']->set_var('fks', "\n\t\t\t\t" . implode(",\n\t\t\t\t",$fk) );
}
elseif($fk && !empty($fk))
{
- $GLOBALS['setup_tpl']->set_var('fks', "'" . $fk[0]);
+ $GLOBALS['setup_tpl']->set_var('fks', $fk[0]);
}
else
{
$GLOBALS['setup_tpl']->set_var('fks','');
}
-
if (count($ix) > 1)
{
- $GLOBALS['setup_tpl']->set_var('ixs', implode(",",$ix));
+ foreach($ix as $entry)
+ {
+ if(count($entry) > 1)
+ {
+ $ix_temp[] = "array('" . implode("','",$entry) . "')";
+ }
+ else
+ {
+ $ix_temp[] = "array('{$entry}')";
+ }
+ }
+ $GLOBALS['setup_tpl']->set_var('ixs', implode(",",$ix_temp));
}
elseif($ix && !empty($ix))
{
- $GLOBALS['setup_tpl']->set_var('ixs', $ix[0]);
+ $GLOBALS['setup_tpl']->set_var('ixs', "'{$ix[0]}'");
}
else
{
Modified: people/sigurdne/modules/setup/trunk/templates/base/config.tpl
===================================================================
--- people/sigurdne/modules/setup/trunk/templates/base/config.tpl 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/templates/base/config.tpl 2009-11-20 10:29:14 UTC (rev 20849)
@@ -44,12 +44,15 @@
</tr>
<tr class="row_off">
- <td>{lang_cookie_domain_for_sessions_-_if_unsure_use_request_fqdn}</td>
+ <td>{lang_cookie_domain_for_sessions_-_if_unsure_leave_empty}</td>
+ <td><input name="newsettings[cookie_domain]" value="{value_cookie_domain}"></td>
+<!--
<td>
<select name="newsettings[cookie_domain]">
{hook_cookie_domain}
</select>
</td>
+-->
</tr>
<tr class="row_on">
@@ -142,6 +145,7 @@
<select name="newsettings[account_repository]">
<option value="sql"{selected_account_repository_sql}>SQL</option>
<option value="ldap"{selected_account_repository_ldap}>LDAP</option>
+ <option value="sqlldap"{selected_account_repository_sqlldap}>SQL - replicate changes to LDAP</option>
<option value="contacts"{selected_account_repository_contacts} style="text-decoration: line-through;">Contacts - DEPRECATED</option>
</select>
</td>
@@ -211,6 +215,15 @@
</td>
</tr>
+ <tr class="row_off">
+ <td>{lang_password_password_level}:</td>
+ <td>
+ <select name="newsettings[password_level]">
+{hook_passwdlevels}
+ </select>
+ </td>
+ </tr>
+
<tr class="row_on">
<td colspan="2"> </td>
</tr>
Modified: people/sigurdne/modules/setup/trunk/templates/base/head.tpl
===================================================================
--- people/sigurdne/modules/setup/trunk/templates/base/head.tpl 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/templates/base/head.tpl 2009-11-20 10:29:14 UTC (rev 20849)
@@ -89,9 +89,8 @@
#analysis li
{
- border: 1px solid #4f8a10;
- background-color: #dff2bf;
- color: #4f8a10;
+ background-color: #cdeb8b;
+ border: 1px solid #008c00;
margin: 2px;
padding: 3px;
}
@@ -210,16 +209,14 @@
/* Extra qualifiers are used here to override definitions above */
.err, #analysis li.err
{
- background-color: #ffbaba;
- border-color: #d8000c;
- color: #d8000c;
+ border: 1px solid #f00;
+ color: #f00;
}
.warn, #analysis li.warn
{
- background-color: #fefeb3;
- border-color: #9f600;
- color: #9f6000;
+ background-color: #ff8;
+ border-color: #fc0;
}
-->
</style>
Modified: people/sigurdne/modules/setup/trunk/templates/base/manageheader.tpl
===================================================================
--- people/sigurdne/modules/setup/trunk/templates/base/manageheader.tpl 2009-11-20 10:29:01 UTC (rev 20848)
+++ people/sigurdne/modules/setup/trunk/templates/base/manageheader.tpl 2009-11-20 10:29:14 UTC (rev 20849)
@@ -47,6 +47,10 @@
<td>{lang_mcryptivdescr}</td>
</tr>
<tr>
+ <td><b>{lang_setup_mcrypt_key}</b><br><input type="text" name="setting[setup_mcrypt_key]" value="{setup_mcrypt_key}" size="40"></td>
+ <td>{lang_setup_mcrypt_key_descr}</td>
+ </tr>
+ <tr>
<td><b>{lang_domselect}</b><br>
<select name="setting[domain_selectbox]">
<option value="True"{domain_selectbox_yes}>True</option>