Continued reordering the package for a PEAR release.
authorGunnar Wrobel <p@rdus.de>
Wed, 29 Apr 2009 05:39:40 +0000 (07:39 +0200)
committerGunnar Wrobel <p@rdus.de>
Wed, 29 Apr 2009 05:43:55 +0000 (07:43 +0200)
32 files changed:
koward/config/.gitignore [deleted file]
koward/config/attributes.php [deleted file]
koward/config/conf.php [deleted file]
koward/config/labels.php [deleted file]
koward/config/objects.php [deleted file]
koward/config/order.php [deleted file]
koward/config/routes.php [deleted file]
koward/config/search.php [deleted file]
koward/config/visible.php [deleted file]
koward/test/AllTests.php [deleted file]
koward/test/Koward/AllTests.php [new file with mode: 0644]
koward/test/Koward/KowardTest.php [new file with mode: 0644]
koward/test/Koward/TestInit.php [new file with mode: 0644]
koward/test/KowardTest.php [deleted file]
koward/test/TestInit.php [deleted file]
koward/themes/graphics/favicon.ico [deleted file]
koward/themes/graphics/query.png [deleted file]
koward/themes/kolab/screen.css [deleted file]
koward/themes/screen.css [deleted file]
koward/www/config/.gitignore [new file with mode: 0644]
koward/www/config/attributes.php [new file with mode: 0644]
koward/www/config/conf.php [new file with mode: 0644]
koward/www/config/labels.php [new file with mode: 0644]
koward/www/config/objects.php [new file with mode: 0644]
koward/www/config/order.php [new file with mode: 0644]
koward/www/config/routes.php [new file with mode: 0644]
koward/www/config/search.php [new file with mode: 0644]
koward/www/config/visible.php [new file with mode: 0644]
koward/www/themes/graphics/favicon.ico [new file with mode: 0644]
koward/www/themes/graphics/query.png [new file with mode: 0644]
koward/www/themes/kolab/screen.css [new file with mode: 0644]
koward/www/themes/screen.css [new file with mode: 0644]

