diff --git a/html/setup.php b/html/setup.php index 3b4271ae4398851c7851b50d35c7bd6688fc4708..ecac7101859b2ea39a7ae7ffe3ef91ff05f765d6 100644 --- a/html/setup.php +++ b/html/setup.php @@ -101,6 +101,8 @@ if (!session::global_is_set('config')) { $config = session::global_get('config'); load_plist(FALSE); IconTheme::loadThemes('themes'); +/* Fake user bypassing acl system */ +$ui = new fake_userinfo(); /* Call setup */ $display = ""; require_once("../setup/main.inc"); diff --git a/setup/class_setup.inc b/setup/class_setup.inc index 086b42ee7b2c9c173ad6626d6eb910c7b649c11d..7e92a630c123c7480f8ab19aa2d7fa2abc9e672a 100644 --- a/setup/class_setup.inc +++ b/setup/class_setup.inc @@ -22,6 +22,25 @@ require_once("class_setupStep.inc"); +class fake_userinfo extends userinfo +{ + function __construct() + { + global $config; + $this->config = &$config; + + $this->cn = 'fake_cn'; + $this->dn = 'fake_dn'; + $this->uid = 'fake_uid'; + $this->ip = $_SERVER['REMOTE_ADDR']; + + /* This fake user have all rights */ + $this->ignoreACL = TRUE; + + /* Initialize ACL_CACHE */ + $this->reset_acl_cache(); + } +} class setup { diff --git a/setup/class_setupStep.inc b/setup/class_setupStep.inc index 21af134c912aeb85acbedaf88e3ab8ef3977a61b..6756ec225b755388c81c2c4d16023e4855c2ec15 100644 --- a/setup/class_setupStep.inc +++ b/setup/class_setupStep.inc @@ -102,32 +102,6 @@ class setupStep extends simplePlugin return $tmp; } - /* bypass acl system as there is no user login */ - function acl_is_writeable($attribute, $skip_write = FALSE) - { - return TRUE; - } - function acl_is_readable($attribute) - { - return TRUE; - } - function acl_is_createable($base = "") - { - return TRUE; - } - function acl_is_removeable($base = "") - { - return TRUE; - } - function acl_is_moveable($base = "") - { - return TRUE; - } - function getacl($attribute, $skip_write = FALSE) - { - return 'cmdrw'; - } - /* bypass LDAP loading */ protected function loadAttributes() { diff --git a/setup/class_setupStep_Migrate.inc b/setup/class_setupStep_Migrate.inc index efb42d220d891e5812a4eafb4f0308deb48c55cd..7b1d4b106f89ece8bdd82e574d74d0181447b087 100644 --- a/setup/class_setupStep_Migrate.inc +++ b/setup/class_setupStep_Migrate.inc @@ -968,6 +968,8 @@ class Step_Migrate extends setupStep $dn = 'cn='.$role['cn'].','.get_ou('aclRoleRDN').$config->current['BASE']; $ldap->cat($dn); if ($ldap->count() == 0) { + $ldap->cd($config->current['BASE']); + $ldap->create_missing_trees(get_ou('aclRoleRDN').$config->current['BASE']); $ldap->cd($dn); $ldap->add($role); if (!$ldap->success()) { @@ -975,7 +977,7 @@ class Step_Migrate extends setupStep _('Migration error'), sprintf( _('Cannot add ACL role "%s":').'<br/><br/><i>%s</i>', - LDAP::fix($roledn), $ldap->get_error() + LDAP::fix($dn), $ldap->get_error() ), ERROR_DIALOG );