Horde: Unterschied zwischen den Versionen

Aus crazylinux.de
Zur Navigation springen Zur Suche springen
(upgrade)
Zeile 16: Zeile 16:
Workaround:
Workaround:


<source lang="php">#Horde/Auth/Http.php
<source lang="php">#/usr/share/php/Horde/Auth/Http.php
#beginning of _authenticate()
#beginning of _authenticate()
         #return true if htpasswd-file is empty and transparent is working, no need to check more
         #return true if htpasswd-file is empty and transparent is working, no need to check more

Version vom 23. April 2015, 21:19 Uhr

Horde ist ein PHP-Framework für Webapplikationen. Darüber hinaus gibt es bereits fertige Apps, wie z.b. Webmail IMP

Upgrade

upgrade is done via pear

#as root
umask 022
pear upgrade

then check for bug (BasicAuth and ActiveSync) below

Known Bugs

BasicAuth and ActiveSync

If BasicAuth is used for Authentication, ActiveSync is not working. See http://bugs.horde.org/ticket/11801

Workaround:

#/usr/share/php/Horde/Auth/Http.php
#beginning of _authenticate()
         #return true if htpasswd-file is empty and transparent is working, no need to check more
         if (empty($this->_params['htpasswd_file']) && $this->transparent()) {
                 return true;
         }

Pear Error

If you get the error "CRITICAL ERROR: Registry could not be initialized from any value" the rights are probably wrong. E.g. /usr/share/php or /usr/share/php//usr/share/php/.registry must be readable/executable by e.g. webserver account www-data.

Module

Emailfilter/Ingo

Dovecot bringt einen Sieve-Filter-Server mit, diesen kann man mit Horde nutzen: http://www.radnerd.de/artikel/vom-radsport/2013/02/sieve-mit-dovecot-und-horde-5-ingo.html

Für einen Defaultfilter gibt es ein Hook (horde/config/hooks.php)

<?php

   public function transport_auth($driver)
    {
        switch ($driver) {
        case 'timsieved':
            // Example #1: Use full Horde username for password.
            return array('euser' => $GLOBALS['registry']->getAuth(null), 'username' => $GLOBALS['registry']->getAuth(null));

            // Example #2: Use IMP password/username.
            //$ob = $GLOBALS['registry']->call('mail/imapOb');
            //return array(
            //    'password' => $ob->getParam('password'),
            //    'username' => $ob->getParam('username')
            //);
        }

        // DEFAULT: Use hordeauth (identical to not defining hook at all).
        //return true;
    }



// filter rules
$_prefs['rules'] = array(
    'value' => 'a:5:{i:0;a:8:{s:4:"name";s:9:"move_Spam";s:7:"combine";s:1:"1";s:10:"conditions";a:1:{i:0;a:5:{s:5:"field";s:13:"X-Spam-Status";s:4:"type";i:1;s:5:"match";s:8:"contains";s:5:"value";s:3:"YES";s:4:"case";s:1:"1";}}s:6:"action";s:1:"2";s:12:"action-value";s:10:"INBOX.Spam";s:4:"stop";N;s:5:"flags";i:0;s:7:"disable";b:0;}i:1;a:2:{s:4:"name";s:9:"Whitelist";s:6:"action";i:9;}i:2;a:3:{s:4:"name";s:8:"Vacation";s:6:"action";i:8;s:7:"disable";b:1;}i:3;a:2:{s:4:"name";s:9:"Blacklist";s:6:"action";i:7;}i:4;a:2:{s:4:"name";s:7:"Forward";s:6:"action";i:10;}}',
    'locked' => false,
    'shared' => false,
    'type' => 'implicit');
php?>

Weiterleitung/Forward

Damit der Username inkl. Domain an das Backend (ftp) weitergegeben wird, muß forward/main.php angepaßt werden:

...
// Get the current login username and realm.
#$split = explode('@', Auth::getAuth());
#$user = @$split[0];
$user = Auth::getAuth();
$realm = @$split[1];
...