Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Apr 2017 12:34:51 +0000 (UTC)
From:      Pietro Cerutti <gahr@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r438440 - in head/www/baikal: . files
Message-ID:  <201704131234.v3DCYpHc025259@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gahr
Date: Thu Apr 13 12:34:51 2017
New Revision: 438440
URL: https://svnweb.freebsd.org/changeset/ports/438440

Log:
  www/baikal: import IMAP auth backend from sabre/dav master
  
  To authenticate against an IMAP server, you'll need to:
  
  1) Change the authBackend in Core/Frameworks/Baikal/Core/Server.php:135 to
     $authBackend = new \Sabre\DAV\Auth\Backend\IMAP(IMAP_OPEN);
  
  2) Set the IMAP_OPEN configuration entry in Specific/config.php, e.g.,
     define("IMAP_OPEN", '{192.168.1.1:993/imap/ssl/novalidate-cert}INBOX');
  
  Obtained from: https://github.com/fruux/sabre-dav/blob/master/lib/DAV/Auth/Backend/IMAP.php

Added:
  head/www/baikal/files/patch-vendor_sabre_dav_lib_DAV_Auth_Backend_IMAP.php   (contents, props changed)
Modified:
  head/www/baikal/Makefile
  head/www/baikal/pkg-plist

Modified: head/www/baikal/Makefile
==============================================================================
--- head/www/baikal/Makefile	Thu Apr 13 12:31:37 2017	(r438439)
+++ head/www/baikal/Makefile	Thu Apr 13 12:34:51 2017	(r438440)
@@ -3,7 +3,7 @@
 
 PORTNAME=	baikal
 PORTVERSION=	0.4.6
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	www
 MASTER_SITES=	https://github.com/fruux/Baikal/releases/download/${PORTVERSION}/
 
@@ -14,7 +14,8 @@ LICENSE=	GPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 USES=		php zip
-USE_PHP=	ctype dom filter json mbstring openssl pdo_sqlite session xml xmlreader xmlwriter
+USE_PHP=	ctype dom filter imap json mbstring openssl pdo_sqlite \
+		session xml xmlreader xmlwriter
 
 WRKSRC=		${WRKDIR}/${PORTNAME}
 NO_BUILD=	yes

Added: head/www/baikal/files/patch-vendor_sabre_dav_lib_DAV_Auth_Backend_IMAP.php
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/baikal/files/patch-vendor_sabre_dav_lib_DAV_Auth_Backend_IMAP.php	Thu Apr 13 12:34:51 2017	(r438440)
@@ -0,0 +1,82 @@
+--- /dev/null 12:27:00 UTC
++++ vendor/sabre/dav/lib/DAV/Auth/Backend/IMAP.php
+@@ -0,0 +1,79 @@
++<?php
++
++namespace Sabre\DAV\Auth\Backend;
++
++/**
++ * This is an authentication backend that uses imap.
++ *
++ * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
++ * @author Michael Niewöhner (foss@mniewoehner.de)
++ * @author rosali (https://github.com/rosali)
++ * @author Evert Pot (http://evertpot.com/)
++ * @license http://sabre.io/license/ Modified BSD License
++ */
++class IMAP extends AbstractBasic {
++
++    /**
++     * IMAP server in the form {host[:port][/flag1/flag2...]}
++     * @see http://php.net/manual/en/function.imap-open.php
++     *
++     * @var string
++     */
++    protected $mailbox;
++
++    /**
++     * Creates the backend object.
++     *
++     * @param string $mailbox
++     */
++    function __construct($mailbox) {
++
++        $this->mailbox = $mailbox;
++
++    }
++
++    /**
++     * Connects to an IMAP server and tries to authenticate
++     *
++     * @param string $username
++     * @param string $password
++     * @return bool
++     */
++    protected function imapOpen($username, $password) {
++
++        $success = false;
++
++        try {
++            $imap = imap_open($this->mailbox, $username, $password, OP_HALFOPEN | OP_READONLY, 1);
++            if ($imap)
++                $success = true;
++        } catch (\ErrorException $e) {
++            error_log($e->getMessage());
++        }
++
++        $errors = imap_errors();
++        if ($errors)
++            foreach ($errors as $error)
++                error_log($error);
++
++        if (isset($imap) && $imap)
++            imap_close($imap);
++
++        return $success;
++
++    }
++
++    /**
++     * Validates a username and password by trying to authenticate against IMAP
++     *
++     * @param string $username
++     * @param string $password
++     * @return bool
++     */
++    protected function validateUserPass($username, $password) {
++
++        return $this->imapOpen($username, $password);
++
++    }
++
++}

Modified: head/www/baikal/pkg-plist
==============================================================================
--- head/www/baikal/pkg-plist	Thu Apr 13 12:31:37 2017	(r438439)
+++ head/www/baikal/pkg-plist	Thu Apr 13 12:34:51 2017	(r438440)
@@ -376,6 +376,7 @@
 %%WWWDIR%%/vendor/sabre/dav/lib/DAV/Auth/Backend/BackendInterface.php
 %%WWWDIR%%/vendor/sabre/dav/lib/DAV/Auth/Backend/BasicCallBack.php
 %%WWWDIR%%/vendor/sabre/dav/lib/DAV/Auth/Backend/File.php
+%%WWWDIR%%/vendor/sabre/dav/lib/DAV/Auth/Backend/IMAP.php
 %%WWWDIR%%/vendor/sabre/dav/lib/DAV/Auth/Backend/PDO.php
 %%WWWDIR%%/vendor/sabre/dav/lib/DAV/Auth/Plugin.php
 %%WWWDIR%%/vendor/sabre/dav/lib/DAV/Browser/GuessContentType.php



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704131234.v3DCYpHc025259>