[horde] H5.2 & IMP 6.2.6 list user capability is "true" wrongly
Steffen
skhorde at smail.inf.fh-bonn-rhein-sieg.de
Wed Jan 21 14:06:48 UTC 2015
On Wed, 21 Jan 2015, Jan Schneider wrote:
> Zitat von Steffen <skhorde at smail.inf.fh-bonn-rhein-sieg.de>:
>
>> I have configured IMP as auth backend for Horde, but I have no admin user
>> in the backend: "
>> * admin: (array) Use this if you want to enable mailbox management for
>> * administrators via Horde's user administration interface. The mailbox
>> * management gets enabled if you let IMP handle the Horde authentication
>> * the 'application' authentication driver. Your IMAP server needs to
>> * support mailbox management via IMAP commands.
>> *
>> * Do not define this value if you do not want mailbox management
>> [DEFAULT].
>> "
>>
>> I don't want mailbox management from Horde and till H5.1 & IMP 6.1.7 to
>> create new calendars and sharing anything worked without a list of users .
>>
>> Now, in webmail 5.2.4 usernames cannot be validated in the share dialogue
>> in services/shares/edit.php, because $auth->hasCapability('list') returns
>> true .
>>
>> problem 1)
>> After upgrade from IMP 6.1.7 to 6.2.6 I cannot create new calenders no
>> longer. This can be avoided by setting
>> $conf['auth']['list_users'] = 'input';
>>
>> This error is thrown: "Admin access not enabled."
>>
>> If I change in ./imp/lib/Factory/AuthImap.php:
>>
>> $admin =
>> $injector->getInstance('IMP_Factory_Imap')->create()->config->admin;
>> if (!$admin) {
>> //throw new IMP_Exception('Admin access not enabled.');
>> $admin = array(); // TODO
>> }
>>
>> I get "Listing of users is nor supported."
>>
>> problem 2)
>> sharing calendars, tasklists, notebooks and such I cannot set permission to
>> other users, because the user cannot be validated, because of this snippet
>> in edit.php:
>>
>> } elseif ($auth->hasCapability('list') &&
>> !$auth->exists($new_owner_backend)) {
>> $notification->push(sprintf(_("The user \"%s\" does not
>> exist."), $new_owner_backend), 'horde.error');
>>
>> ====
>>
>> I patched Core/Auth/Application.php to return false always:
>>
>>
>> if($capability == "list") //TODO
>> return false;
>> return in_array(strtolower($capability), $this->_appCapabilities);
>>
>> Now H5.2 behaves as H5.1.
>>
>> Did the upgrade from H5.1 to H5.2 introduced a new setting controlling this
>> capability? I did not found something in Horde nor Imp config.
>
> Bug 13808
I can access a shared calendar via CalDAV.
Imp 6.2.6 seems to include the patch in comment #3.
The capabilities at line 142 of imp/lib/Application are good:
imp/Application.php _init $auth = array (#012 1 => 'authenticate',#012 3
=> 'transparent',#012)
still, in services/shares/edit.php the call $auth->hasCapability('list')
returns true. Looks like
For testing purpose, I added the
if(empty($injector->getInstance('IMP_Factory_Imap')->create()->config->admin))
{
$this->auth = array_diff($this->auth, array('add', 'list', 'remove'));
}
to bootstrap, too, but the problem persists.
--
Steffen
More information about the horde
mailing list