diff --git a/koward/config/.gitignore b/koward/config/.gitignore
deleted file mode 100644 (file)
index 86d3639..0000000
+++ /dev/null
@@ -1 +0,0 @@
-objects.local.php
diff --git a/koward/config/attributes.php b/koward/config/attributes.php
deleted file mode 100644 (file)
index 3a49086..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-$attributes['givenName'] = array(
-    'label' => _("First Name"),
-    'type' => 'text',
-    'required' => true,
-    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
-);
-$attributes['sn'] = array(
-    'label' => _("Last Name"),
-    'type' => 'text',
-    'required' => true,
-    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
-);
-$attributes['mail'] = array(
-    'label' => _("Mail address"),
-    'type' => 'text',
-    'required' => true,
-    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
-);
-$attributes['uid'] = array(
-    'label' => _("User ID"),
-    'type' => 'text',
-    'required' => true,
-    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
-);
diff --git a/koward/config/conf.php b/koward/config/conf.php
deleted file mode 100644 (file)
index 656621c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$conf['koward']['theme'] = 'silver';
diff --git a/koward/config/labels.php b/koward/config/labels.php
deleted file mode 100644 (file)
index a462447..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-$labels['cn'] = _("Common Name");
-$labels['kolabSalutation'] = _("Salutation");
-$labels['givenName'] = _("First Name");
-$labels['middleNames'] = _("Additional Names");
-$labels['sn'] = _("Last Name");
-$labels['snsuffix'] = _("Name Suffix");
-$labels['personalTitle'] = _("Title");
-$labels['userPassword'] = _("Password");
-$labels['telephoneNumber'] = _("Phone");
-$labels['postOfficeBox'] = _("Post Office Box");
-$labels['street'] = _("Street");
-$labels['title'] = _("Job Title");
-$labels['postalCode'] = _("Postal Code");
-$labels['facsimileTelephoneNumber'] = _("Fax");
-$labels['l'] = _("City");
-$labels['jpegPhoto'] = _("Photo");
-$labels['mail'] = _("Mail Address");
-$labels['mobile'] = _("Mobile Phone");
-$labels['homePhone'] = _("Home Phone");
-$labels['homePostalAddress'] = _("Home Postal Address");
-$labels['labeledURI'] = _("Website");
-$labels['o'] = _("Company");
-$labels['birthName'] = _("Birth Name");
-$labels['kolabMaritalStatus'] = _("Marital Status");
-$labels['dateOfBirth'] = _("Date Of Birth");
-$labels['placeOfBirth'] = _("Place Of Birth");
-$labels['gender'] = _("Gender");
-
diff --git a/koward/config/objects.php b/koward/config/objects.php
deleted file mode 100644 (file)
index 6c15803..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-
-/* $objects['object'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object', */
-/*     'label'       => _("Object"), */
-/*     'list_label'  => _("Objects"), */
-/*     'list_attributes'  => array( */
-/*         'id' => array( */
-/*             'title' => _("Object id"), */
-/*             'width' => 80, */
-/*             'link_view'=> true, */
-/*         ), */
-/*     ), */
-/*     'attributes'  => array( */
-/*         'override' => true, */
-/*         'fields' => array( */
-/*             'id' => array( */
-/*                 'label' => _("Object ID"), */
-/*                 'type' => 'text', */
-/*                 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) */
-/*             ), */
-/*         ), */
-/*     ), */
-/* ); */
-
-/* $objects['person'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object_Person', */
-/*     'label'       => _("Person"), */
-/*     'list_label'  => _("Persons"), */
-/*     'list_attributes'  => array( */
-/*         'cn' => array( */
-/*             'title' => _("Common name"), */
-/*             'width' => 40, */
-/*             'link_view'=> true, */
-/*         ), */
-/*         'sn' => array( */
-/*             'title' => _("Last name"), */
-/*             'width' => 40, */
-/*         ), */
-/*     ), */
-/*     'attributes'  => array( */
-/*         'fields' => array( */
-/*             'cn' => array( */
-/*                 'required' => false, */
-/*             ), */
-/*             'userPassword' => array( */
-/*                 'required' => true, */
-/*             ), */
-/*         ), */
-/*     ), */
-/* ); */
-
-/* $objects['organizationalperson'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object_Organizationalperson', */
-/*     'label'       => _("Organizational person"), */
-/*     'list_label'  => _("Organizational persons"), */
-/*     'list_attributes'  => array( */
-/*         'cn' => array( */
-/*             'title' => _("Common name"), */
-/*             'width' => 40, */
-/*             'link_view'=> true, */
-/*         ), */
-/*         'sn' => array( */
-/*             'title' => _("Last name"), */
-/*             'width' => 40, */
-/*         ), */
-/*     ), */
-/*     'attributes'  => array( */
-/*         'fields' => array( */
-/*             'cn' => array( */
-/*                 'required' => false, */
-/*             ), */
-/*             'userPassword' => array( */
-/*                 'required' => true, */
-/*             ), */
-/*         ), */
-/*     ), */
-/* ); */
-
-/* $objects['inetperson'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object_Inetorgperson', */
-/*     'label'       => _("Inet person"), */
-/*     'list_label'  => _("Inet persons"), */
-/*     'list_attributes'  => array( */
-/*         'cn' => array( */
-/*             'title' => _("Common name"), */
-/*             'width' => 40, */
-/*             'link_view'=> true, */
-/*         ), */
-/*         'sn' => array( */
-/*             'title' => _("Last name"), */
-/*             'width' => 40, */
-/*         ), */
-/*     ), */
-/*     'attributes'  => array( */
-/*         'fields' => array( */
-/*             'cn' => array( */
-/*                 'required' => false, */
-/*             ), */
-/*             'userPassword' => array( */
-/*                 'required' => true, */
-/*             ), */
-/*         ), */
-/*     ), */
-/* ); */
-
-/* $objects['user'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object_Kolab_User', */
-/*     'label'       => _("User"), */
-/*     'list_label'  => _("Users"), */
-/*     'list_attributes'  => array( */
-/*         'sn' => array( */
-/*             'title' => _("Last name"), */
-/*             'width' => 20, */
-/*         ), */
-/*         'givenName' => array( */
-/*             'title' => _("First name"), */
-/*             'width' => 20, */
-/*         ), */
-/*         'mail' => array( */
-/*             'title' => _("E-mail"), */
-/*             'width' => 20, */
-/*             'link_view'=> true, */
-/*         ), */
-/*         'uid' => array( */
-/*             'title' => _("User ID"), */
-/*             'width' => 20, */
-/*         ), */
-/*     ), */
-/* ); */
-
-/* $objects['admin'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object_Kolab_Administrator', */
-/*     'label'       => _("Administrator"), */
-/*     'list_label'  => _("Administrators"), */
-/*     'attributes'  => array( */
-/*     ), */
-/* ); */
-
-/* $objects['kolabuser'] = array( */
-/*     'class'       => 'Horde_Kolab_Server_Object_Kolab_User', */
-/*     'preferred'   => true, */
-/*     'label'       => _("Kolab user"), */
-/*     'list_label'  => _("Kolab users"), */
-/*     'list_attributes'  => array( */
-/*         'sn' => array( */
-/*             'title' => _("Last name"), */
-/*             'width' => 20, */
-/*         ), */
-/*         'givenName' => array( */
-/*             'title' => _("First name"), */
-/*             'width' => 20, */
-/*         ), */
-/*         'mail' => array( */
-/*             'title' => _("E-mail"), */
-/*             'width' => 20, */
-/*             'link_view'=> true, */
-/*         ), */
-/*         'uid' => array( */
-/*             'title' => _("User ID"), */
-/*             'width' => 20, */
-/*         ), */
-/*     ), */
-/*     'attributes'  => array( */
-/*         'hide' => array( */
-/*             'objectClass', */
-/*             'seeAlso', */
-/*             'x121Address', */
-/*             'registeredAddress', */
-/*             'destinationIndicator', */
-/*             'preferredDeliveryMethod', */
-/*             'telexNumber', */
-/*             'teletexTerminalIdentifier', */
-/*             'internationaliSDNNumber', */
-/*             'kolabEncryptedPassword', */
-/*             'kolabHomeMTA', */
-/*             'kolabDelegate', */
-/*         ), */
-/*         'labels' => array( */
-/*             'mail' => _("Account ID"), */
-/*         ), */
-/*         'fields' => array( */
-/*             'kolabSalutation' => array( */
-/*                 'type' => 'enum', */
-/*                 'params' => array('values' => array(_("Mr.") => _("Mr."), */
-/*                                                     _("Mrs.") => _("Mrs.")), */
-/*                                   'prompt' => true), */
-/*             ), */
-/*             'gender' => array( */
-/*                 'type' => 'enum', */
-/*                 'params' => array('values' => array(_("1") => _("male"), */
-/*                                                     _("2") => _("female")), */
-/*                                   'prompt' => true), */
-/*             ), */
-/*             'kolabMaritalStatus' => array( */
-/*                 'type' => 'enum', */
-/*                 'params' => array('values' => array(_("0") => _("single"), */
-/*                                                     _("1") => _("married")), */
-/*                                   'prompt' => true), */
-/*             ), */
-/*             'userPassword' => array( */
-/*                 'type' => 'passwordconfirm', */
-/*             ), */
-/*         ), */
-/*     ), */
-/* ); */
-
-if (file_exists(dirname(__FILE__) . '/objects.local.php')) {
-    require_once(dirname(__FILE__) . '/objects.local.php');
-}
diff --git a/koward/config/order.php b/koward/config/order.php
deleted file mode 100644 (file)
index 74e0a28..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-$order['mail'] = 1;
-$order['kolabSalutation'] = 2;
-$order['givenName'] = 3;
-$order['middleNames'] = 4;
-$order['sn'] = 5;
-$order['snsuffix'] = 6;
-$order['gender'] = 7;
-$order['userPassword'] = 10;
-$order['dateOfBirth'] = 12;
-$order['placeOfBirth'] = 13;
-$order['kolabMaritalStatus'] = 14;
-$order['birthName'] = 15;
-$order['telephoneNumber'] = 30;
-$order['mobile'] = 31;
-$order['facsimileTelephoneNumber'] = 32;
-$order['homePhone'] = 33;
diff --git a/koward/config/routes.php b/koward/config/routes.php
deleted file mode 100644 (file)
index 1043478..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-$mapper->connect('index', array('controller' => 'index'));
-$mapper->connect('index.php', array('controller' => 'index'));
-
-$mapper->connect('check/:action/:id', array('controller' => 'check', 'action' => 'show'));
-$mapper->connect(':controller/:action/:id', array('controller' => 'object'));
-
-// Local route overrides
-if (file_exists(dirname(__FILE__) . '/routes.local.php')) {
-    include dirname(__FILE__) . '/routes.local.php';
-}
diff --git a/koward/config/search.php b/koward/config/search.php
deleted file mode 100644 (file)
index fb6264f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-$search = array(
-    'fields' => array(
-        'givenName' => array(
-            'label' => _("First Name"),
-            'type' => 'text',
-            'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
-        ),
-    )
-);
-
-if (file_exists(dirname(__FILE__) . '/search.local.php')) {
-    require_once(dirname(__FILE__) . '/search.local.php');
-}
diff --git a/koward/config/visible.php b/koward/config/visible.php
deleted file mode 100644 (file)
index d869909..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-$visible['hide'] = array(
-    'objectClass',
-    'id',
-    'lnfn',
-    'fnln',
-    'seeAlso',
-    'description',
-    'physicalDeliveryOfficeName',
-    'internationaliSDNNumber',
-    'x121Address',
-    'registeredAddress',
-    'destinationIndicator',
-    'preferredDeliveryMethod',
-    'telexNumber',
-    'teletexTerminalIdentifier',
-    'postalAddress',
-    'ou',
-    'st',
-    'manager',
-    'uid',
-    'employeeType',
-    'photo',
-    'x500uniqueIdentifier',
-    'secretary',
-    'userSMIMECertificate',
-    'employeeNumber',
-    'initials',
-    'audio',
-    'pager',
-    'businessCategory',
-    'roomNumber',
-    'carLicense',
-    'userCertificate',
-    'departmentNumber',
-    'preferredLanguage',
-    'displayName',
-    'userPKCS12',
-    'kolabVacationEndDateTime',
-    'kolabVacationReactDomain',
-    'kolabVacationAddress',
-    'kolabForwardKeepCopy',
-    'kolabDeleteflag',
-    'kolabVacationBeginDateTime',
-    'kolabVacationResendInterval',
-    'kolabVacationReplyToUCE',
-    'kolabForwardAddress',
-    'kolabForwardUCE',
-    'kolabAllowSMTPFrom',
-    'unrestrictedMailSize',
-    'kolabInvitationPolicy',
-    'kolabFreeBusyFuture',
-    'calFBURL',
-    'kolabComment',
-    'kolabImapServer',
-    'kolabFreeBusyServer',
-    'usertype',
-    'jpegPhoto',
-);
\ No newline at end of file
diff --git a/koward/test/AllTests.php b/koward/test/AllTests.php
deleted file mode 100644 (file)
index 3d1f3a7..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * All tests for the Koward application.
- *
- * PHP version 5
- *
- * @category Kolab
- * @package  Koward
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Koward
- */
-
-if (!defined('PHPUnit_MAIN_METHOD')) {
-    define('PHPUnit_MAIN_METHOD', 'Koward_AllTests::main');
-}
-
-/**
- * Initialize testing for this application.
- */
-require_once 'TestInit.php';
-
-/**
- * Combine the tests for this package.
- *
- * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @category Kolab
- * @package  Koward
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Koward
- */
-class Koward_AllTests
-{
-    /**
-     * Main entry point for running the suite.
-     *
-     * @return NULL
-     */
-    public static function main()
-    {
-        PHPUnit_TextUI_TestRunner::run(self::suite());
-    }
-
-    /**
-     * Collect the unit tests of this directory into a new suite.
-     *
-     * @return PHPUnit_Framework_TestSuite The test suite.
-     */
-    public static function suite()
-    {
-        // Catch strict standards
-        error_reporting(E_ALL | E_STRICT);
-
-        // Build the suite
-        $suite = new PHPUnit_Framework_TestSuite('Koward');
-
-        $basedir = dirname(__FILE__);
-        $baseregexp = preg_quote($basedir . DIRECTORY_SEPARATOR, '/');
-
-        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($basedir)) as $file) {
-            if ($file->isFile() && preg_match('/Test.php$/', $file->getFilename())) {
-                $pathname = $file->getPathname();
-                require $pathname;
-
-                $class = str_replace(DIRECTORY_SEPARATOR, '_',
-                                     preg_replace("/^$baseregexp(.*)\.php/", '\\1', $pathname));
-                $suite->addTestSuite('Koward_' . $class);
-            }
-        }
-
-        return $suite;
-    }
-
-}
-
-if (PHPUnit_MAIN_METHOD == 'Koward_AllTests::main') {
-    Koward_AllTests::main();
-}
diff --git a/koward/test/Koward/AllTests.php b/koward/test/Koward/AllTests.php
new file mode 100644 (file)
index 0000000..3d1f3a7
--- /dev/null
@@ -0,0 +1,83 @@
+<?php
+/**
+ * All tests for the Koward application.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package  Koward
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Koward
+ */
+
+if (!defined('PHPUnit_MAIN_METHOD')) {
+    define('PHPUnit_MAIN_METHOD', 'Koward_AllTests::main');
+}
+
+/**
+ * Initialize testing for this application.
+ */
+require_once 'TestInit.php';
+
+/**
+ * Combine the tests for this package.
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package  Koward
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Koward
+ */
+class Koward_AllTests
+{
+    /**
+     * Main entry point for running the suite.
+     *
+     * @return NULL
+     */
+    public static function main()
+    {
+        PHPUnit_TextUI_TestRunner::run(self::suite());
+    }
+
+    /**
+     * Collect the unit tests of this directory into a new suite.
+     *
+     * @return PHPUnit_Framework_TestSuite The test suite.
+     */
+    public static function suite()
+    {
+        // Catch strict standards
+        error_reporting(E_ALL | E_STRICT);
+
+        // Build the suite
+        $suite = new PHPUnit_Framework_TestSuite('Koward');
+
+        $basedir = dirname(__FILE__);
+        $baseregexp = preg_quote($basedir . DIRECTORY_SEPARATOR, '/');
+
+        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($basedir)) as $file) {
+            if ($file->isFile() && preg_match('/Test.php$/', $file->getFilename())) {
+                $pathname = $file->getPathname();
+                require $pathname;
+
+                $class = str_replace(DIRECTORY_SEPARATOR, '_',
+                                     preg_replace("/^$baseregexp(.*)\.php/", '\\1', $pathname));
+                $suite->addTestSuite('Koward_' . $class);
+            }
+        }
+
+        return $suite;
+    }
+
+}
+
+if (PHPUnit_MAIN_METHOD == 'Koward_AllTests::main') {
+    Koward_AllTests::main();
+}
diff --git a/koward/test/Koward/KowardTest.php b/koward/test/Koward/KowardTest.php
new file mode 100644 (file)
index 0000000..4b4abf5
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/**
+ * Test the user object.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package  Koward
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Koward
+ */
+
+/**
+ * Initialize testing for this application.
+ */
+require_once 'TestInit.php';
+
+/**
+ * Test the user object.
+ *
+ * Copyright 2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package  Koward
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Koward
+ */
+class Koward_KowardTest extends Koward_Test
+{
+    /**
+     * Set up testing.
+     *
+     * @return NULL
+     */
+    protected function setUp()
+    {
+        $world = $this->prepareBasicSetup();
+
+        $this->koward = Koward_Koward::singleton();
+    }
+
+    /**
+     * Verify that the Koward object ist initialized correctly.
+     *
+     * @return NULL
+     */
+    public function testSetup()
+    {
+        $this->assertType('Horde_Kolab_Server', $this->koward->server);
+    }
+
+    /**
+     * Verify that we can fetch objects from the Kolab server.
+     *
+     * @return NULL
+     */
+    public function testFetching()
+    {
+        $this->assertType('Horde_Kolab_Server_Object', $this->koward->getObject('cn=Gunnar Wrobel,dc=example,dc=org'));
+    }
+
+    /**
+     * Verify token processing mechanisms.
+     *
+     * @return NULL
+     */
+    public function testToken()
+    {
+        // Get the token.
+        $token = $this->koward->getRequestToken('test');
+        // Checking it should be fine.
+        $this->koward->checkRequestToken('test', $token);
+        // Now we set the token to a value that will be considered a timeout.
+        $_SESSION['horde_form_secrets'][$token] = time() - 100000;
+        try {
+            $this->koward->checkRequestToken('test', $token);
+            $this->fail('The rquest token is still valid which was not expected.');
+        } catch (Horde_Exception $e) {
+            $this->assertContains(_("This request cannot be completed because the link you followed or the form you submitted was only valid for"), $e->getMessage());
+        }
+        // Now we remove the token
+        unset($_SESSION['horde_form_secrets'][$token]);
+        try {
+            $this->koward->checkRequestToken('test', $token);
+            $this->fail('The rquest token is still valid which was not expected.');
+        } catch (Horde_Exception $e) {
+            $this->assertEquals(_("We cannot verify that this request was really sent by you. It could be a malicious request. If you intended to perform this action, you can retry it now."), $e->getMessage());
+        }
+    }
+}
diff --git a/koward/test/Koward/TestInit.php b/koward/test/Koward/TestInit.php
new file mode 100644 (file)
index 0000000..8091e44
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Initialize testing for this application.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package  Koward
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Koward
+ */
+
+/**
+ * The Autoloader allows us to omit "require/include" statements.
+ */
+require_once 'Horde/Autoloader.php';
+
+if (!defined('KOWARD_BASE')) {
+    define('KOWARD_BASE', dirname(__FILE__) . '/../');
+}
+
+/* Set up the application class and controller loading */
+Horde_Autoloader::addClassPattern('/^Koward_/', KOWARD_BASE . '/lib/');
+Horde_Autoloader::addClassPattern('/^Koward_/', KOWARD_BASE . '/app/controllers/');
diff --git a/koward/test/KowardTest.php b/koward/test/KowardTest.php
deleted file mode 100644 (file)
index 4b4abf5..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/**
- * Test the user object.
- *
- * PHP version 5
- *
- * @category Kolab
- * @package  Koward
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Koward
- */
-
-/**
- * Initialize testing for this application.
- */
-require_once 'TestInit.php';
-
-/**
- * Test the user object.
- *
- * Copyright 2009 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @category Kolab
- * @package  Koward
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Koward
- */
-class Koward_KowardTest extends Koward_Test
-{
-    /**
-     * Set up testing.
-     *
-     * @return NULL
-     */
-    protected function setUp()
-    {
-        $world = $this->prepareBasicSetup();
-
-        $this->koward = Koward_Koward::singleton();
-    }
-
-    /**
-     * Verify that the Koward object ist initialized correctly.
-     *
-     * @return NULL
-     */
-    public function testSetup()
-    {
-        $this->assertType('Horde_Kolab_Server', $this->koward->server);
-    }
-
-    /**
-     * Verify that we can fetch objects from the Kolab server.
-     *
-     * @return NULL
-     */
-    public function testFetching()
-    {
-        $this->assertType('Horde_Kolab_Server_Object', $this->koward->getObject('cn=Gunnar Wrobel,dc=example,dc=org'));
-    }
-
-    /**
-     * Verify token processing mechanisms.
-     *
-     * @return NULL
-     */
-    public function testToken()
-    {
-        // Get the token.
-        $token = $this->koward->getRequestToken('test');
-        // Checking it should be fine.
-        $this->koward->checkRequestToken('test', $token);
-        // Now we set the token to a value that will be considered a timeout.
-        $_SESSION['horde_form_secrets'][$token] = time() - 100000;
-        try {
-            $this->koward->checkRequestToken('test', $token);
-            $this->fail('The rquest token is still valid which was not expected.');
-        } catch (Horde_Exception $e) {
-            $this->assertContains(_("This request cannot be completed because the link you followed or the form you submitted was only valid for"), $e->getMessage());
-        }
-        // Now we remove the token
-        unset($_SESSION['horde_form_secrets'][$token]);
-        try {
-            $this->koward->checkRequestToken('test', $token);
-            $this->fail('The rquest token is still valid which was not expected.');
-        } catch (Horde_Exception $e) {
-            $this->assertEquals(_("We cannot verify that this request was really sent by you. It could be a malicious request. If you intended to perform this action, you can retry it now."), $e->getMessage());
-        }
-    }
-}
diff --git a/koward/test/TestInit.php b/koward/test/TestInit.php
deleted file mode 100644 (file)
index 8091e44..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * Initialize testing for this application.
- *
- * PHP version 5
- *
- * @category Kolab
- * @package  Koward
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Koward
- */
-
-/**
- * The Autoloader allows us to omit "require/include" statements.
- */
-require_once 'Horde/Autoloader.php';
-
-if (!defined('KOWARD_BASE')) {
-    define('KOWARD_BASE', dirname(__FILE__) . '/../');
-}
-
-/* Set up the application class and controller loading */
-Horde_Autoloader::addClassPattern('/^Koward_/', KOWARD_BASE . '/lib/');
-Horde_Autoloader::addClassPattern('/^Koward_/', KOWARD_BASE . '/app/controllers/');
diff --git a/koward/themes/graphics/favicon.ico b/koward/themes/graphics/favicon.ico
deleted file mode 100644 (file)
index 0f8fa08..0000000
Binary files a/koward/themes/graphics/favicon.ico and /dev/null differ
diff --git a/koward/themes/graphics/query.png b/koward/themes/graphics/query.png
deleted file mode 100644 (file)
index ef46d4a..0000000
Binary files a/koward/themes/graphics/query.png and /dev/null differ
diff --git a/koward/themes/kolab/screen.css b/koward/themes/kolab/screen.css
deleted file mode 100644 (file)
index 017e2a7..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-  Local variables:
-  buffer-file-coding-system: utf-8
-  End:
-*/
-body {
-  color: black;
-  background-color: #F8FCF8;
-  font-family: verdana,arial,helvetica,sans-serif;
-  font-size: 95%;
-  border: 0;
-  margin: 0;
-}
-a, a:visited {
-  font-family: verdana,arial,helvetica,sans-serif;
-}
-
-a { color: #001155; }
-a:hover { color: #113399; }
-
-#page {
-  background-repeat: no-repeat;
-  background-position: top right;
-}
-
-#topbar {
-  display:block;
-  background-color: #B0BCD0;
-  height: 70px;
-  clear: both;
-}
-#toplogo {
-  display:block;
-  background-image: url(pics/kolab_logo.png);
-  background-color: #B0BCD0;
-  width: 245px;
-  height: 70px;
-  margin-left: 1em;
-  margin-top: 0.4em;
-  float: left;
-}
-#toptitle {
-  display:block;
-  text-align: right;
-  font-size: 200%;
-  padding-right: 1em;
-  padding-top: 0.5em;
-}
-#topuserinfo {
-  display:block;
-  background-color: #B0BCD0;
-  font-size: 80%;
-  padding: 0.1em;
-  border-bottom: solid 1px black;
-  text-align: right;
-}
-#topmenu {
-  background-color: #B0BCD0;
-  font-size: 90%;
-  border-bottom: solid 1px black;
-}
-#submenu {
-  background-color: #EEEEEE;
-  border-bottom: solid 1px black;
-  font-size: 90%;
-}
-
-.topmenuitem {
-  background-color: #B0BCD0;
-  border-right: solid 1px black;
-  padding-left: 0.5em;
-  padding-right: 0.5em;
-  margin: 0px;
-}
-.topmenuitemselected {
-  background-color: #EEEEEE;
-  border-right: solid 1px black;
-  padding-left: 0.5em;
-  padding-right: 0.5em;
-  margin: 0px;
-  border-bottom: solid 1px #EEEEEE;
-}
-.submenuitem {
-}
-.submenuitemselected {
-}
-.alphagroupitem {
-}
-.alphagroupitemselected {
-  font-weight:bold
-}
-#logout {
-  color: red;
-}
-#maintitle {
-  font-size: 200%;
-}
-#maincontent {
-  display:block;
-  padding: 1em;
-  margin: 1em;
-}
-#errorcontent {
-  display:block;
-  padding: 0.2em;
-  margin: 1em;
-  text-align: left;
-  color: red;
-  background-color: #EEEEEE;
-  border: solid 1px black;
-}
-#errorheader {
-  display:block;
-  text-align: left;
-  color: black;
-  background-color: #EEEEEE;
-  font-size: 150%;
-}
-#messagecontent {
-  display:block;
-  padding: 0.2em;
-  margin: 1em;
-  text-align: left;
-  color: green;
-  background-color: #EEEEEE;
-  border: solid 1px black;
-}
-#messageheader {
-  display:block;
-  text-align: left;
-  color: black;
-  background-color: #EEEEEE;
-  font-size: 150%;
-}
-.contenttext {
-  margin: 10px;
-}
-.contenttable {
-  width: 100%;
-  background-color: black;
-  border: 0px;
-}
-.contentroweven {
-  background-color: #C0CDE0;
-  margin: 0px;
-}
-.contentrowodd {
-  background-color: #D0DDF0;
-  margin: 0px;
-}
-.contentcell {
-  font-size: 90%;
-  padding: .1em .5em .1em .5em;
-  margin: 0px;
-/*  text-align: center; */
-}
-.actioncell {
-  font-size: 90%;
-  padding: .1em .5em .1em .5em;
-  width: 10%;
-  margin: 0px;
-  text-align: center;
-}
-.contentform {
-  /*float: left;*/
-  padding: .1em .5em .1em .5em;
-  background-color: #EEEEEE;
-  border: solid 1px black;
-}
-.contentformtable {
-  font-size: 90%;
-}
-.langcombo {
-  font-size: 80%;
-}
-
-#validators {
-  text-align: right;
-}
-
-th {
-  background-color: #EEEEEE;
-  border: 0px;
-}
-
-.ctrl {
-  background-color: #E0E3E0;
-  border: solid 1px black;
-  padding: .2em .5em .2em .5em;
-}
-
-.required_asterisk {
-  color: red;
-  font-size: 80%;
-  text-align: right;
-}
-
-label {
-  cursor: pointer;
-}
-
-.align_center {
-  text-align: center;
-}
-
-.align_right {
-  text-align: right;
-}
-
-.align_left {
-  text-align: left;
-}
diff --git a/koward/themes/screen.css b/koward/themes/screen.css
deleted file mode 100644 (file)
index 9075ea6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/**
- * Style for Koward.
- */
diff --git a/koward/www/config/.gitignore b/koward/www/config/.gitignore
new file mode 100644 (file)
index 0000000..86d3639
--- /dev/null
@@ -0,0 +1 @@
+objects.local.php
diff --git a/koward/www/config/attributes.php b/koward/www/config/attributes.php
new file mode 100644 (file)
index 0000000..3a49086
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+
+$attributes['givenName'] = array(
+    'label' => _("First Name"),
+    'type' => 'text',
+    'required' => true,
+    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
+);
+$attributes['sn'] = array(
+    'label' => _("Last Name"),
+    'type' => 'text',
+    'required' => true,
+    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
+);
+$attributes['mail'] = array(
+    'label' => _("Mail address"),
+    'type' => 'text',
+    'required' => true,
+    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
+);
+$attributes['uid'] = array(
+    'label' => _("User ID"),
+    'type' => 'text',
+    'required' => true,
+    'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
+);
diff --git a/koward/www/config/conf.php b/koward/www/config/conf.php
new file mode 100644 (file)
index 0000000..656621c
--- /dev/null
@@ -0,0 +1,3 @@
+<?php
+
+$conf['koward']['theme'] = 'silver';
diff --git a/koward/www/config/labels.php b/koward/www/config/labels.php
new file mode 100644 (file)
index 0000000..a462447
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+$labels['cn'] = _("Common Name");
+$labels['kolabSalutation'] = _("Salutation");
+$labels['givenName'] = _("First Name");
+$labels['middleNames'] = _("Additional Names");
+$labels['sn'] = _("Last Name");
+$labels['snsuffix'] = _("Name Suffix");
+$labels['personalTitle'] = _("Title");
+$labels['userPassword'] = _("Password");
+$labels['telephoneNumber'] = _("Phone");
+$labels['postOfficeBox'] = _("Post Office Box");
+$labels['street'] = _("Street");
+$labels['title'] = _("Job Title");
+$labels['postalCode'] = _("Postal Code");
+$labels['facsimileTelephoneNumber'] = _("Fax");
+$labels['l'] = _("City");
+$labels['jpegPhoto'] = _("Photo");
+$labels['mail'] = _("Mail Address");
+$labels['mobile'] = _("Mobile Phone");
+$labels['homePhone'] = _("Home Phone");
+$labels['homePostalAddress'] = _("Home Postal Address");
+$labels['labeledURI'] = _("Website");
+$labels['o'] = _("Company");
+$labels['birthName'] = _("Birth Name");
+$labels['kolabMaritalStatus'] = _("Marital Status");
+$labels['dateOfBirth'] = _("Date Of Birth");
+$labels['placeOfBirth'] = _("Place Of Birth");
+$labels['gender'] = _("Gender");
+
diff --git a/koward/www/config/objects.php b/koward/www/config/objects.php
new file mode 100644 (file)
index 0000000..6c15803
--- /dev/null
@@ -0,0 +1,210 @@
+<?php
+
+/* $objects['object'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object', */
+/*     'label'       => _("Object"), */
+/*     'list_label'  => _("Objects"), */
+/*     'list_attributes'  => array( */
+/*         'id' => array( */
+/*             'title' => _("Object id"), */
+/*             'width' => 80, */
+/*             'link_view'=> true, */
+/*         ), */
+/*     ), */
+/*     'attributes'  => array( */
+/*         'override' => true, */
+/*         'fields' => array( */
+/*             'id' => array( */
+/*                 'label' => _("Object ID"), */
+/*                 'type' => 'text', */
+/*                 'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255) */
+/*             ), */
+/*         ), */
+/*     ), */
+/* ); */
+
+/* $objects['person'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object_Person', */
+/*     'label'       => _("Person"), */
+/*     'list_label'  => _("Persons"), */
+/*     'list_attributes'  => array( */
+/*         'cn' => array( */
+/*             'title' => _("Common name"), */
+/*             'width' => 40, */
+/*             'link_view'=> true, */
+/*         ), */
+/*         'sn' => array( */
+/*             'title' => _("Last name"), */
+/*             'width' => 40, */
+/*         ), */
+/*     ), */
+/*     'attributes'  => array( */
+/*         'fields' => array( */
+/*             'cn' => array( */
+/*                 'required' => false, */
+/*             ), */
+/*             'userPassword' => array( */
+/*                 'required' => true, */
+/*             ), */
+/*         ), */
+/*     ), */
+/* ); */
+
+/* $objects['organizationalperson'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object_Organizationalperson', */
+/*     'label'       => _("Organizational person"), */
+/*     'list_label'  => _("Organizational persons"), */
+/*     'list_attributes'  => array( */
+/*         'cn' => array( */
+/*             'title' => _("Common name"), */
+/*             'width' => 40, */
+/*             'link_view'=> true, */
+/*         ), */
+/*         'sn' => array( */
+/*             'title' => _("Last name"), */
+/*             'width' => 40, */
+/*         ), */
+/*     ), */
+/*     'attributes'  => array( */
+/*         'fields' => array( */
+/*             'cn' => array( */
+/*                 'required' => false, */
+/*             ), */
+/*             'userPassword' => array( */
+/*                 'required' => true, */
+/*             ), */
+/*         ), */
+/*     ), */
+/* ); */
+
+/* $objects['inetperson'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object_Inetorgperson', */
+/*     'label'       => _("Inet person"), */
+/*     'list_label'  => _("Inet persons"), */
+/*     'list_attributes'  => array( */
+/*         'cn' => array( */
+/*             'title' => _("Common name"), */
+/*             'width' => 40, */
+/*             'link_view'=> true, */
+/*         ), */
+/*         'sn' => array( */
+/*             'title' => _("Last name"), */
+/*             'width' => 40, */
+/*         ), */
+/*     ), */
+/*     'attributes'  => array( */
+/*         'fields' => array( */
+/*             'cn' => array( */
+/*                 'required' => false, */
+/*             ), */
+/*             'userPassword' => array( */
+/*                 'required' => true, */
+/*             ), */
+/*         ), */
+/*     ), */
+/* ); */
+
+/* $objects['user'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object_Kolab_User', */
+/*     'label'       => _("User"), */
+/*     'list_label'  => _("Users"), */
+/*     'list_attributes'  => array( */
+/*         'sn' => array( */
+/*             'title' => _("Last name"), */
+/*             'width' => 20, */
+/*         ), */
+/*         'givenName' => array( */
+/*             'title' => _("First name"), */
+/*             'width' => 20, */
+/*         ), */
+/*         'mail' => array( */
+/*             'title' => _("E-mail"), */
+/*             'width' => 20, */
+/*             'link_view'=> true, */
+/*         ), */
+/*         'uid' => array( */
+/*             'title' => _("User ID"), */
+/*             'width' => 20, */
+/*         ), */
+/*     ), */
+/* ); */
+
+/* $objects['admin'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object_Kolab_Administrator', */
+/*     'label'       => _("Administrator"), */
+/*     'list_label'  => _("Administrators"), */
+/*     'attributes'  => array( */
+/*     ), */
+/* ); */
+
+/* $objects['kolabuser'] = array( */
+/*     'class'       => 'Horde_Kolab_Server_Object_Kolab_User', */
+/*     'preferred'   => true, */
+/*     'label'       => _("Kolab user"), */
+/*     'list_label'  => _("Kolab users"), */
+/*     'list_attributes'  => array( */
+/*         'sn' => array( */
+/*             'title' => _("Last name"), */
+/*             'width' => 20, */
+/*         ), */
+/*         'givenName' => array( */
+/*             'title' => _("First name"), */
+/*             'width' => 20, */
+/*         ), */
+/*         'mail' => array( */
+/*             'title' => _("E-mail"), */
+/*             'width' => 20, */
+/*             'link_view'=> true, */
+/*         ), */
+/*         'uid' => array( */
+/*             'title' => _("User ID"), */
+/*             'width' => 20, */
+/*         ), */
+/*     ), */
+/*     'attributes'  => array( */
+/*         'hide' => array( */
+/*             'objectClass', */
+/*             'seeAlso', */
+/*             'x121Address', */
+/*             'registeredAddress', */
+/*             'destinationIndicator', */
+/*             'preferredDeliveryMethod', */
+/*             'telexNumber', */
+/*             'teletexTerminalIdentifier', */
+/*             'internationaliSDNNumber', */
+/*             'kolabEncryptedPassword', */
+/*             'kolabHomeMTA', */
+/*             'kolabDelegate', */
+/*         ), */
+/*         'labels' => array( */
+/*             'mail' => _("Account ID"), */
+/*         ), */
+/*         'fields' => array( */
+/*             'kolabSalutation' => array( */
+/*                 'type' => 'enum', */
+/*                 'params' => array('values' => array(_("Mr.") => _("Mr."), */
+/*                                                     _("Mrs.") => _("Mrs.")), */
+/*                                   'prompt' => true), */
+/*             ), */
+/*             'gender' => array( */
+/*                 'type' => 'enum', */
+/*                 'params' => array('values' => array(_("1") => _("male"), */
+/*                                                     _("2") => _("female")), */
+/*                                   'prompt' => true), */
+/*             ), */
+/*             'kolabMaritalStatus' => array( */
+/*                 'type' => 'enum', */
+/*                 'params' => array('values' => array(_("0") => _("single"), */
+/*                                                     _("1") => _("married")), */
+/*                                   'prompt' => true), */
+/*             ), */
+/*             'userPassword' => array( */
+/*                 'type' => 'passwordconfirm', */
+/*             ), */
+/*         ), */
+/*     ), */
+/* ); */
+
+if (file_exists(dirname(__FILE__) . '/objects.local.php')) {
+    require_once(dirname(__FILE__) . '/objects.local.php');
+}
diff --git a/koward/www/config/order.php b/koward/www/config/order.php
new file mode 100644 (file)
index 0000000..74e0a28
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+$order['mail'] = 1;
+$order['kolabSalutation'] = 2;
+$order['givenName'] = 3;
+$order['middleNames'] = 4;
+$order['sn'] = 5;
+$order['snsuffix'] = 6;
+$order['gender'] = 7;
+$order['userPassword'] = 10;
+$order['dateOfBirth'] = 12;
+$order['placeOfBirth'] = 13;
+$order['kolabMaritalStatus'] = 14;
+$order['birthName'] = 15;
+$order['telephoneNumber'] = 30;
+$order['mobile'] = 31;
+$order['facsimileTelephoneNumber'] = 32;
+$order['homePhone'] = 33;
diff --git a/koward/www/config/routes.php b/koward/www/config/routes.php
new file mode 100644 (file)
index 0000000..1043478
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+$mapper->connect('index', array('controller' => 'index'));
+$mapper->connect('index.php', array('controller' => 'index'));
+
+$mapper->connect('check/:action/:id', array('controller' => 'check', 'action' => 'show'));
+$mapper->connect(':controller/:action/:id', array('controller' => 'object'));
+
+// Local route overrides
+if (file_exists(dirname(__FILE__) . '/routes.local.php')) {
+    include dirname(__FILE__) . '/routes.local.php';
+}
diff --git a/koward/www/config/search.php b/koward/www/config/search.php
new file mode 100644 (file)
index 0000000..fb6264f
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+
+$search = array(
+    'fields' => array(
+        'givenName' => array(
+            'label' => _("First Name"),
+            'type' => 'text',
+            'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
+        ),
+    )
+);
+
+if (file_exists(dirname(__FILE__) . '/search.local.php')) {
+    require_once(dirname(__FILE__) . '/search.local.php');
+}
diff --git a/koward/www/config/visible.php b/koward/www/config/visible.php
new file mode 100644 (file)
index 0000000..d869909
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+$visible['hide'] = array(
+    'objectClass',
+    'id',
+    'lnfn',
+    'fnln',
+    'seeAlso',
+    'description',
+    'physicalDeliveryOfficeName',
+    'internationaliSDNNumber',
+    'x121Address',
+    'registeredAddress',
+    'destinationIndicator',
+    'preferredDeliveryMethod',
+    'telexNumber',
+    'teletexTerminalIdentifier',
+    'postalAddress',
+    'ou',
+    'st',
+    'manager',
+    'uid',
+    'employeeType',
+    'photo',
+    'x500uniqueIdentifier',
+    'secretary',
+    'userSMIMECertificate',
+    'employeeNumber',
+    'initials',
+    'audio',
+    'pager',
+    'businessCategory',
+    'roomNumber',
+    'carLicense',
+    'userCertificate',
+    'departmentNumber',
+    'preferredLanguage',
+    'displayName',
+    'userPKCS12',
+    'kolabVacationEndDateTime',
+    'kolabVacationReactDomain',
+    'kolabVacationAddress',
+    'kolabForwardKeepCopy',
+    'kolabDeleteflag',
+    'kolabVacationBeginDateTime',
+    'kolabVacationResendInterval',
+    'kolabVacationReplyToUCE',
+    'kolabForwardAddress',
+    'kolabForwardUCE',
+    'kolabAllowSMTPFrom',
+    'unrestrictedMailSize',
+    'kolabInvitationPolicy',
+    'kolabFreeBusyFuture',
+    'calFBURL',
+    'kolabComment',
+    'kolabImapServer',
+    'kolabFreeBusyServer',
+    'usertype',
+    'jpegPhoto',
+);
\ No newline at end of file
diff --git a/koward/www/themes/graphics/favicon.ico b/koward/www/themes/graphics/favicon.ico
new file mode 100644 (file)
index 0000000..0f8fa08
Binary files /dev/null and b/koward/www/themes/graphics/favicon.ico differ
diff --git a/koward/www/themes/graphics/query.png b/koward/www/themes/graphics/query.png
new file mode 100644 (file)
index 0000000..ef46d4a
Binary files /dev/null and b/koward/www/themes/graphics/query.png differ
diff --git a/koward/www/themes/kolab/screen.css b/koward/www/themes/kolab/screen.css
new file mode 100644 (file)
index 0000000..017e2a7
--- /dev/null
@@ -0,0 +1,212 @@
+/*
+  Local variables:
+  buffer-file-coding-system: utf-8
+  End:
+*/
+body {
+  color: black;
+  background-color: #F8FCF8;
+  font-family: verdana,arial,helvetica,sans-serif;
+  font-size: 95%;
+  border: 0;
+  margin: 0;
+}
+a, a:visited {
+  font-family: verdana,arial,helvetica,sans-serif;
+}
+
+a { color: #001155; }
+a:hover { color: #113399; }
+
+#page {
+  background-repeat: no-repeat;
+  background-position: top right;
+}
+
+#topbar {
+  display:block;
+  background-color: #B0BCD0;
+  height: 70px;
+  clear: both;
+}
+#toplogo {
+  display:block;
+  background-image: url(pics/kolab_logo.png);
+  background-color: #B0BCD0;
+  width: 245px;
+  height: 70px;
+  margin-left: 1em;
+  margin-top: 0.4em;
+  float: left;
+}
+#toptitle {
+  display:block;
+  text-align: right;
+  font-size: 200%;
+  padding-right: 1em;
+  padding-top: 0.5em;
+}
+#topuserinfo {
+  display:block;
+  background-color: #B0BCD0;
+  font-size: 80%;
+  padding: 0.1em;
+  border-bottom: solid 1px black;
+  text-align: right;
+}
+#topmenu {
+  background-color: #B0BCD0;
+  font-size: 90%;
+  border-bottom: solid 1px black;
+}
+#submenu {
+  background-color: #EEEEEE;
+  border-bottom: solid 1px black;
+  font-size: 90%;
+}
+
+.topmenuitem {
+  background-color: #B0BCD0;
+  border-right: solid 1px black;
+  padding-left: 0.5em;
+  padding-right: 0.5em;
+  margin: 0px;
+}
+.topmenuitemselected {
+  background-color: #EEEEEE;
+  border-right: solid 1px black;
+  padding-left: 0.5em;
+  padding-right: 0.5em;
+  margin: 0px;
+  border-bottom: solid 1px #EEEEEE;
+}
+.submenuitem {
+}
+.submenuitemselected {
+}
+.alphagroupitem {
+}
+.alphagroupitemselected {
+  font-weight:bold
+}
+#logout {
+  color: red;
+}
+#maintitle {
+  font-size: 200%;
+}
+#maincontent {
+  display:block;
+  padding: 1em;
+  margin: 1em;
+}
+#errorcontent {
+  display:block;
+  padding: 0.2em;
+  margin: 1em;
+  text-align: left;
+  color: red;
+  background-color: #EEEEEE;
+  border: solid 1px black;
+}
+#errorheader {
+  display:block;
+  text-align: left;
+  color: black;
+  background-color: #EEEEEE;
+  font-size: 150%;
+}
+#messagecontent {
+  display:block;
+  padding: 0.2em;
+  margin: 1em;
+  text-align: left;
+  color: green;
+  background-color: #EEEEEE;
+  border: solid 1px black;
+}
+#messageheader {
+  display:block;
+  text-align: left;
+  color: black;
+  background-color: #EEEEEE;
+  font-size: 150%;
+}
+.contenttext {
+  margin: 10px;
+}
+.contenttable {
+  width: 100%;
+  background-color: black;
+  border: 0px;
+}
+.contentroweven {
+  background-color: #C0CDE0;
+  margin: 0px;
+}
+.contentrowodd {
+  background-color: #D0DDF0;
+  margin: 0px;
+}
+.contentcell {
+  font-size: 90%;
+  padding: .1em .5em .1em .5em;
+  margin: 0px;
+/*  text-align: center; */
+}
+.actioncell {
+  font-size: 90%;
+  padding: .1em .5em .1em .5em;
+  width: 10%;
+  margin: 0px;
+  text-align: center;
+}
+.contentform {
+  /*float: left;*/
+  padding: .1em .5em .1em .5em;
+  background-color: #EEEEEE;
+  border: solid 1px black;
+}
+.contentformtable {
+  font-size: 90%;
+}
+.langcombo {
+  font-size: 80%;
+}
+
+#validators {
+  text-align: right;
+}
+
+th {
+  background-color: #EEEEEE;
+  border: 0px;
+}
+
+.ctrl {
+  background-color: #E0E3E0;
+  border: solid 1px black;
+  padding: .2em .5em .2em .5em;
+}
+
+.required_asterisk {
+  color: red;
+  font-size: 80%;
+  text-align: right;
+}
+
+label {
+  cursor: pointer;
+}
+
+.align_center {
+  text-align: center;
+}
+
+.align_right {
+  text-align: right;
+}
+
+.align_left {
+  text-align: left;
+}
diff --git a/koward/www/themes/screen.css b/koward/www/themes/screen.css
new file mode 100644 (file)
index 0000000..9075ea6
--- /dev/null
@@ -0,0 +1,3 @@
+/**
+ * Style for Koward.
+ */