initial commit of file from CVS for e-smith-turba on Wed 12 Jul 09:11:40 BST 2023

This commit is contained in:
Brian Read
2023-07-12 09:11:40 +01:00
parent e4f24e34e7
commit 420341c17f
67 changed files with 3168 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
{
my $i2t = $DB->get('migrate-imp-to-turba');
if ($i2t)
{
$i2t->delete;
}
}

View 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;

View 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";
}

View File

View File

View File

View File

@@ -0,0 +1 @@
PERMS=0544

View File

@@ -0,0 +1 @@
PERMS=0544

View File

@@ -0,0 +1,2 @@
PERMS=0640
GID="www"

View File

@@ -0,0 +1,2 @@
PERMS=0640
GID="www"

View File

@@ -0,0 +1,2 @@
PERMS=0640
GID="www"

View File

@@ -0,0 +1,2 @@
PERMS=0640
GID="www"

View File

@@ -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

View File

@@ -0,0 +1,2 @@
#! /bin/sh
exec /etc/e-smith/events/actions/turba_upgrade

View File

@@ -0,0 +1,2 @@
#! /bin/sh
exec mysql < /home/httpd/html/horde/smeserver/turba_mysql_reset_addressbook_pref.sql

View File

@@ -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

View File

@@ -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>
);
}
}

View File

@@ -0,0 +1,5 @@
{
my $TurbaMenu = $turba{MenuArray} || "enabled"; return "" unless ($TurbaMenu eq "enabled");
$apps{turba} = 1;
$OUT = '';
}

View File

@@ -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',
);

View File

@@ -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,
);

View File

@@ -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
);

View File

@@ -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 $

View File

@@ -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';

View File

@@ -0,0 +1,3 @@
// 120MenuSettings
include '/home/httpd/html/horde/conf.menu.apps.php';

View File

@@ -0,0 +1,2 @@
// 999Footer
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

View File

@@ -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.
*/

View 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'),
);

View File

@@ -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'),
);

View File

@@ -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'),
);

View File

@@ -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'),
);

View File

@@ -0,0 +1,7 @@
//160addressbookselect
// Address Book selection widget
$_prefs['addressbookselect'] = array(
'locked' => false,
'type' => 'special',
);

View File

@@ -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',
);

View File

@@ -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:"),
);

View File

@@ -0,0 +1,7 @@
//185columnselect
// columns selection widget
$_prefs['columnselect'] = array(
'locked' => false,
'type' => 'special',
);

View File

@@ -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',
);

View File

@@ -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',
);

View File

@@ -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"),
);

View File

@@ -0,0 +1,9 @@
//230perpage
$_prefs['perpage'] = array(
'value' => 20,
'locked' => false,
'shared' => false,
'type' => 'number',
'desc' => _("Number of items per page"),
);

View File

@@ -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")),
);

View File

@@ -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")),
);

View File

@@ -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."),
);

View File

@@ -0,0 +1,9 @@
//265prefbooks
// preference for holding any preferences-based addressbooks.
$_prefs['prefbooks'] = array(
'value' => '',
'locked' => false,
'shared' => false,
'type' => 'implicit',
);

View File

@@ -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'
);

View File

@@ -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'
);

View File

@@ -0,0 +1,6 @@
{
use esmith::util;
$basedn = esmith::util::ldapBase ($DomainName);
$OUT = '';
}

View File

@@ -0,0 +1,4 @@
//00header
/**
* $Horde: turba/config/sources.php.dist,v 1.97.6.41 2009/08/05 21:06:10 jan Exp $
*/

View File

@@ -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',
);

View File

@@ -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,
);

View File

@@ -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,
);

View 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
View File