Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| centos:mail_c6:horde_5 [21.11.2013 21:50. ] – [Konfiguration des MySQL-Datenbankbackendserver] django | centos:mail_c6:horde_5 [20.04.2018 10:40. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Horde Adressbuch: Turba ====== | ||
| + | Als nächste [[http:// | ||
| + | Informationen zu Installation und Konfiguration findet amn auch auf der offiziellen [[http:// | ||
| + | |||
| + | ===== Installation ===== | ||
| + | Wie auch schon bei der [[centos: | ||
| + | |||
| + | Das Programmpaket holen wir und nun erst einmal auf unseren Web-Server. | ||
| + | # pear install -a -B horde/turba | ||
| + | |||
| + | Starting to download turba-4.0.2.tgz (1,942,828 bytes) | ||
| + | .........................................................................done: | ||
| + | install ok: channel:// | ||
| + | |||
| + | ===== vorbereitende Konfiguration ===== | ||
| + | Die Konfiguration des Moduls **Turba** erfolgt, wie auch bereits bei der Grundkonfiguration des Horde-Frameworks, | ||
| + | Zunächst kopieren wir uns die Vorlagedatei für die Anbindung an unser Datenbank-Backendsystem, | ||
| + | # cp -a / | ||
| + | |||
| + | Anschließend legen wir noch die besagte Backup-Datei für die Konfiguration an. | ||
| + | # touch / | ||
| + | |||
| + | Zum Schluß weisen wir noch die Datei und Besitzrechte für die Konfigurationsdatei- und dessen Verzeichnis zu. | ||
| + | # chown -R root:apache / | ||
| + | |||
| + | # chmod g+w -R / | ||
| + | |||
| + | |||
| + | ===== Konfiguration des MySQL-Datenbankbackendserver ===== | ||
| + | Neben der Konfiguration der Anwendung selbst, müssen wir der Anwendung **Turba** auch noch mitteilen, wie und zu welchem Datenbankbackend-System sich die Anwendung verbinden soll. | ||
| + | |||
| + | <WRAP round tip>Die mitgelieferte Konfigurationsdatei **backends.php** lassen wir unangetastet. Die Konfiguration nehmen wir über die zuvor kopierte Datei **backends.local.php** vor.</ | ||
| + | |||
| + | Als erstes deaktivieren wir den ersten Standardeintrag und ergänzen dann den Eintrag für die Anbindung an unseren MySQL Datenbankserver-Server. | ||
| + | # vim / | ||
| + | |||
| + | |||
| + | <file php / | ||
| + | /** | ||
| + | * This file is where you specify the sources of contacts available to users | ||
| + | * at your installation. It contains a large number of EXAMPLES. Please | ||
| + | * remove or comment out those examples that YOU DON'T NEED. There are a | ||
| + | * number of properties that you can set for each server, including: | ||
| + | * | ||
| + | * IMPORTANT: DO NOT EDIT THIS FILE! | ||
| + | * Local overrides MUST be placed in backends.local.php or backends.d/ | ||
| + | * If the ' | ||
| + | * use backends-servername.php. | ||
| + | * | ||
| + | * Example backends.local.php configuration file that enables the LDAP address | ||
| + | * book and adds a composite field to the SQL address book: | ||
| + | * | ||
| + | * < | ||
| + | * <?php | ||
| + | * $cfgSources[' | ||
| + | * $cfgSources[' | ||
| + | * $cfgSources[' | ||
| + | * $cfgSources[' | ||
| + | * $cfgSources[' | ||
| + | * $cfgSources[' | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * ); | ||
| + | * </ | ||
| + | * | ||
| + | * Properties that can be set for each server: | ||
| + | * | ||
| + | * disabled: (boolean) If true, the config entry is disabled. | ||
| + | * | ||
| + | * title: (string) This is the common (user-visible) name that you want | ||
| + | | ||
| + | * | ||
| + | * type: (string) The types ' | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * params: (array) These are the connection parameters specific to the contact | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * map: (array) A list of mappings from the Turba attribute names (keys) to | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | * | ||
| + | * tabs: (array) All fields can be grouped into tabs with this optional entry. | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * search: (array) A list of Turba attribute names that can be searched for | ||
| + | | ||
| + | * | ||
| + | * strict: (array) A list of native field/ | ||
| + | | ||
| + | * | ||
| + | * approximate: | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * export: (boolean) If true, this source will appear on the Export menu, | ||
| + | | ||
| + | * | ||
| + | * browse: (boolean) If true, this source will be browseable via the Browse | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * use_shares: (boolean) If true, Horde_Share functionality will be enabled | ||
| + | | ||
| + | | ||
| + | * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * all_shares: (boolean) If true (and ' | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * list_name_field: | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * alternative_name: | ||
| + | | ||
| + | */ | ||
| + | |||
| + | /** | ||
| + | * A local address book in an SQL database. This implements a private | ||
| + | * per-user address book. Sharing of this source with other users may be | ||
| + | * accomplished by enabling Horde_Share for this source by setting | ||
| + | * ' | ||
| + | * | ||
| + | * Be sure to create a turba_objects table in your Horde database from the | ||
| + | * schema in turba/ | ||
| + | */ | ||
| + | $cfgSources[' | ||
| + | // ENABLED by default | ||
| + | ' | ||
| + | // Django : 2013-01-25 Adressbuch personalisiert | ||
| + | // default: ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // The default connection details are pulled from the Horde-wide SQL | ||
| + | // connection configuration. | ||
| + | // To use another DB connection, you must provide configuration | ||
| + | // information here - for example, | ||
| + | //' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | //), | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | array(' | ||
| + | ' | ||
| + | ' | ||
| + | array(' | ||
| + | ' | ||
| + | // This is a shorter version of a " | ||
| + | // consists of the first name and last name. | ||
| + | // ' | ||
| + | // ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | _(" | ||
| + | _(" | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * A local address book in an LDAP directory. This implements a public | ||
| + | * (shared) address book. | ||
| + | * | ||
| + | * To store distribution lists in the LDAP directory, you'll need to include | ||
| + | * horde.schema from Horde in your LDAP configuration. | ||
| + | * | ||
| + | * To store freebusy information in the LDAP directory, you'll need to include | ||
| + | * rfc2739.schema from Horde in your LDAP configuration. | ||
| + | */ | ||
| + | $cfgSources[' | ||
| + | // Disabled by default | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // For Active Directory: | ||
| + | // ' | ||
| + | ' | ||
| + | ' | ||
| + | // For Active Directory: | ||
| + | // ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // Add ' | ||
| + | // ' | ||
| + | // if using ' | ||
| + | // For Active Directory: | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | ' | ||
| + | // For Active Directory: | ||
| + | // ' | ||
| + | ' | ||
| + | // Consult the LDAP schema to verify that all required attributes for | ||
| + | // an entry are set and add them if needed. | ||
| + | ' | ||
| + | // Value used to fill in missing required attributes. | ||
| + | ' | ||
| + | // Check LDAP schema for valid syntax. If this is false an address | ||
| + | // field is assumed to have postalAddress syntax; otherwise the schema | ||
| + | // is consulted for the syntax to use. | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // For Active Directory you probably want to also set the following | ||
| + | // parameters: | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // Remove this mapping if using Active Directory server: | ||
| + | ' | ||
| + | |||
| + | // From horde.schema. | ||
| + | // included above: | ||
| + | // ' | ||
| + | // ' | ||
| + | |||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // From rfc2739.schema: | ||
| + | // ' | ||
| + | |||
| + | // For Active Directory servers: | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | // For Active Directory servers: | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ), | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * A personal LDAP address book. This assumes that the login is | ||
| + | * < | ||
| + | * server. Thus it is possible to bind with the username and password from the | ||
| + | * user. For more info; please refer to the docs/LDAP file in the Turba | ||
| + | * distribution. | ||
| + | * | ||
| + | * To store distribution lists in the LDAP directory, you'll need to include | ||
| + | * horde.schema from Horde in your LDAP configuration. | ||
| + | * | ||
| + | * To store freebusy information in the LDAP directory, you'll need to include | ||
| + | * rfc2739.schema from Horde in your LDAP configuration. | ||
| + | */ | ||
| + | /* First we need to get the uid. */ | ||
| + | $_ldap_uid = $GLOBALS[' | ||
| + | $_ldap_basedn = ' | ||
| + | $cfgSources[' | ||
| + | // Disabled by default | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // ' | ||
| + | ' | ||
| + | // ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // From horde.schema: | ||
| + | // ' | ||
| + | // ' | ||
| + | |||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // Evolution interopt attributes: (those that do not require the | ||
| + | // evolution.schema) | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // These are not stored on the LDAP server. | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | // From rfc2739.schema: | ||
| + | // ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * A local address book on a IMAP or Kolab server. This implements a private | ||
| + | * per-user address book. Sharing of this source with other users is | ||
| + | * accomplished by IMAP ACLs and by setting ' | ||
| + | */ | ||
| + | $cfgSources[' | ||
| + | // DISABLED by default | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | /* Personal */ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | array(' | ||
| + | ' | ||
| + | ' | ||
| + | array(' | ||
| + | ' | ||
| + | array(' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // This is a shorter version of a " | ||
| + | // consists of the first name and last name. | ||
| + | // ' | ||
| + | // ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | /* Location */ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | /* Communications */ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | /* Organization */ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | /* Other */ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | /* Invisible */ | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | _(" | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * A preferences-based address book. This will always be private. You can add | ||
| + | * any attributes you like to the map and it will just work; you can also | ||
| + | * create multiple prefs-based address books by changing the ' | ||
| + | * This is best for address books that are expected to remain small; it's not | ||
| + | * the most efficient, but it can't be beat for getting up and running | ||
| + | * quickly, especially if you already have Horde preferences working. Note | ||
| + | * that it is not searchable, though - searches will simply return the whole | ||
| + | * address book. | ||
| + | */ | ||
| + | $cfgSources[' | ||
| + | // Disabled by default | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * An address book based on message recipients. This will always be private and | ||
| + | * read-only. The address book content is provided by the | ||
| + | * contacts/ | ||
| + | * mail client that collects the most regular message recipients, like IMP | ||
| + | * 4.2. | ||
| + | */ | ||
| + | $cfgSources[' | ||
| + | // ENABLED by default | ||
| + | ' | ||
| + | // Django : 2013-01-25 Adressbuch personalisiert | ||
| + | // default: ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * A driver to show a user's Facebook friends as a turba address book. Some | ||
| + | * data (like email) is not readily available via the API, but other data, like | ||
| + | * birthdays (which will show up via the listTimeObjects API) may still be | ||
| + | * useful to some | ||
| + | */ | ||
| + | if (!empty($GLOBALS[' | ||
| + | $cfgSources[' | ||
| + | // Disabled if no provisioning with the Facebook API. | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * This source creates an address book for each group the current user is a | ||
| + | * member in. The address book will always be read only, and the group members | ||
| + | * must have an email address entered in their default identity. | ||
| + | * address will result in that member not being included in the address book. | ||
| + | */ | ||
| + | // | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ), | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ), | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | // ), | ||
| + | // ' | ||
| + | // ' | ||
| + | //); | ||
| + | |||
| + | //foreach ($GLOBALS[' | ||
| + | // $cfgSources[' | ||
| + | // $cfgSources[' | ||
| + | // $cfgSources[' | ||
| + | //} | ||
| + | |||
| + | /** | ||
| + | * IMSP based address book. | ||
| + | * | ||
| + | * Communicates with an IMSP backend server. | ||
| + | * | ||
| + | * Notes: | ||
| + | * You should configure the user's " | ||
| + | * address book is set in the ' | ||
| + | * be configured to be the same as the IMSP server username. Any other | ||
| + | * address books the user has access to will automatically be configured at | ||
| + | * runtime. | ||
| + | * | ||
| + | * In the params array, accepted values for auth_method are ' | ||
| + | * ' | ||
| + | * are using the imtest driver for Cyrus, please read the | ||
| + | * framework/ | ||
| + | * | ||
| + | * Groups in other IMSP-aware applications are just entries with multiple | ||
| + | * email addresses in the email field and a ' | ||
| + | * entry as a group. (The Cyrusoft applications, | ||
| + | * use a field named ' | ||
| + | * Turba_Object_Group is basically a List of existing Turba_Objects. The IMSP | ||
| + | * driver will map between these two structures when reading and writing | ||
| + | * groups. | ||
| + | * The only caveat is that IMSP groups that contain email addresses which do | ||
| + | * not have a cooresponding contact entry will be ignored. The group_id_field | ||
| + | * should be set to the IMSP field that flags the entry as a ' | ||
| + | * the group_id_value should be set to the value given to that field. | ||
| + | * | ||
| + | * By default, the username and password that were used to login to Horde is | ||
| + | * used to login to the IMSP server. If these credentials are different, | ||
| + | * there is a user preference in Horde to allow another username / password to | ||
| + | * be entered. The alternate credentials are always used if present. | ||
| + | * | ||
| + | * In the map array, since IMSP uses the ' | ||
| + | * what __key is mapped to ... and a dynamic field ' | ||
| + | * mapped to the horde ' | ||
| + | * field when the object is read from the server. | ||
| + | * | ||
| + | * If you wish to keep track of ownership of individual contacts, set | ||
| + | * ' | ||
| + | * will not be created this way and will therefore have no ' | ||
| + | * ' | ||
| + | * populated with the current username. | ||
| + | * | ||
| + | * To integrate with Horde_Share, | ||
| + | * IMSP Horde_Share hooks in horde/ | ||
| + | */ | ||
| + | // Check that IMSP is configured in Horde but fall through if there is no | ||
| + | // configuration at all. | ||
| + | if (!empty($GLOBALS[' | ||
| + | // First, get the user name to login to IMSP server with. | ||
| + | $_imsp_auth_user = $GLOBALS[' | ||
| + | $_imsp_auth_pass = $GLOBALS[' | ||
| + | if (!strlen($_imsp_auth_user)) { | ||
| + | $_imsp_auth_user = $GLOBALS[' | ||
| + | $_imsp_auth_pass = $GLOBALS[' | ||
| + | } | ||
| + | $cfgSources[' | ||
| + | // ENABLED by default | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // socket, command, and auth_mechanism are for imtest driver. | ||
| + | ' | ||
| + | | ||
| + | '', | ||
| + | ' | ||
| + | | ||
| + | ' | ||
| + | $GLOBALS[' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | // Dynamically generated acl rights for current user. | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | /** | ||
| + | * Get any other address books this user might be privy to. | ||
| + | * The values for attributes such as ' | ||
| + | * that are added below will be the same as the values set in the default | ||
| + | * book above. Any entries defined explicitly in cfgSources[] | ||
| + | * will override any entries gathered dynamically below. | ||
| + | */ | ||
| + | if (empty($cfgSources[' | ||
| + | try { | ||
| + | $result = Horde_Core_Imsp_Utils:: | ||
| + | $resultCount = count($result); | ||
| + | for ($i = 0; $i < $resultCount; | ||
| + | // Make sure we didn't define this source explicitly, | ||
| + | // but set the acls from the server regardless. | ||
| + | $dup = false; | ||
| + | foreach ($cfgSources as $key => $thisSource) { | ||
| + | if (($thisSource[' | ||
| + | ($thisSource[' | ||
| + | |||
| + | $dup = true; | ||
| + | $acl = $result[$i][' | ||
| + | $cfgSources[$key][' | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | if (!$dup) { | ||
| + | $cfgSources[$result[$i][' | ||
| + | } | ||
| + | } | ||
| + | } catch (Horde_Imsp_Exception $e) { | ||
| + | $GLOBALS[' | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | /* End IMSP sources. */ | ||
| + | </ | ||
| + | |||
| + | ===== Konfiguration über die WEB-GUI ===== | ||
| + | Die Konfiguration der Applikation **Turba** erfolgt dann über die GUI des Web-Frameworks. Dazu rufen wir unseren angelegten VHOST im Webbrowser auf. | ||
| + | $ firefox https:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Mit einem Klick auf das Zahnradsysmbol {{: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Hier wählen wir den Menüpunkt **// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Da wir die Anwendung **//IMP//** noch nicht konfiguriert haben und auch die nötigen mySQL-Datenbanktabellen angelegt haben, sind die beiden Fehlermeldungen normal. | ||
| + | |||
| + | Als erstes legen wir die notwendigen Datenbanktabellen an. Hierzu klicken wir auf den Punkt **DB schema is out of date**. Die Aktion wird uns entsprechend positiv quittiert. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Um zur Konfiguration von **Turba** zu gelangen, klicken wir nun auf den Punkt **Adressbuch (turba)**. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Auf den nun zur Verfügung stehenden Reitern, erfolgt die Konfiguration der Horde-Applikation **Turba**. | ||
| + | |||
| + | === Menu Settings === | ||
| + | $conf[menu][import_export] | ||
| + | |||
| + | === Clients === | ||
| + | $conf[client][addressbook] | ||
| + | |||
| + | === Exchange GAL === | ||
| + | $conf[gal][addressbook] | ||
| + | |||
| + | === Shares === | ||
| + | $conf[shares][source] | ||
| + | |||
| + | === Comments === | ||
| + | $conf[comments][allow] | ||
| + | |||
| + | === Virtual File Storage === | ||
| + | | ||
| + | |||
| + | |||
| + | Am Ende unserer Konfigurationsarbeit, | ||
| + | {{: | ||
| + | Die erfolgreiche Sicherung wird uns entsprechend angezeigt. | ||
| + | {{ : | ||
| + | |||
| + | |||
| + | ====== Links ====== | ||
| + | * **[[centos: | ||
| + | * **[[centos: | ||
| + | * **[[wiki: | ||
| + | * **[[http:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||