initial commit of file from CVS for e-smith-turba on Wed 12 Jul 09:11:40 BST 2023
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
{
|
||||
my $i2t = $DB->get('migrate-imp-to-turba');
|
||||
if ($i2t)
|
||||
{
|
||||
$i2t->delete;
|
||||
}
|
||||
}
|
111
root/etc/e-smith/events/actions/migrate-imp-to-turba
Normal file
111
root/etc/e-smith/events/actions/migrate-imp-to-turba
Normal file
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/perl -wT
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# copyright (C) 2002 Mitel Networks Corporation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Technical support for this program is available from Mitel Networks
|
||||
# Please visit our web site www.mitel.com/sme/ for details.
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
# Derived from imp2turba.pl-txt contrib script from horde.org
|
||||
# Modified for SME Server 5.5 by Mark Knox <markk@e-smith.com>
|
||||
|
||||
use strict;
|
||||
use esmith::ConfigDB;
|
||||
use DBI;
|
||||
|
||||
# Exit early if there is nothing to do
|
||||
exit 0 unless (-f '/var/lib/mysql/horde/imp_addr.frm');
|
||||
die("horde db must exist") unless ( -d "/var/lib/mysql/horde/");
|
||||
die("turba db must exist") unless ( -f "/var/lib/mysql/horde/turba_objects.frm");
|
||||
|
||||
my $conf = esmith::ConfigDB->open() || die 'Unable to open config db';
|
||||
|
||||
# FIXME - what are these for?
|
||||
$ENV{'PATH'} = '';
|
||||
$ENV{'SHELL'} = '/bin/bash';
|
||||
delete $ENV{'ENV'};
|
||||
delete $ENV{'BASH_ENV'};
|
||||
|
||||
our $location = 'localhost';
|
||||
our $port_num = '3306';
|
||||
our $username = 'horde';
|
||||
our $password = $conf->get_prop('horde', 'DbPassword') || 'horde';
|
||||
|
||||
our $IMP_DATABASE = 'horde';
|
||||
our $IMP_TABLE = 'imp_addr';
|
||||
our $TURBA_DATABASE = 'horde';
|
||||
our $TURBA_TABLE = 'turba_objects';
|
||||
our $domain = $conf->get('DomainName') || 'localhost';
|
||||
|
||||
unless ($domain eq "localhost")
|
||||
{
|
||||
$domain = $domain->value || "localhost";
|
||||
}
|
||||
|
||||
our $dbi_options = {RaiseError => 1, ChopBlanks => 1, AutoCommit => 1};
|
||||
|
||||
my $db_imphandle = DBI->connect
|
||||
("DBI:mysql:$IMP_DATABASE:$location:$port_num",
|
||||
$username, $password, $dbi_options )
|
||||
|| die ("Connection error: $DBI::errstr");
|
||||
|
||||
my $db_turbahandle = DBI->connect
|
||||
("DBI:mysql:$TURBA_DATABASE",
|
||||
$username, $password, $dbi_options )
|
||||
|| die ("Connection error: $DBI::errstr");
|
||||
|
||||
|
||||
my $imp_statement = $db_imphandle->prepare("SELECT * FROM $IMP_TABLE");
|
||||
$imp_statement->execute();
|
||||
my $turba_statement;
|
||||
|
||||
while (my ($owner, $address, $nickname, $fullname) =
|
||||
$imp_statement->fetchrow_array())
|
||||
{
|
||||
my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) );
|
||||
my $unique_key = join("", @chars[ map { rand @chars } ( 1 .. 31 ) ]);
|
||||
|
||||
# Remove the @domain.com part from the $owner, doesn't work in Turba
|
||||
$owner =~ s/\@.*$//;
|
||||
$owner .= "\@$domain";
|
||||
|
||||
# Quote the strings appropriately for the database
|
||||
my $quoted_key = $db_imphandle->quote($unique_key);
|
||||
my $quoted_owner = $db_imphandle->quote($owner);
|
||||
my $quoted_fullname = $db_imphandle->quote($fullname);
|
||||
my $quoted_address = $db_imphandle->quote($address);
|
||||
my $quoted_nickname = $db_imphandle->quote($nickname);
|
||||
|
||||
$turba_statement = "INSERT INTO $TURBA_TABLE VALUES
|
||||
($quoted_key, $quoted_owner, $quoted_fullname,
|
||||
$quoted_nickname,$quoted_address, '','','','','','','','','','','')";
|
||||
$turba_statement = $db_turbahandle->prepare($turba_statement)
|
||||
|| die "prepare: $$turba_statement: $DBI::errstr";
|
||||
$turba_statement->execute || die "execute: $$turba_statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
$imp_statement = "DROP TABLE $IMP_TABLE";
|
||||
$imp_statement = $db_imphandle->prepare($imp_statement)
|
||||
|| die "prepare: $$imp_statement: $DBI::errstr";
|
||||
$imp_statement->execute || die "execute: $$imp_statement: $DBI::errstr";
|
||||
$imp_statement->finish();
|
||||
# turba_statement will be undef if the imp_addr table is empty, so we check
|
||||
$turba_statement->finish() if $turba_statement;
|
||||
|
||||
$db_imphandle->disconnect;
|
||||
$db_turbahandle->disconnect;
|
598
root/etc/e-smith/events/actions/turba_upgrade
Normal file
598
root/etc/e-smith/events/actions/turba_upgrade
Normal file
@@ -0,0 +1,598 @@
|
||||
#!/usr/bin/perl -w
|
||||
#----------------------------------------------------------------------
|
||||
# copyright (C) 2002-2005 Mitel Networks Corporation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Technical support for this program is available from Mitel Networks
|
||||
# Please visit our web site www.mitel.com/sme/ for details.
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use DBI;
|
||||
use esmith::ConfigDB;
|
||||
use esmith::util;
|
||||
|
||||
# Exit early if there is nothing to do
|
||||
die("horde db must exist") unless ( -d "/var/lib/mysql/horde/");
|
||||
die("turba db must exist") unless ( -f "/var/lib/mysql/horde/turba_objects.frm");
|
||||
|
||||
|
||||
# This is a translation of the script 'mysql_upgrade_1.1_to_1.2.sql
|
||||
# that is safe to run multiple times, and which can be run on a 1.2
|
||||
# installation without barfing.
|
||||
|
||||
my $conf = esmith::ConfigDB->open_ro
|
||||
or die "Can't open configuration database: $!\n";
|
||||
our $username = 'root';
|
||||
our $password = esmith::util::LdapPassword();
|
||||
our $TURBA_DATABASE = 'horde';
|
||||
our $dbi_options = {RaiseError => 1, ChopBlanks => 1, AutoCommit => 1};
|
||||
|
||||
my $db_turbahandle = DBI->connect
|
||||
("DBI:mysql:$TURBA_DATABASE",
|
||||
$username, $password, $dbi_options )
|
||||
|| die ("Connection error: $DBI::errstr");
|
||||
|
||||
#This section commented out for Turba 2.2 since on a new install this isn't needed
|
||||
#and on a 6.x and 7.x install, this would have already been run. John H. Bennett III
|
||||
# These are all safe to run multiple times
|
||||
|
||||
my @statements = (
|
||||
"ALTER TABLE turba_shares CHANGE share_owner share_owner VARCHAR(255)",
|
||||
"ALTER TABLE turba_shares CHANGE share_flags share_flags SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE turba_shares CHANGE perm_creator perm_creator SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE turba_shares CHANGE perm_default perm_default SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE turba_shares CHANGE perm_guest perm_guest SMALLINT DEFAULT 0 NOT NULL",
|
||||
"ALTER TABLE turba_shares_users CHANGE user_uid user_uid VARCHAR(255)",
|
||||
"ALTER TABLE turba_shares_groups CHANGE group_uid group_uid VARCHAR(255)",
|
||||
);
|
||||
|
||||
foreach my $statement (@statements)
|
||||
{
|
||||
$statement =
|
||||
$db_turbahandle->prepare("$statement")
|
||||
or die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# We now need to create some columns, but we need to first check
|
||||
# whether they exist already
|
||||
my $sth = $db_turbahandle->prepare("show columns from turba_objects");
|
||||
$sth->execute;
|
||||
my $turba_objects = $sth->fetchall_hashref('Field');
|
||||
|
||||
my $sth1 = $db_turbahandle->prepare("show columns from turba_shares");
|
||||
$sth1->execute;
|
||||
my $turba_shares = $sth1->fetchall_hashref('Field');
|
||||
|
||||
my $sth2 = $db_turbahandle->prepare("show columns from turba_shares_groups");
|
||||
$sth2->execute;
|
||||
my $turba_shares_groups = $sth2->fetchall_hashref('Field');
|
||||
|
||||
my $sth3 = $db_turbahandle->prepare("show columns from turba_shares_users");
|
||||
$sth3->execute;
|
||||
my $turba_shares_users = $sth3->fetchall_hashref('Field');
|
||||
|
||||
|
||||
#print "Field object_type is ",
|
||||
# defined $turba_objects->{object_type} ? "already " : "un",
|
||||
# "defined\n";
|
||||
|
||||
# We need to be careful about these as they will fail if the
|
||||
# column exists, so we check the error.
|
||||
|
||||
unless (defined $turba_objects->{object_firstname})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_firstname ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_lastname})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_lastname ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
|
||||
my $statement1 =
|
||||
"UPDATE turba_objects SET object_lastname = object_name";
|
||||
$statement1 = $db_turbahandle->prepare($statement1) or
|
||||
die "prepare: $$statement1: $DBI::errstr";
|
||||
$statement1->execute or die "execute: $$statement1: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (!defined $turba_objects->{object_name})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects DROP COLUMN object_name";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_middlenames})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_middlenames ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_nameprefix})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_nameprefix ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_namesuffix})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_namesuffix ".
|
||||
"VARCHAR(32)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_phototype})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_phototype ".
|
||||
"VARCHAR(10)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_bday})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_bday ".
|
||||
"VARCHAR(10)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_spouse})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_spouse ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_anniversary})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_anniversary ".
|
||||
"VARCHAR(10)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_children})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_children ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_homestreet})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_homestreet ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
|
||||
my $statement1 =
|
||||
"UPDATE turba_objects SET object_homestreet = object_homeaddress";
|
||||
$statement1 = $db_turbahandle->prepare($statement1) or
|
||||
die "prepare: $$statement1: $DBI::errstr";
|
||||
$statement1->execute or die "execute: $$statement1: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (!defined $turba_objects->{object_homeaddress})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects DROP COLUMN object_homeaddress";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_homepob})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_homepob ".
|
||||
"VARCHAR(10)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_homecity})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_homecity ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_homeprovince})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_homeprovince ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_homepostalcode})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_homepostalcode ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_homecountry})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_homecountry ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_workstreet})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_workstreet ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
|
||||
my $statement1 =
|
||||
"UPDATE turba_objects SET object_workstreet = object_workaddress";
|
||||
$statement1 = $db_turbahandle->prepare($statement1) or
|
||||
die "prepare: $$statement1: $DBI::errstr";
|
||||
$statement1->execute or die "execute: $$statement1: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (!defined $turba_objects->{object_workaddress})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects DROP COLUMN object_workaddress";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_workpob})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_workpob ".
|
||||
"VARCHAR(10)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_workcity})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_workcity ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_workprovince})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_workprovince ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_workpostalcode})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_workpostalcode ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_workcountry})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_workcountry ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_tz})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_tz ".
|
||||
"VARCHAR(32)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_geo})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_geo ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_pager})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_pager ".
|
||||
"VARCHAR(25)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_role})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_role ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_logotype})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_logotype ".
|
||||
"VARCHAR(10)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_category})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_category ".
|
||||
"VARCHAR(80)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_url})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_url ".
|
||||
"VARCHAR(255)";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_photo})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_photo BLOB";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
unless (defined $turba_objects->{object_logo})
|
||||
{
|
||||
my $statement =
|
||||
"ALTER TABLE turba_objects ADD COLUMN object_logo BLOB";
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for owner_id if needed
|
||||
unless ($turba_objects->{owner_id}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_objects ' .
|
||||
'add index turba_owner_idx (owner_id)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for object_email_id if needed
|
||||
unless ($turba_objects->{object_email}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_objects ' .
|
||||
'add index turba_email_idx (object_email)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for object_firstname if needed
|
||||
unless ($turba_objects->{object_firstname}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_objects ' .
|
||||
'add index turba_firstname_idx (object_firstname)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for owner_lastname needed
|
||||
unless ($turba_objects->{object_lastname}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_objects ' .
|
||||
'add index turba_lastname_idx (object_lastname)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_name if needed
|
||||
unless ($turba_shares->{share_name}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares ' .
|
||||
'add index turba_shares_share_name_idx (share_name)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_owner if needed
|
||||
unless ($turba_shares->{share_owner}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares ' .
|
||||
'add index turba_shares_share_owner_idx (share_owner)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm_creator if needed
|
||||
unless ($turba_shares->{perm_creator}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares ' .
|
||||
'add index turba_shares_perm_creator_idx (perm_creator)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm_default if needed
|
||||
unless ($turba_shares->{perm_default}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares ' .
|
||||
'add index turba_shares_perm_default_idx (perm_default)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm_guest if needed
|
||||
unless ($turba_shares->{perm_guest}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares ' .
|
||||
'add index turba_shares_perm_guest_idx (perm_guest)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_id if needed
|
||||
unless ($turba_shares_groups->{share_id}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares_groups ' .
|
||||
'add index turba_shares_groups_share_id_idx (share_id)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for group_uid if needed
|
||||
unless ($turba_shares_groups->{group_uid}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares_groups ' .
|
||||
'add index turba_shares_groups_group_uid_idx (group_uid)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm if needed
|
||||
unless ($turba_shares_groups->{perm}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares_groups ' .
|
||||
'add index turba_shares_groups_perm_idx (perm)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for share_id if needed
|
||||
unless ($turba_shares_users->{share_id}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares_users ' .
|
||||
'add index turba_shares_users_share_id_idx (share_id)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for user_uid if needed
|
||||
unless ($turba_shares_users->{user_uid}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares_users ' .
|
||||
'add index turba_shares_users_user_uid_idx (user_uid)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
||||
|
||||
# Create an index for perm if needed
|
||||
unless ($turba_shares_users->{perm}->{Key})
|
||||
{
|
||||
my $statement = 'alter table turba_shares_users ' .
|
||||
'add index turba_shares_users_perm_idx (perm)';
|
||||
$statement = $db_turbahandle->prepare($statement) or
|
||||
die "prepare: $$statement: $DBI::errstr";
|
||||
$statement->execute or die "execute: $$statement: $DBI::errstr";
|
||||
}
|
0
root/etc/e-smith/events/bootstrap-console-save/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/bootstrap-console-save/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/email-update/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/email-update/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/post-install/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/post-install/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/post-upgrade/.gitignore
vendored
Normal file
0
root/etc/e-smith/events/post-upgrade/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
PERMS=0544
|
@@ -0,0 +1 @@
|
||||
PERMS=0544
|
@@ -0,0 +1 @@
|
||||
PERMS=0544
|
@@ -0,0 +1 @@
|
||||
PERMS=0544
|
@@ -0,0 +1,2 @@
|
||||
PERMS=0640
|
||||
GID="www"
|
@@ -0,0 +1,2 @@
|
||||
PERMS=0640
|
||||
GID="www"
|
@@ -0,0 +1,2 @@
|
||||
PERMS=0640
|
||||
GID="www"
|
@@ -0,0 +1,2 @@
|
||||
PERMS=0640
|
||||
GID="www"
|
@@ -0,0 +1,3 @@
|
||||
#! /bin/sh
|
||||
#test -f /var/lib/mysql/horde/turba_objects.frm && exit 0
|
||||
exec mysql horde < /home/httpd/html/horde/smeserver/turba.sql
|
@@ -0,0 +1,2 @@
|
||||
#! /bin/sh
|
||||
exec /etc/e-smith/events/actions/turba_upgrade
|
@@ -0,0 +1,2 @@
|
||||
#! /bin/sh
|
||||
exec mysql < /home/httpd/html/horde/smeserver/turba_mysql_reset_addressbook_pref.sql
|
@@ -0,0 +1,3 @@
|
||||
#! /bin/sh
|
||||
test -f /var/lib/mysql/horde/imp_addr.frm && exit 0
|
||||
exec /etc/e-smith/events/actions/migrate-imp-to-turba
|
@@ -0,0 +1,29 @@
|
||||
{
|
||||
my $status = $imp{status} || 'disabled';
|
||||
if ($status eq 'enabled')
|
||||
{
|
||||
$OUT .= qq(
|
||||
# IMP specific access configuration
|
||||
|
||||
<Directory /home/httpd/html/horde/turba/config>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/httpd/html/horde/turba/lib>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/httpd/html/horde/turba/locale>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
|
||||
<Directory /home/httpd/html/horde/turba/templates>
|
||||
order deny,allow
|
||||
deny from all
|
||||
</Directory>
|
||||
);
|
||||
}
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
{
|
||||
my $TurbaMenu = $turba{MenuArray} || "enabled"; return "" unless ($TurbaMenu eq "enabled");
|
||||
$apps{turba} = 1;
|
||||
$OUT = '';
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
// 210AppRegistryTurba
|
||||
$this->applications['turba'] = array(
|
||||
'fileroot' => dirname(__FILE__) . '/../turba',
|
||||
'webroot' => $this->applications['horde']['webroot'] . '/turba',
|
||||
'name' => _("Address Book"),
|
||||
'status' => 'active',
|
||||
'provides' => array('contacts', 'clients/getClientSource', 'clients/clientFields', 'clients/getClient', 'clients/getClients', 'clients/addClient', 'clients/updateClient', 'clients/deleteClient', 'clients/searchClients'),
|
||||
'menu_parent' => 'organizing'
|
||||
);
|
||||
|
||||
$this->applications['turba-menu'] = array(
|
||||
'status' => 'block',
|
||||
'app' => 'turba',
|
||||
'blockname' => 'tree_menu',
|
||||
'menu_parent' => 'turba',
|
||||
);
|
||||
|
@@ -0,0 +1,611 @@
|
||||
/**
|
||||
* Turba Attributes File.
|
||||
*
|
||||
* This file contains examples of attributes that Turba understands, and their
|
||||
* types. It may be safely edited by hand. Use attributes.php.dist as a
|
||||
* reference.
|
||||
*
|
||||
* The syntax of this array is as follows:<pre>
|
||||
* label - The text that the user will see attached to this
|
||||
* field.
|
||||
* type - One of the following:
|
||||
* - spacer - header
|
||||
* - description - html
|
||||
* - number - int
|
||||
* - intlist - text
|
||||
* - longtext - countedtext
|
||||
* - address - file
|
||||
* - boolean - link
|
||||
* - email - emailconfirm
|
||||
* - password - passwordconfirm
|
||||
* - enum - multienum
|
||||
* - radio - set
|
||||
* - date - time
|
||||
* - monthyear - monthdayyear
|
||||
* - colorpicker - sorter
|
||||
* - creditcard - invalid
|
||||
* - stringlist - addresslink (requires Horde-3.2)
|
||||
* required - Boolean whether this field is mandatory.
|
||||
* readonly - Boolean whether this field is editable.
|
||||
* desc - Any help text attached to the field.
|
||||
* time_object_label - The text to describe the time object category.
|
||||
* Only valid for monthdayyear types and removing this
|
||||
* from a monthdayyear type will hide it from the
|
||||
* listTimeObjects api.
|
||||
* params - Any other parameters that need to be passed to the
|
||||
* field. For a documentation of available field
|
||||
* paramaters see
|
||||
* http://wiki.horde.org/Doc/Dev/FormTypes.
|
||||
* </pre>
|
||||
*
|
||||
* $Horde: turba/config/attributes.php.dist,v 1.36.6.18 2008-11-12 06:29:26 wrobel Exp $
|
||||
*/
|
||||
|
||||
/* Personal stuff. */
|
||||
$attributes['name'] = array(
|
||||
'label' => _("Name"),
|
||||
'type' => 'text',
|
||||
'required' => true,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['firstname'] = array(
|
||||
'label' => _("First Name"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['lastname'] = array(
|
||||
'label' => _("Last Name"),
|
||||
'type' => 'text',
|
||||
'required' => true,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['middlenames'] = array(
|
||||
'label' => _("Middle Names"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['namePrefix'] = array(
|
||||
'label' => _("Name Prefixes"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 32, 'maxlength' => 32)
|
||||
);
|
||||
$attributes['nameSuffix'] = array(
|
||||
'label' => _("Name Suffixes"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 32, 'maxlength' => 32)
|
||||
);
|
||||
$attributes['alias'] = array(
|
||||
'label' => _("Alias"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 32)
|
||||
);
|
||||
$attributes['nickname'] = array(
|
||||
'label' => _("Nickname"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 32, 'maxlength' => 32)
|
||||
);
|
||||
$attributes['birthday'] = array(
|
||||
'label' => _("Birthday"),
|
||||
'type' => 'monthdayyear',
|
||||
'required' => false,
|
||||
'params' => array('start_year' => 1900, 'end_year' => null, 'picker' => true, 'format_in' => '%Y-%m-%d', 'format_out' => $GLOBALS['prefs']->getValue('date_format')),
|
||||
'time_object_label' => _("Birthdays"),
|
||||
);
|
||||
$attributes['anniversary'] = array(
|
||||
'label' => _("Anniversary"),
|
||||
'type' => 'monthdayyear',
|
||||
'params' => array('start_year' => 1900, 'end_year' => null, 'picker' => true, 'format_in' => '%Y-%m-%d', 'format_out' => $GLOBALS['prefs']->getValue('date_format')),
|
||||
'required' => false,
|
||||
'time_object_label' => _("Anniversaries"),
|
||||
);
|
||||
$attributes['spouse'] = array(
|
||||
'label' => _("Spouse"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['children'] = array(
|
||||
'label' => _("Children"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['photo'] = array(
|
||||
'label' => _("Photo"),
|
||||
'type' => 'image',
|
||||
'required' => false,
|
||||
'params' => array('show_upload' => true, 'show_keeporig' => true, 'max_filesize' => null),
|
||||
);
|
||||
$attributes['phototype'] = array(
|
||||
'label' => _("Photo MIME Type"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
|
||||
/* Locations, addresses. */
|
||||
$attributes['homeAddress'] = array(
|
||||
'label' => _("Home Address"),
|
||||
'type' => 'address',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
$attributes['homeStreet'] = array(
|
||||
'label' => _("Home Street Address"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['homePOBox'] = array(
|
||||
'label' => _("Home Post Office Box"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10)
|
||||
);
|
||||
$attributes['homeCity'] = array(
|
||||
'label' => _("Home City"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['homeProvince'] = array(
|
||||
'label' => _("Home State/Province"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['homePostalCode'] = array(
|
||||
'label' => _("Home Postal Code"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10)
|
||||
);
|
||||
$attributes['homeCountry'] = array(
|
||||
'label' => _("Home Country"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
/* If using Horde 3.2 or higher, you can display a drop down with a country
|
||||
* list. */
|
||||
// $attributes['homeCountry'] = array(
|
||||
// 'label' => _("Home Country"),
|
||||
// 'type' => 'country',
|
||||
// 'required' => false,
|
||||
// 'params' => array('prompt' => true)
|
||||
// );
|
||||
$attributes['workAddress'] = array(
|
||||
'label' => _("Work Address"),
|
||||
'type' => 'address',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
$attributes['workStreet'] = array(
|
||||
'label' => _("Work Street Address"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['workPOBox'] = array(
|
||||
'label' => _("Work Post Office Box"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10)
|
||||
);
|
||||
$attributes['workCity'] = array(
|
||||
'label' => _("Work City"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['workProvince'] = array(
|
||||
'label' => _("Work State/Province"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['workPostalCode'] = array(
|
||||
'label' => _("Work Postal Code"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10)
|
||||
);
|
||||
$attributes['workCountry'] = array(
|
||||
'label' => _("Work Country"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
/* If using Horde 3.2 or higher, you can display a drop down with a country
|
||||
* list. */
|
||||
// $attributes['workCountry'] = array(
|
||||
// 'label' => _("Work Country"),
|
||||
// 'type' => 'country',
|
||||
// 'required' => false,
|
||||
// 'params' => array('prompt' => true)
|
||||
// );
|
||||
$attributes['companyAddress'] = array(
|
||||
'label' => _("Company Address"),
|
||||
'type' => 'address',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
$attributes['timezone'] = array(
|
||||
'label' => _("Time Zone"),
|
||||
'type' => 'enum',
|
||||
'params' => array('values' => $GLOBALS['tz'], 'prompt' => true),
|
||||
'required' => false
|
||||
);
|
||||
|
||||
/* Communication. */
|
||||
$attributes['email'] = array(
|
||||
'label' => _("Email"),
|
||||
'type' => 'email',
|
||||
'required' => false,
|
||||
'params' => array('allow_multi' => true, 'strip_domain' => false, 'link_compose' => true)
|
||||
);
|
||||
$attributes['emails'] = array(
|
||||
'label' => _("Emails"),
|
||||
'type' => 'email',
|
||||
'required' => false,
|
||||
'params' => array('allow_multi' => true, 'strip_domain' => false, 'link_compose' => true)
|
||||
);
|
||||
$attributes['homePhone'] = array(
|
||||
'label' => _("Home Phone"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['workPhone'] = array(
|
||||
'label' => _("Work Phone"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['cellPhone'] = array(
|
||||
'label' => _("Mobile Phone"),
|
||||
'type' => 'cellphone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['fax'] = array(
|
||||
'label' => _("Fax"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['pager'] = array(
|
||||
'label' => _("Pager"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
|
||||
/* Job, company, organization. */
|
||||
$attributes['title'] = array(
|
||||
'label' => _("Job Title"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['role'] = array(
|
||||
'label' => _("Occupation"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['businessCategory'] = array(
|
||||
'label' => _("Business Category"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['company'] = array(
|
||||
'label' => _("Company"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['department'] = array(
|
||||
'label' => _("Department"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['office'] = array(
|
||||
'label' => _("Office"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['logo'] = array(
|
||||
'label' => _("Logo"),
|
||||
'type' => 'image',
|
||||
'required' => false,
|
||||
'params' => array('show_upload' => true, 'show_keeporig' => true, 'max_filesize' => null),
|
||||
);
|
||||
$attributes['logotype'] = array(
|
||||
'label' => _("Logo MIME Type"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
|
||||
/* Other */
|
||||
$attributes['notes'] = array(
|
||||
'label' => _("Notes"),
|
||||
'type' => 'longtext',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
$attributes['website'] = array(
|
||||
'label' => _("Website URL"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['freebusyUrl'] = array(
|
||||
'label' => _("Freebusy URL"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['pgpPublicKey'] = array(
|
||||
'label' => _("PGP Public Key"),
|
||||
'type' => 'longtext',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
$attributes['smimePublicKey'] = array(
|
||||
'label' => _("S/MIME Public Certificate"),
|
||||
'type' => 'longtext',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
/* If using Horde 3.3 or later, you can enable the following attributes to
|
||||
* enable pretty rendering of PGP and S/MIME keys. */
|
||||
// $attributes['pgpPublicKey'] = array(
|
||||
// 'label' => _("PGP Public Key"),
|
||||
// 'type' => 'pgp',
|
||||
// 'required' => false,
|
||||
// 'params' => array('gpg' => '/usr/bin/gpg', 'temp_dir' => Horde::getTempDir(), 'rows' => 3, 'cols' => 40)
|
||||
// );
|
||||
// $attributes['smimePublicKey'] = array(
|
||||
// 'label' => _("S/MIME Public Certificate"),
|
||||
// 'type' => 'smime',
|
||||
// 'required' => false,
|
||||
// 'params' => array('temp_dir' => Horde::getTempDir(), 'rows' => 3, 'cols' => 40)
|
||||
// );
|
||||
/* This attribute uses Horde's categories and is an example how to use an enum
|
||||
* field. Don't forget to add a 'map' entry to config/sources.php if you want
|
||||
* to use this attribute. */
|
||||
require_once 'Horde/Prefs/CategoryManager.php';
|
||||
require_once 'Horde/Array.php';
|
||||
$cManager = new Prefs_CategoryManager();
|
||||
$attributes['category'] = array(
|
||||
'label' => _("Category"),
|
||||
'type' => 'enum',
|
||||
'params' => array(
|
||||
'values' => array_merge(array('' => _("Unfiled")), Horde_Array::valuesToKeys($cManager->get())),
|
||||
'prompt' => false),
|
||||
'required' => false
|
||||
);
|
||||
/* If using Horde 3.2 or later, you can use the following category attribute
|
||||
* instead which shows category colors and allows to add new categories. */
|
||||
// $attributes['category'] = array(
|
||||
// 'label' => _("Category"),
|
||||
// 'type' => 'category',
|
||||
// 'params' => array(),
|
||||
// 'required' => false
|
||||
// );
|
||||
|
||||
/* Additional attributes supported by Kolab */
|
||||
$attributes['kolabHomeServer'] = array(
|
||||
'label' => _("Kolab Home Server"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['initials'] = array(
|
||||
'label' => _("Initials"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['instantMessenger'] = array(
|
||||
'label' => _("Instant Messenger"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['manager'] = array(
|
||||
'label' => _("Manager"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['assistant'] = array(
|
||||
'label' => _("Assistant"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['gender'] = array(
|
||||
'label' => _("Gender"),
|
||||
'type' => 'enum',
|
||||
'required' => false,
|
||||
'params' => array('values' => array(_("male"), _("female")), 'prompt' => true),
|
||||
);
|
||||
$attributes['language'] = array(
|
||||
'label' => _("Language"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['latitude'] = array(
|
||||
'label' => _("Latitude"),
|
||||
'type' => 'number',
|
||||
'required' => false,
|
||||
);
|
||||
$attributes['longitude'] = array(
|
||||
'label' => _("Longitude"),
|
||||
'type' => 'number',
|
||||
'required' => false,
|
||||
);
|
||||
|
||||
/* Additional attributes supported by some SyncML clients */
|
||||
$attributes['workEmail'] = array(
|
||||
'label' => _("Work Email"),
|
||||
'type' => 'email',
|
||||
'required' => false,
|
||||
'params' => array('allow_multi' => false, 'strip_domain' => false, 'link_compose' => true)
|
||||
);
|
||||
$attributes['homeEmail'] = array(
|
||||
'label' => _("Home Email"),
|
||||
'type' => 'email',
|
||||
'required' => false,
|
||||
'params' => array('allow_multi' => false, 'strip_domain' => false, 'link_compose' => true)
|
||||
);
|
||||
$attributes['phone'] = array(
|
||||
'label' => _("Common Phone"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['workFax'] = array(
|
||||
'label' => _("Work Fax"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['homeFax'] = array(
|
||||
'label' => _("Home Fax"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['workCellPhone'] = array(
|
||||
'label' => _("Work Mobile Phone"),
|
||||
'type' => 'cellphone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['homeCellPhone'] = array(
|
||||
'label' => _("Home Mobile Phone"),
|
||||
'type' => 'cellphone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['videoCall'] = array(
|
||||
'label' => _("Common Video Call"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['workVideoCall'] = array(
|
||||
'label' => _("Work Video Call"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['homeVideoCall'] = array(
|
||||
'label' => _("Home Video Call"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['voip'] = array(
|
||||
'label' => _("VoIP"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['sip'] = array(
|
||||
'label' => _("SIP"),
|
||||
'type' => 'email',
|
||||
'required' => false,
|
||||
'params' => array('allow_multi' => true, 'strip_domain' => false, 'link_compose' => true)
|
||||
);
|
||||
$attributes['ptt'] = array(
|
||||
'label' => _("PTT"),
|
||||
'type' => 'phone',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['commonExtended'] = array(
|
||||
'label' => _("Common Address Extended"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['commonStreet'] = array(
|
||||
'label' => _("Common Street"),
|
||||
'type' => 'address',
|
||||
'required' => false,
|
||||
'params' => array('rows' => 3, 'cols' => 40)
|
||||
);
|
||||
$attributes['commonPOBox'] = array(
|
||||
'label' => _("Common Post Office Box"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10)
|
||||
);
|
||||
$attributes['commonCity'] = array(
|
||||
'label' => _("Common City"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['commonProvince'] = array(
|
||||
'label' => _("Common State/Province"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['commonPostalCode'] = array(
|
||||
'label' => _("Common Postal Code"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 10, 'maxlength' => 10)
|
||||
);
|
||||
$attributes['commonCountry'] = array(
|
||||
'label' => _("Common Country"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['workWebsite'] = array(
|
||||
'label' => _("Work Website URL"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['workExtended'] = array(
|
||||
'label' => _("Work Address Extended"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['workLatitude'] = array(
|
||||
'label' => _("Work Latitude"),
|
||||
'type' => 'number',
|
||||
'required' => false,
|
||||
);
|
||||
$attributes['workLongitude'] = array(
|
||||
'label' => _("Work Longitude"),
|
||||
'type' => 'number',
|
||||
'required' => false,
|
||||
);
|
||||
$attributes['homeWebsite'] = array(
|
||||
'label' => _("Home Website URL"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['homeExtended'] = array(
|
||||
'label' => _("Home Address Extended"),
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'params' => array('regex' => '', 'size' => 40, 'maxlength' => 255)
|
||||
);
|
||||
$attributes['homeLatitude'] = array(
|
||||
'label' => _("Home Latitude"),
|
||||
'type' => 'number',
|
||||
'required' => false,
|
||||
);
|
||||
$attributes['homeLongitude'] = array(
|
||||
'label' => _("Home Longitude"),
|
||||
'type' => 'number',
|
||||
'required' => false,
|
||||
);
|
@@ -0,0 +1,13 @@
|
||||
|
||||
/* SME Server attributes */
|
||||
$attributes['groupdescription'] = array(
|
||||
'label' => _("Group Description"),
|
||||
'type' => 'text',
|
||||
'required' => false
|
||||
);
|
||||
$attributes['groupmembers'] = array(
|
||||
'label' => _("Group Members"),
|
||||
'type' => 'text',
|
||||
'required' => false
|
||||
);
|
||||
|
@@ -0,0 +1,3 @@
|
||||
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
|
||||
// $Horde: turba/config/conf.xml,v 1.6.2.6 2008/06/25 15:52:54 jan Exp $
|
||||
|
@@ -0,0 +1,7 @@
|
||||
// 100Conf
|
||||
$conf['menu']['import_export'] = true;
|
||||
$conf['client']['addressbook'] = 'localsql';
|
||||
$conf['shares']['source'] = 'localsql';
|
||||
$conf['comments']['allow'] = true;
|
||||
$conf['documents']['type'] = 'horde';
|
||||
|
@@ -0,0 +1,3 @@
|
||||
// 120MenuSettings
|
||||
include '/home/httpd/html/horde/conf.menu.apps.php';
|
||||
|
@@ -0,0 +1,2 @@
|
||||
// 999Footer
|
||||
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
|
@@ -0,0 +1,7 @@
|
||||
//00header
|
||||
/**
|
||||
* $Horde: turba/config/prefs.php.dist,v 1.28.10.10 2008/07/10 22:52:41 jan Exp $
|
||||
*
|
||||
* See horde/config/prefs.php for documentation on the structure of this file.
|
||||
*/
|
||||
|
@@ -0,0 +1,8 @@
|
||||
//100displayoptions
|
||||
$prefGroups['addressbooks'] = array(
|
||||
'column' => _("Display Options"),
|
||||
'label' => _("Address Books"),
|
||||
'desc' => _("Choose which address books to use."),
|
||||
'members' => array('default_dir', 'addressbookselect', 'sync_books'),
|
||||
);
|
||||
|
@@ -0,0 +1,8 @@
|
||||
//110columnoptions
|
||||
$prefGroups['columns'] = array(
|
||||
'column' => _("Display Options"),
|
||||
'label' => _("Column Options"),
|
||||
'desc' => _("Select which fields to display in the address lists."),
|
||||
'members' => array('columnselect'),
|
||||
);
|
||||
|
@@ -0,0 +1,8 @@
|
||||
//120display
|
||||
$prefGroups['display'] = array(
|
||||
'column' => _("Display Options"),
|
||||
'label' => _("Display"),
|
||||
'desc' => _("Select view to display by default and paging options."),
|
||||
'members' => array('initial_page', 'maxpage', 'perpage'),
|
||||
);
|
||||
|
@@ -0,0 +1,8 @@
|
||||
//130format
|
||||
$prefGroups['format'] = array(
|
||||
'column' => _("Display Options"),
|
||||
'label' => _("Name Format"),
|
||||
'desc' => _("Select which format to display names."),
|
||||
'members' => array('name_format'),
|
||||
);
|
||||
|
@@ -0,0 +1,7 @@
|
||||
//160addressbookselect
|
||||
// Address Book selection widget
|
||||
$_prefs['addressbookselect'] = array(
|
||||
'locked' => false,
|
||||
'type' => 'special',
|
||||
);
|
||||
|
@@ -0,0 +1,14 @@
|
||||
//170addressbooks
|
||||
// Address books to be displayed in the address book selection widget
|
||||
// and in the Browse menu item. The address book name is stored using
|
||||
// the source key from sources.php (e.g. "localsql"). Separate
|
||||
// entries with "\n" , e. g. 'value' => "localsql\nlocalldap" (the
|
||||
// double quotes are REQUIRED). If 'value' is empty (''), all address
|
||||
// books that the user has permissions to will be listed.
|
||||
$_prefs['addressbooks'] = array(
|
||||
'value' => '',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit',
|
||||
);
|
||||
|
@@ -0,0 +1,10 @@
|
||||
//180syncbooks
|
||||
// Address books use for synchronization
|
||||
$_prefs['sync_books'] = array(
|
||||
'value' => 'a:0:\{\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'multienum',
|
||||
'desc' => _("Select the address books that should be used for synchronization with external devices:"),
|
||||
);
|
||||
|
@@ -0,0 +1,7 @@
|
||||
//185columnselect
|
||||
// columns selection widget
|
||||
$_prefs['columnselect'] = array(
|
||||
'locked' => false,
|
||||
'type' => 'special',
|
||||
);
|
||||
|
@@ -0,0 +1,13 @@
|
||||
//190columns
|
||||
// Columns to be displayed in Browse and Search results, with entries
|
||||
// for the columns displayed for each address book. Separate address
|
||||
// book stanzas with \n and columns with \t. The "name" column is
|
||||
// currently always displayed first and so cannot be modified here.
|
||||
// Double quotes MUST be used as in the example.
|
||||
$_prefs['columns'] = array(
|
||||
'value' => "netcenter\temail\nverisign\temail\nlocalsql\temail",
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit',
|
||||
);
|
||||
|
@@ -0,0 +1,10 @@
|
||||
//200sortorder
|
||||
// user preferred sorting column
|
||||
// serialized array of hashes containing 'field' and 'ascending' keys
|
||||
$_prefs['sortorder'] = array(
|
||||
'value' => 'a:1:\{i:0;a:2:\{s:5:"field";s:8:"lastname";s:9:"ascending";b:1;\}\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit',
|
||||
);
|
||||
|
@@ -0,0 +1,10 @@
|
||||
//220maxpage
|
||||
// number of maximum pages and items per page
|
||||
$_prefs['maxpage'] = array(
|
||||
'value' => 10,
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'number',
|
||||
'desc' => _("Maximum number of pages"),
|
||||
);
|
||||
|
@@ -0,0 +1,9 @@
|
||||
//230perpage
|
||||
$_prefs['perpage'] = array(
|
||||
'value' => 20,
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'number',
|
||||
'desc' => _("Number of items per page"),
|
||||
);
|
||||
|
@@ -0,0 +1,12 @@
|
||||
//240initialpage
|
||||
// the page to display. Either 'browse.php' or 'search.php'
|
||||
$_prefs['initial_page'] = array(
|
||||
'value' => 'search.php',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'enum',
|
||||
'desc' => _("View to display by default:"),
|
||||
'enum' => array('browse.php' => _("Address Book Listing"),
|
||||
'search.php' => _("Search")),
|
||||
);
|
||||
|
@@ -0,0 +1,13 @@
|
||||
//250nameformat
|
||||
// the format to display names. Either 'last_first' or 'first_last'
|
||||
$_prefs['name_format'] = array(
|
||||
'value' => 'last_first',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'enum',
|
||||
'desc' => _("Select the format used to display names:"),
|
||||
'enum' => array('last_first' => _("\"Lastname, Firstname\" (ie. Doe, John)"),
|
||||
'first_last' => _("\"Firstname Lastname\" (ie. John Doe)"),
|
||||
'none' => _("no formatting")),
|
||||
);
|
||||
|
@@ -0,0 +1,11 @@
|
||||
//260defaultdir
|
||||
// Default directory
|
||||
$_prefs['default_dir'] = array(
|
||||
//'value' => '',
|
||||
'value' => 'localsql',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'select',
|
||||
'desc' => _("This will be the default address book when adding or importing contacts."),
|
||||
);
|
||||
|
@@ -0,0 +1,9 @@
|
||||
//265prefbooks
|
||||
// preference for holding any preferences-based addressbooks.
|
||||
$_prefs['prefbooks'] = array(
|
||||
'value' => '',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit',
|
||||
);
|
||||
|
@@ -0,0 +1,9 @@
|
||||
//270turbamaintenancetasks
|
||||
// Used to keep track of which turba maintenance tasks have been run.
|
||||
$_prefs['turba_maintenance_tasks'] = array(
|
||||
'value' => 'a:0:\{\}',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
@@ -0,0 +1,10 @@
|
||||
//275owncontact
|
||||
// Personal contact.
|
||||
$_prefs['own_contact'] = array(
|
||||
// The format is 'source_name;contact_id'.
|
||||
'value' => '',
|
||||
'locked' => false,
|
||||
'shared' => false,
|
||||
'type' => 'implicit'
|
||||
);
|
||||
|
@@ -0,0 +1,6 @@
|
||||
{
|
||||
|
||||
use esmith::util;
|
||||
$basedn = esmith::util::ldapBase ($DomainName);
|
||||
$OUT = '';
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
//00header
|
||||
/**
|
||||
* $Horde: turba/config/sources.php.dist,v 1.97.6.41 2009/08/05 21:06:10 jan Exp $
|
||||
*/
|
@@ -0,0 +1,132 @@
|
||||
//40LocalSQL
|
||||
/**
|
||||
* 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
|
||||
* 'use_shares' => true.
|
||||
*
|
||||
* Be sure to create a turba_objects table in your Horde database from the
|
||||
* schema in turba/scripts/db/turba.sql if you use this source.
|
||||
*/
|
||||
$cfgSources['localsql'] = array(
|
||||
'title' => _("My Address Book"),
|
||||
'type' => 'sql',
|
||||
// The default connection details are pulled from the Horde-wide SQL
|
||||
// connection configuration.
|
||||
'params' => array_merge($GLOBALS['conf']['sql'], array('table' => 'turba_objects')),
|
||||
// Using two tables as datasource.
|
||||
// 'params' => array_merge($GLOBALS['conf']['sql'],
|
||||
// array('table' => 'leaddetails LEFT JOIN leadaddress ON leaddetails.leadid = leadaddress.leadaddressid',
|
||||
// 'filter' => 'leaddetails.converted = 0')),
|
||||
'map' => array(
|
||||
'__key' => 'object_id',
|
||||
'__owner' => 'owner_id',
|
||||
'__type' => 'object_type',
|
||||
'__members' => 'object_members',
|
||||
'__uid' => 'object_uid',
|
||||
'firstname' => 'object_firstname',
|
||||
'lastname' => 'object_lastname',
|
||||
'middlenames' => 'object_middlenames',
|
||||
'namePrefix' => 'object_nameprefix',
|
||||
'nameSuffix' => 'object_namesuffix',
|
||||
'name' => array('fields' => array('namePrefix', 'firstname',
|
||||
'middlenames', 'lastname',
|
||||
'nameSuffix'),
|
||||
'format' => '%s %s %s %s %s',
|
||||
'parse' => array(
|
||||
array('fields' => array('firstname', 'middlenames',
|
||||
'lastname'),
|
||||
'format' => '%s %s %s'),
|
||||
array('fields' => array('firstname', 'lastname'),
|
||||
'format' => '%s %s'))),
|
||||
// This is a shorter version of a "name" composite field which only
|
||||
// consists of the first name and last name.
|
||||
// 'name' => array('fields' => array('firstname', 'lastname'),
|
||||
// 'format' => '%s %s'),
|
||||
'alias' => 'object_alias',
|
||||
'birthday' => 'object_bday',
|
||||
'spouse' => 'object_spouse',
|
||||
'anniversary' => 'object_anniversary',
|
||||
'children' => 'object_children',
|
||||
// The photo field requires at least Horde 3.3 and a matching type
|
||||
// field.
|
||||
'photo' => 'object_photo',
|
||||
'phototype' => 'object_phototype',
|
||||
'homeStreet' => 'object_homestreet',
|
||||
'homePOBox' => 'object_homepob',
|
||||
'homeCity' => 'object_homecity',
|
||||
'homeProvince' => 'object_homeprovince',
|
||||
'homePostalCode' => 'object_homepostalcode',
|
||||
'homeCountry' => 'object_homecountry',
|
||||
// This is an example composite field for addresses, so you can display
|
||||
// the various map links. If you use this, be sure to add 'homeAddress'
|
||||
// to the 'tabs' parameter below.
|
||||
'homeAddress' => array('fields' => array('homeStreet', 'homeCity',
|
||||
'homeProvince',
|
||||
'homePostalCode'),
|
||||
'format' => "%s \n %s, %s %s"),
|
||||
'workStreet' => 'object_workstreet',
|
||||
'workPOBox' => 'object_workpob',
|
||||
'workCity' => 'object_workcity',
|
||||
'workProvince' => 'object_workprovince',
|
||||
'workPostalCode' => 'object_workpostalcode',
|
||||
'workCountry' => 'object_workcountry',
|
||||
'workAddress' => array('fields' => array('workStreet', 'workCity',
|
||||
'workProvince',
|
||||
'workPostalCode'),
|
||||
'format' => "%s \n %s, %s %s"),
|
||||
'timezone' => 'object_tz',
|
||||
'email' => 'object_email',
|
||||
'homePhone' => 'object_homephone',
|
||||
'workPhone' => 'object_workphone',
|
||||
'cellPhone' => 'object_cellphone',
|
||||
'fax' => 'object_fax',
|
||||
'pager' => 'object_pager',
|
||||
'title' => 'object_title',
|
||||
'role' => 'object_role',
|
||||
'company' => 'object_company',
|
||||
// The logo field requires at least Horde 3.3 and a matching type
|
||||
// field.
|
||||
'logo' => 'object_logo',
|
||||
'logotype' => 'object_logotype',
|
||||
'category' => 'object_category',
|
||||
'notes' => 'object_notes',
|
||||
'website' => 'object_url',
|
||||
'freebusyUrl' => 'object_freebusyurl',
|
||||
'pgpPublicKey' => 'object_pgppublickey',
|
||||
'smimePublicKey' => 'object_smimepublickey',
|
||||
),
|
||||
'tabs' => array(
|
||||
_("Personal") => array('firstname', 'lastname', 'middlenames',
|
||||
'namePrefix', 'nameSuffix', 'name', 'alias',
|
||||
'birthday', 'spouse', 'anniversary', 'children' , 'photo'),
|
||||
_("Location") => array('homeStreet', 'homePOBox', 'homeCity',
|
||||
'homeProvince', 'homePostalCode', 'homeCountry',
|
||||
'homeAddress', 'workStreet', 'workPOBox', 'workCity',
|
||||
'workProvince', 'workPostalCode', 'workCountry', 'workAddress',
|
||||
'timezone'),
|
||||
_("Communications") => array('email', 'homePhone', 'workPhone',
|
||||
'cellPhone', 'fax', 'pager'),
|
||||
_("Organization") => array('title', 'role', 'company', 'logo'),
|
||||
_("Other") => array('category', 'notes', 'website', 'freebusyUrl',
|
||||
'pgpPublicKey', 'smimePublicKey'),
|
||||
),
|
||||
'search' => array(
|
||||
'name',
|
||||
'email'
|
||||
),
|
||||
'strict' => array(
|
||||
'object_id',
|
||||
'owner_id',
|
||||
'object_type',
|
||||
),
|
||||
'export' => true,
|
||||
'browse' => true,
|
||||
{
|
||||
my $sab = ($horde{SharedAddressBooks} || 'disabled') eq 'enabled' ? 'true' : 'false';
|
||||
$OUT = " 'use_shares' => $sab,";
|
||||
}
|
||||
'list_name_field' => 'lastname',
|
||||
'alternative_name' => 'company',
|
||||
);
|
||||
|
@@ -0,0 +1,136 @@
|
||||
//50LocalLDAP
|
||||
/**
|
||||
* 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/scripts/ldap/horde.schema in your LDAP configuration.
|
||||
*
|
||||
* To store freebusy information in the LDAP directory, you'll need to include
|
||||
* turba/scripts/ldap/rfc2739.schema in your LDAP configuration.
|
||||
*/
|
||||
$cfgSources['localldap'] = array(
|
||||
'title' => _("Local LDAP"),
|
||||
'type' => 'ldap',
|
||||
'params' => array(
|
||||
'server' => 'localhost',
|
||||
'port' => 389,
|
||||
'tls' => false,
|
||||
{
|
||||
$OUT .= qq( 'root' => '$basedn',);
|
||||
}
|
||||
// 'bind_dn' => 'cn=admin,ou=users,dc=example,dc=com',
|
||||
// // For Active Directory:
|
||||
// // 'bind_dn' => 'username@example.com',
|
||||
// 'bind_password' => '********',
|
||||
'sizelimit' => 200,
|
||||
// // For Active Directory:
|
||||
// // 'sizelimit' => 0,
|
||||
'dn' => array('cn'),
|
||||
'objectclass' => array('top',
|
||||
'person',
|
||||
'organizationalPerson',
|
||||
{
|
||||
if (($horde{freebusy} || "disabled") eq "enabled") {
|
||||
$OUT =<<HERE;
|
||||
'inetOrgPerson',
|
||||
'calEntry'),
|
||||
HERE
|
||||
} else {
|
||||
$OUT =<<HERE;
|
||||
'inetOrgPerson'),
|
||||
HERE
|
||||
}
|
||||
}
|
||||
// Add 'turbaContact' to this array if using
|
||||
// 'turbaType' attribute below, and 'calEntry'
|
||||
// // if using 'freebusyUrl'.
|
||||
// // For Active Directory:
|
||||
// // 'objectclass' => array('organizationalPerson',
|
||||
// // 'user',
|
||||
// // 'group',
|
||||
// // 'contact'),
|
||||
'scope' => 'sub',
|
||||
// // For Active Directory:
|
||||
// // 'scope' => 'sub',
|
||||
'charset' => 'UTF-8',
|
||||
// // Consult the LDAP schema to verify that all required attributes for
|
||||
// // an entry are set and add them if needed.
|
||||
'checkrequired' => false,
|
||||
// // Value used to fill in missing required attributes.
|
||||
'checkrequired_string' => ' ',
|
||||
// // 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.
|
||||
// 'checksyntax' => false,
|
||||
'version' => 3,
|
||||
'filter' => '&(!(mail=admin@{$DomainName}))',
|
||||
//
|
||||
// // For Active Directory you probably want to also set the following
|
||||
// // parameters:
|
||||
// // 'deref' => LDAP_DEREF_ALWAYS,
|
||||
// // 'filter' => '&(SAMAccountName=*)(mail=*)',
|
||||
// // 'referrals' => 0,
|
||||
),
|
||||
'map' => array(
|
||||
'__key' => 'dn',
|
||||
|
||||
// // Remove this mapping if using Active Directory server:
|
||||
// '__uid' => 'uid',
|
||||
'__uid' => 'uid',
|
||||
|
||||
// // From horde.schema. Make sure you have 'turbaContact' objectClass
|
||||
// // included above:
|
||||
// '__type' => 'turbaType',
|
||||
// '__members' => 'turbaMembers',
|
||||
//
|
||||
'name' => 'cn',
|
||||
'email' => 'mail',
|
||||
'homePhone' => 'homephone',
|
||||
'workPhone' => 'telephonenumber',
|
||||
'cellPhone' => 'mobiletelephonenumber',
|
||||
'homeAddress' => 'street',
|
||||
//
|
||||
// // From rfc2739.schema:
|
||||
{
|
||||
if (($horde{freebusy} || "disabled") eq "enabled") {
|
||||
$OUT =<<HERE;
|
||||
'freebusyUrl\' => 'calFBURL',
|
||||
HERE
|
||||
} else {
|
||||
$OUT =<<HERE;
|
||||
#freebusy is currently not enabled. To enable - config setprop horde freebusy enabled
|
||||
HERE
|
||||
}
|
||||
}
|
||||
//
|
||||
// // For Active Directory servers:
|
||||
// // 'name' => 'displayname',
|
||||
// // 'title' => 'title',
|
||||
// // 'cellPhone' => 'mobile',
|
||||
// // 'department' => 'department',
|
||||
// // 'company' => 'company',
|
||||
),
|
||||
'search' => array(
|
||||
'name',
|
||||
'email',
|
||||
'homePhone',
|
||||
'workPhone',
|
||||
'cellPhone',
|
||||
'homeAddress'
|
||||
),
|
||||
'strict' => array(
|
||||
'dn',
|
||||
),
|
||||
'approximate' => array(
|
||||
'cn',
|
||||
),
|
||||
// // For Active Directory servers:
|
||||
// // 'approximate' => array(
|
||||
// // 'displayname',
|
||||
// // 'samaccountname',
|
||||
// // ),
|
||||
'export' => true,
|
||||
'browse' => true,
|
||||
);
|
||||
|
@@ -0,0 +1,53 @@
|
||||
//60LocalLDAPGroups
|
||||
/**
|
||||
* 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/scripts/ldap/horde.schema in your LDAP configuration.
|
||||
*
|
||||
* To store freebusy information in the LDAP directory, you'll need to include
|
||||
* turba/scripts/ldap/rfc2739.schema in your LDAP configuration.
|
||||
*/
|
||||
$cfgSources['localldapgroups'] = array(
|
||||
'title' => _("Local LDAP Groups"),
|
||||
'type' => 'ldap',
|
||||
'params' => array(
|
||||
'server' => 'localhost',
|
||||
'port' => 389,
|
||||
'tls' => false,
|
||||
{
|
||||
$OUT .= qq( 'root' => '$basedn',);
|
||||
}
|
||||
'sizelimit' => 200,
|
||||
'dn' => array('cn'),
|
||||
'objectclass' => array('posixGroup'),
|
||||
'scope' => 'sub',
|
||||
'charset' => 'UTF-8',
|
||||
'checkrequired' => false,
|
||||
'checkrequired_string' => ' ',
|
||||
'version' => 3,
|
||||
),
|
||||
'map' => array(
|
||||
'__key' => 'dn',
|
||||
'__uid' => 'uid',
|
||||
'name' => 'cn',
|
||||
'email' => 'mail',
|
||||
'groupdescription' => 'description',
|
||||
'groupmembers' => 'memberUid',
|
||||
),
|
||||
'search' => array(
|
||||
'displayName',
|
||||
'groupdescription',
|
||||
'groupmembers',
|
||||
),
|
||||
'strict' => array(
|
||||
'dn',
|
||||
),
|
||||
'approximate' => array(
|
||||
'cn',
|
||||
),
|
||||
'export' => true,
|
||||
'browse' => true,
|
||||
);
|
||||
|
583
root/etc/openldap/schema/horde.schema
Normal file
583
root/etc/openldap/schema/horde.schema
Normal file
@@ -0,0 +1,583 @@
|
||||
# $Horde: horde/scripts/ldap/horde.schema,v 1.20.10.6 2007/12/20 15:03:02 jan Exp $
|
||||
#
|
||||
# The offical horde OID assigned by IANA is 13040.
|
||||
#
|
||||
# This schema depends on:
|
||||
# - core.schema
|
||||
#
|
||||
#
|
||||
# Horde attribute branch 1.3.6.1.4.1.13040.2.1.*
|
||||
# IMP attribute branch 1.3.6.1.4.1.13040.3.1.*
|
||||
# Turba attribute branch 1.3.6.1.4.1.13040.4.1.*
|
||||
# Kronolith attribute branch 1.3.6.1.4.1.13040.5.1.*
|
||||
# Nag attribute branch 1.3.6.1.4.1.13040.6.1.*
|
||||
# Gollem attribute branch 1.3.6.1.4.1.13040.7.1.*
|
||||
# Chora attribute branch 1.3.6.1.4.1.13040.8.1.*
|
||||
# Mnemo attribute branch 1.3.6.1.4.1.13040.9.1.*
|
||||
# Troll attribute branch 1.3.6.1.4.1.13040.10.1.*
|
||||
# Klutz attribute branch 1.3.6.1.4.1.13040.11.1.*
|
||||
# Jonah attribute branch 1.3.6.1.4.1.13040.12.1.*
|
||||
# Hermes attribute branch 1.3.6.1.4.1.13040.13.1.*
|
||||
# Juno attribute branch 1.3.6.1.4.1.13040.14.1.*
|
||||
# Trean attribute branch 1.3.6.1.4.1.13040.15.1.*
|
||||
# Whups attribute branch 1.3.6.1.4.1.13040.16.1.*
|
||||
# Ingo attribute branch 1.3.6.1.4.1.13040.17.1.*
|
||||
# Ansel attribute branch 1.3.6.1.4.1.13040.18.1.*
|
||||
# Genie attribute branch 1.3.6.1.4.1.13040.19.1.*
|
||||
# Scry attribute branch 1.3.6.1.4.1.13040.20.1.*
|
||||
# Wicked attribute branch 1.3.6.1.4.1.13040.21.1.*
|
||||
# Agora attribute branch 1.3.6.1.4.1.13040.22.1.*
|
||||
# Goops attribute branch 1.3.6.1.4.1.13040.24.1.*
|
||||
# Merk attribute branch 1.3.6.1.4.1.13040.25.1.*
|
||||
# Mimp attribute branch 1.3.6.1.4.1.13040.26.1.*
|
||||
# Mottle attribute branch 1.3.6.1.4.1.13040.27.1.*
|
||||
# Nic attribute branch 1.3.6.1.4.1.13040.28.1.*
|
||||
# Occam attribute branch 1.3.6.1.4.1.13040.29.1.*
|
||||
# Odin attribute branch 1.3.6.1.4.1.13040.30.1.*
|
||||
# Rakim attribute branch 1.3.6.1.4.1.13040.31.1.*
|
||||
# Sesha attribute branch 1.3.6.1.4.1.13040.32.1.*
|
||||
# Swoosh attribute branch 1.3.6.1.4.1.13040.33.1.*
|
||||
# Thor attribute branch 1.3.6.1.4.1.13040.34.1.*
|
||||
# Ulaform attribute branch 1.3.6.1.4.1.13040.35.1.*
|
||||
# Volos attribute branch 1.3.6.1.4.1.13040.36.1.*
|
||||
# Jeta attribute branch 1.3.6.1.4.1.13040.37.1.*
|
||||
#
|
||||
# Horde objectclass branch 1.3.6.1.4.1.13040.2.2.*
|
||||
# IMP objectclass branch 1.3.6.1.4.1.13040.3.2.*
|
||||
# Turba objectclass branch 1.3.6.1.4.1.13040.4.2.*
|
||||
# Kronolith objectclass branch 1.3.6.1.4.1.13040.5.2.*
|
||||
# NAG objectclass branch 1.3.6.1.4.1.13040.6.2.*
|
||||
# Gollem objectclass branch 1.3.6.1.4.1.13040.7.2.*
|
||||
# Chora objectclass branch 1.3.6.1.4.1.13040.8.2.*
|
||||
# Mnemo objectclass branch 1.3.6.1.4.1.13040.9.2.*
|
||||
# Troll objectclass branch 1.3.6.1.4.1.13040.10.2.*
|
||||
# Klutz objectclass branch 1.3.6.1.4.1.13040.11.2.*
|
||||
# Jonah objectclass branch 1.3.6.1.4.1.13040.12.2.*
|
||||
# Hermes objectclass branch 1.3.6.1.4.1.13040.13.2.*
|
||||
# Juno objectclass branch 1.3.6.1.4.1.13040.14.2.*
|
||||
# Trean objectclass branch 1.3.6.1.4.1.13040.15.2.*
|
||||
# Whups objectclass branch 1.3.6.1.4.1.13040.16.2.*
|
||||
# Ingo objectclass branch 1.3.6.1.4.1.13040.17.2.*
|
||||
# Ansel objectclass branch 1.3.6.1.4.1.13040.18.2.*
|
||||
# Genie objectclass branch 1.3.6.1.4.1.13040.19.2.*
|
||||
# Scry objectclass branch 1.3.6.1.4.1.13040.20.2.*
|
||||
# Wicked objectclass branch 1.3.6.1.4.1.13040.21.2.*
|
||||
# Agora objectclass branch 1.3.6.1.4.1.13040.22.2.*
|
||||
# Goops objectclass branch 1.3.6.1.4.1.13040.24.2.*
|
||||
# Merk objectclass branch 1.3.6.1.4.1.13040.25.2.*
|
||||
# Mimp objectclass branch 1.3.6.1.4.1.13040.26.2.*
|
||||
# Mottle objectclass branch 1.3.6.1.4.1.13040.27.2.*
|
||||
# Nic objectclass branch 1.3.6.1.4.1.13040.28.2.*
|
||||
# Occam objectclass branch 1.3.6.1.4.1.13040.29.2.*
|
||||
# Odin objectclass branch 1.3.6.1.4.1.13040.30.2.*
|
||||
# Rakim objectclass branch 1.3.6.1.4.1.13040.31.2.*
|
||||
# Sesha objectclass branch 1.3.6.1.4.1.13040.32.2.*
|
||||
# Swoosh objectclass branch 1.3.6.1.4.1.13040.33.2.*
|
||||
# Thor objectclass branch 1.3.6.1.4.1.13040.34.2.*
|
||||
# Ulaform objectclass branch 1.3.6.1.4.1.13040.35.2.*
|
||||
# Volos objectclass branch 1.3.6.1.4.1.13040.36.2.*
|
||||
# Jeta objectclass branch 1.3.6.1.4.1.13040.37.2.*
|
||||
|
||||
#
|
||||
# Horde attribute branch 1.3.6.1.4.1.13040.2.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.2.1.1
|
||||
NAME 'hordePrefs'
|
||||
DESC 'Horde Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# IMP attribute branch 1.3.6.1.4.1.13040.3.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.3.1.1
|
||||
NAME 'impPrefs'
|
||||
DESC 'IMP Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Turba attribute branch 1.3.6.1.4.1.13040.4.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.4.1.1
|
||||
NAME 'turbaPrefs'
|
||||
DESC 'Turba Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.13040.4.1.2
|
||||
NAME 'turbaType'
|
||||
DESC 'Turba Object Type: Contact/List'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SUBSTR caseIgnoreIA5SubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.13040.4.1.3
|
||||
NAME 'turbaMembers'
|
||||
DESC 'Encoded members of a Turba list'
|
||||
SUP name )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.13040.4.1.4
|
||||
NAME 'turbaPGPPublicKey'
|
||||
DESC 'PGP/GPG Public Key'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4000} )
|
||||
|
||||
#
|
||||
# Kronolith attribute branch 1.3.6.1.4.1.13040.5.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.5.1.1
|
||||
NAME 'kronolithPrefs'
|
||||
DESC 'Kronolith Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Nag attribute branch 1.3.6.1.4.1.13040.6.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.6.1.1
|
||||
NAME 'nagPrefs'
|
||||
DESC 'Nag Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Gollem attribute branch 1.3.6.1.4.1.13040.7.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.7.1.1
|
||||
NAME 'gollemPrefs'
|
||||
DESC 'Gollem Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Chora attribute branch 1.3.6.1.4.1.13040.8.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.8.1.1
|
||||
NAME 'choraPrefs'
|
||||
DESC 'Chora Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Mnemo attribute branch 1.3.6.1.4.1.13040.9.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.9.1.1
|
||||
NAME 'mnemoPrefs'
|
||||
DESC 'Mnemo Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Troll attribute branch 1.3.6.1.4.1.13040.10.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.10.1.1
|
||||
NAME 'trollPrefs'
|
||||
DESC 'Troll Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Klutz attribute branch 1.3.6.1.4.1.13040.11.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.11.1.1
|
||||
NAME 'klutzPrefs'
|
||||
DESC 'Klutz Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Jonah attribute branch 1.3.6.1.4.1.13040.12.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.12.1.1
|
||||
NAME 'jonahPrefs'
|
||||
DESC 'Jonah Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Hermes attribute branch 1.3.6.1.4.1.13040.13.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.13.1.1
|
||||
NAME 'hermesPrefs'
|
||||
DESC 'Hermes Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Juno attribute branch 1.3.6.1.4.1.13040.14.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.14.1.1
|
||||
NAME 'junoPrefs'
|
||||
DESC 'Juno Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Trean attribute branch 1.3.6.1.4.1.13040.15.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.15.1.1
|
||||
NAME 'treanPrefs'
|
||||
DESC 'Trean Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Whups attribute branch 1.3.6.1.4.1.13040.16.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.16.1.1
|
||||
NAME 'whupsPrefs'
|
||||
DESC 'Whups Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Ingo attribute branch 1.3.6.1.4.1.13040.17.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.17.1.1
|
||||
NAME 'ingoPrefs'
|
||||
DESC 'Ingo Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Ansel attribute branch 1.3.6.1.4.1.13040.18.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.18.1.1
|
||||
NAME 'anselPrefs'
|
||||
DESC 'Ansel Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Genie attribute branch 1.3.6.1.4.1.13040.19.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.19.1.1
|
||||
NAME 'geniePrefs'
|
||||
DESC 'Genie Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Scry attribute branch 1.3.6.1.4.1.13040.20.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.20.1.1
|
||||
NAME 'scryPrefs'
|
||||
DESC 'Scry Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Wicked attribute branch 1.3.6.1.4.1.13040.21.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.21.1.1
|
||||
NAME 'wickedPrefs'
|
||||
DESC 'Wicked Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Agora attribute branch 1.3.6.1.4.1.13040.22.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.22.1.1
|
||||
NAME 'agoraPrefs'
|
||||
DESC 'Agora Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Goops attribute branch 1.3.6.1.4.1.13040.24.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.24.1.1
|
||||
NAME 'goopsPrefs'
|
||||
DESC 'Goops Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Merk attribute branch 1.3.6.1.4.1.13040.25.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.25.1.1
|
||||
NAME 'merkPrefs'
|
||||
DESC 'Merk Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Mimp attribute branch 1.3.6.1.4.1.13040.26.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.26.1.1
|
||||
NAME 'mimpPrefs'
|
||||
DESC 'MIMP Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Mottle attribute branch 1.3.6.1.4.1.13040.27.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.27.1.1
|
||||
NAME 'mottlePrefs'
|
||||
DESC 'Mottle Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Nic attribute branch 1.3.6.1.4.1.13040.28.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.28.1.1
|
||||
NAME 'nicPrefs'
|
||||
DESC 'NIC Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Occam attribute branch 1.3.6.1.4.1.13040.29.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.29.1.1
|
||||
NAME 'occamPrefs'
|
||||
DESC 'Occam Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Odin attribute branch 1.3.6.1.4.1.13040.30.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.30.1.1
|
||||
NAME 'odinPrefs'
|
||||
DESC 'Odin Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Rakim attribute branch 1.3.6.1.4.1.13040.31.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.31.1.1
|
||||
NAME 'rakimPrefs'
|
||||
DESC 'Rakim Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Sesha attribute branch 1.3.6.1.4.1.13040.32.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.32.1.1
|
||||
NAME 'seshaPrefs'
|
||||
DESC 'Sesha Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Swoosh attribute branch 1.3.6.1.4.1.13040.33.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.33.1.1
|
||||
NAME 'swooshPrefs'
|
||||
DESC 'Swoosh Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Thor attribute branch 1.3.6.1.4.1.13040.34.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.34.1.1
|
||||
NAME 'thorPrefs'
|
||||
DESC 'Thor Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Ulaform attribute branch 1.3.6.1.4.1.13040.35.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.35.1.1
|
||||
NAME 'ulaformPrefs'
|
||||
DESC 'Ulaform Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Volos attribute branch 1.3.6.1.4.1.13040.36.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.36.1.1
|
||||
NAME 'volosPrefs'
|
||||
DESC 'Volos Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Jeta attribute branch 1.3.6.1.4.1.13040.37.1.*
|
||||
#
|
||||
attributetype ( 1.3.6.1.4.1.13040.37.1.1
|
||||
NAME 'jetaPrefs'
|
||||
DESC 'Jeta Preferences'
|
||||
EQUALITY caseIgnoreIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} )
|
||||
|
||||
#
|
||||
# Horde objectclass branch 1.3.6.1.4.1.13040.2.2.*
|
||||
#
|
||||
objectclass ( 1.3.6.1.4.1.13040.2.2.1
|
||||
NAME 'hordePerson'
|
||||
DESC 'Horde Preferences'
|
||||
SUP top
|
||||
AUXILIARY
|
||||
MAY ( mail $ hordePrefs $ impPrefs $ turbaPrefs $
|
||||
gollemPrefs $ kronolithPrefs $ mnemoPrefs $
|
||||
trollPrefs $ nagPrefs $ klutzPrefs $
|
||||
jonahPrefs $ hermesPrefs $ junoPrefs $
|
||||
treanPrefs $ whupsPrefs $ ingoPrefs $
|
||||
geniePrefs $ scryPrefs $ anselPrefs $
|
||||
wickedPrefs $ choraPrefs $ agoraPrefs $
|
||||
goopsPrefs $ merkPrefs $ volosPrefs $
|
||||
mimpPrefs $ mottlePrefs $ nicPrefs $
|
||||
occamPrefs $ odinPrefs $ rakimPrefs $
|
||||
seshaPrefs $ swooshPrefs $ thorPrefs $
|
||||
ulaformPrefs
|
||||
) )
|
||||
|
||||
objectclass ( 1.3.6.1.4.1.13040.2.2.2
|
||||
NAME 'hordeGroup'
|
||||
DESC 'Horde Group'
|
||||
SUP top
|
||||
AUXILIARY
|
||||
MAY ( mail ) )
|
||||
|
||||
#
|
||||
# IMP objectclass branch 1.3.6.1.4.1.13040.3.2.*
|
||||
#
|
||||
|
||||
# Turba objectclass branch 1.3.6.1.4.1.13040.4.2.*
|
||||
objectclass ( 1.3.6.1.4.1.13040.4.2.1
|
||||
NAME 'turbaContact'
|
||||
DESC 'Turba Contact'
|
||||
SUP top
|
||||
AUXILIARY
|
||||
MAY ( turbaType $ turbaMembers $ calFBURL )
|
||||
)
|
||||
|
||||
#
|
||||
# Kronolith objectclass branch 1.3.6.1.4.1.13040.5.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Nag objectclass branch 1.3.6.1.4.1.13040.6.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Gollem objectclass branch 1.3.6.1.4.1.13040.7.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Chora objectclass branch 1.3.6.1.4.1.13040.8.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Mnemo objectclass branch 1.3.6.1.4.1.13040.9.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Troll objectclass branch 1.3.6.1.4.1.13040.10.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Klutz objectclass branch 1.3.6.1.4.1.13040.11.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Jonah objectclass branch 1.3.6.1.4.1.13040.12.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Hermes objectclass branch 1.3.6.1.4.1.13040.13.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Juno objectclass branch 1.3.6.1.4.1.13040.14.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Trean objectclass branch 1.3.6.1.4.1.13040.15.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Whups objectclass branch 1.3.6.1.4.1.13040.16.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Ingo objectclass branch 1.3.6.1.4.1.13040.17.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Ansel objectclass branch 1.3.6.1.4.1.13040.18.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Genie objectclass branch 1.3.6.1.4.1.13040.19.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Scry objectclass branch 1.3.6.1.4.1.13040.20.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Wicked objectclass branch 1.3.6.1.4.1.13040.21.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Agora objectclass branch 1.3.6.1.4.1.13040.22.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Goops objectclass branch 1.3.6.1.4.1.13040.24.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Merk objectclass branch 1.3.6.1.4.1.13040.25.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Mimp objectclass branch 1.3.6.1.4.1.13040.26.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Mottle objectclass branch 1.3.6.1.4.1.13040.27.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Nic objectclass branch 1.3.6.1.4.1.13040.28.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Occam objectclass branch 1.3.6.1.4.1.13040.29.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Odin objectclass branch 1.3.6.1.4.1.13040.30.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Rakim objectclass branch 1.3.6.1.4.1.13040.31.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Sesha objectclass branch 1.3.6.1.4.1.13040.32.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Swoosh objectclass branch 1.3.6.1.4.1.13040.33.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Thor objectclass branch 1.3.6.1.4.1.13040.34.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Ulaform objectclass branch 1.3.6.1.4.1.13040.35.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Volos objectclass branch 1.3.6.1.4.1.13040.36.2.*
|
||||
#
|
||||
|
||||
#
|
||||
# Jeta objectclass branch 1.3.6.1.4.1.13040.37.2.*
|
||||
#
|
||||
|
0
root/etc/rc.d/rc7.d/.gitignore
vendored
Normal file
0
root/etc/rc.d/rc7.d/.gitignore
vendored
Normal file
Reference in New Issue
Block a user