[horde] H5.2 & IMP 6.2.6 list user capability is "true" wrongly
Steffen
skhorde at smail.inf.fh-bonn-rhein-sieg.de
Thu Jan 22 13:33:08 UTC 2015
On Wed, 21 Jan 2015, Steffen wrote:
> 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.
the script in services/shares/edit.php
$app = $vars->app;
$shares = $injector->getInstance('Horde_Core_Factory_Share')->create($app);
$groups = $injector->getInstance('Horde_Group');
$auth = $injector->getInstance('Horde_Core_Factory_Auth')->create();
$help = $registry->hasMethod('shareHelp', $app)
? $registry->callByPackage($app, 'shareHelp')
: null;
calls
new Horde_Core_Auth_Application ('imp') once,
then new Horde_Core_Auth_Application ('horde'),
but there is no call to imp's _init().
--
Steffen
More information about the horde
mailing list