Added an admin module for ldap based email settings (based on emailadmin)

but reduced to those functions, which are needed to manage ldap entries, which
rely only on standard schemas (core, qmail) which are not considered "experimental"
and without the need to add a separate schema.

This modul will be extended whenever possible and approved for more values.

Main goal here is: Ability to easily use eGW Admin for account management with
LDAP beackend and to comply with those schemas, the distros are delivering.

The link for this module will be shown in addition to Lars' EmailAdmin if LDAP
is used as account storage. So it will not break existing installation ;-)
This commit is contained in:
ak703 2004-08-25 22:29:28 +00:00
parent 87fd7d1d05
commit eabf6925b5
8 changed files with 828 additions and 2 deletions

View File

@ -0,0 +1,400 @@
<?php
/***************************************************************************\
* EGroupWare - LDAPManager *
* http://www.egroupware.org *
* Written by : Andreas Krause (ak703@users.sourceforge.net *
* based on EmailAdmin by Lars Kneschke [lkneschke@egroupware.org] *
* ------------------------------------------------- *
* 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. *
\***************************************************************************/
class boldap_mgr
{
var $sessionData;
var $LDAPData;
var $SMTPServerType = array(); // holds a list of config options
var $imapClass; // holds the imap/pop3 class
var $smtpClass; // holds the smtp class
var $public_functions = array
(
'getFieldNames' => True,
'getLDAPStorageData' => True,
'getLocals' => True,
'getProfile' => True,
'getProfileList' => True,
'getRcptHosts' => True,
'getSMTPServerTypes' => True
);
function boldap_mgr($_profileID=-1)
{
$this->soldapmgr = CreateObject('admin.soldap_mgr');
$this->SMTPServerType = array(
'1' => array(
'fieldNames' => array(
'smtpServer',
'smtpPort',
'smtpAuth',
'smtpType'
),
'description' => lang('standard SMTP-Server'),
'classname' => 'defaultsmtp'
),
'2' => array(
'fieldNames' => array(
'smtpServer',
'smtpPort',
'smtpAuth',
'smtpType',
'smtpLDAPServer',
'smtpLDAPAdminDN',
'smtpLDAPAdminPW',
'smtpLDAPBaseDN',
'smtpLDAPUseDefault'
),
'description' => lang('Postfix with LDAP'),
'classname' => 'postfixldap'
)
);
$this->IMAPServerType = array(
'1' => array(
'fieldNames' => array(
'imapServer',
'imapPort',
'imapType',
'imapLoginType',
'imapTLSEncryption',
'imapTLSAuthentication',
'imapoldcclient'
),
'description' => lang('standard POP3 server'),
'protocol' => 'pop3',
'classname' => 'defaultpop'
),
'2' => array(
'fieldNames' => array(
'imapServer',
'imapPort',
'imapType',
'imapLoginType',
'imapTLSEncryption',
'imapTLSAuthentication',
'imapoldcclient'
),
'description' => lang('standard IMAP server'),
'protocol' => 'imap',
'classname' => 'defaultimap'
),
'3' => array(
'fieldNames' => array(
'imapServer',
'imapPort',
'imapType',
'imapLoginType',
'imapTLSEncryption',
'imapTLSAuthentication',
'imapoldcclient',
'imapEnableCyrusAdmin',
'imapAdminUsername',
'imapAdminPW',
'imapEnableSieve',
'imapSieveServer',
'imapSievePort'
),
'description' => lang('Cyrus IMAP Server'),
'protocol' => 'imap',
'classname' => 'cyrusimap'
)
);
$this->restoreSessionData();
if($_profileID >= 0)
{
$this->profileID = $_profileID;
$this->profileData = $this->getProfile($_profileID);
$this->imapClass = $this->IMAPServerType[$this->profileData['imapType']]['classname'];
$this->smtpClass = $this->SMTPServerType[$this->profileData['smtpType']]['classname'];
}
}
function encodeHeader($_string, $_encoding='q')
{
switch($_encoding)
{
case "q":
if(!preg_match("/[\x80-\xFF]/",$_string))
{
// nothing to quote, only 7 bit ascii
return $_string;
}
$string = imap_8bit($_string);
$stringParts = explode("=\r\n",$string);
while(list($key,$value) = each($stringParts))
{
if(!empty($retString)) $retString .= " ";
$value = str_replace(" ","_",$value);
// imap_8bit does not convert "?"
// it does not need, but it should
$value = str_replace("?","=3F",$value);
$retString .= "=?".strtoupper($this->displayCharset)."?Q?".$value."?=";
}
#exit;
return $retString;
break;
default:
return $_string;
}
}
function getAccountEmailAddress($_accountName, $_profileID)
{
$profileData = $this->getProfile($_profileID);
$smtpClass = $this->SMTPServerType[$profileData['smtpType']]['classname'];
return empty($smtpClass) ? False : ExecMethod("emailadmin.$smtpClass.getAccountEmailAddress",$_accountName,3,$profileData);
}
function getFieldNames($_serverTypeID, $_class)
{
switch($_class)
{
case 'imap':
return $this->IMAPServerType[$_serverTypeID]['fieldNames'];
break;
case 'smtp':
return $this->SMTPServerType[$_serverTypeID]['fieldNames'];
break;
}
}
# function getIMAPClass($_profileID)
# {
# if(!is_object($this->imapClass))
# {
# $profileData = $this->getProfile($_profileID);
# $this->imapClass = CreateObject('emailadmin.cyrusimap',$profileData);
# }
#
# return $this->imapClass;
# }
function getIMAPServerTypes()
{
foreach($this->IMAPServerType as $key => $value)
{
$retData[$key]['description'] = $value['description'];
$retData[$key]['protocol'] = $value['protocol'];
}
return $retData;
}
function getLDAPStorageData($_serverid)
{
$storageData = $this->soldapmgr->getLDAPStorageData($_serverid);
return $storageData;
}
function getMailboxString($_folderName)
{
if (!empty($this->imapClass))
{
return ExecMethod("emailadmin.".$this->imapClass.".getMailboxString",$_folderName,3,$this->profileData);
}
else
{
return false;
}
}
function getProfile($_profileID)
{
$profileData = $this->soldapmgr->getProfileList($_profileID);
$fieldNames = $this->SMTPServerType[$profileData[0]['smtpType']]['fieldNames'];
$fieldNames = array_merge($fieldNames, $this->IMAPServerType[$profileData[0]['imapType']]['fieldNames']);
$fieldNames[] = 'description';
$fieldNames[] = 'defaultDomain';
$fieldNames[] = 'profileID';
$fieldNames[] = 'organisationName';
$fieldNames[] = 'userDefinedAccounts';
return $this->soldapmgr->getProfile($_profileID, $fieldNames);
}
function getProfileList($_profileID='')
{
$profileList = $this->soldapmgr->getProfileList($_profileID);
return $profileList;
}
# function getSMTPClass($_profileID)
# {
# if(!is_object($this->smtpClass))
# {
# $profileData = $this->getProfile($_profileID);
# $this->smtpClass = CreateObject('emailadmin.postfixldap',$profileData);
# }
#
# return $this->smtpClass;
# }
function getSMTPServerTypes()
{
foreach($this->SMTPServerType as $key => $value)
{
$retData[$key] = $value['description'];
}
return $retData;
}
function getUserData($_accountID, $_usecache)
{
if ($_usecache)
{
$userData = $this->userSessionData[$_accountID];
}
else
{
$userData = $this->soldapmgr->getUserData($_accountID);
$this->userSessionData[$_accountID] = $userData;
$this->saveSessionData();
}
return $userData;
}
function restoreSessionData()
{
global $phpgw;
$this->sessionData = $phpgw->session->appsession('session_data');
$this->userSessionData = $phpgw->session->appsession('user_session_data');
#while(list($key, $value) = each($this->userSessionData))
#{
# print "++ $key: $value<br>";
#}
#print "restored Session<br>";
}
function saveProfile($_globalSettings, $_smtpSettings, $_imapSettings)
{
if(!isset($_globalSettings['profileID']))
{
$this->soldapmgr->addProfile($_globalSettings, $_smtpSettings, $_imapSettings);
}
else
{
$this->soldapmgr->updateProfile($_globalSettings, $_smtpSettings, $_imapSettings);
}
}
function saveSessionData()
{
global $phpgw;
$phpgw->session->appsession('session_data','',$this->sessionData);
$phpgw->session->appsession('user_session_data','',$this->userSessionData);
}
function saveUserData($_accountID, $_formData, $_boAction)
{
$this->userSessionData[$_accountID]['mail'] = $_formData["mail"];
$this->userSessionData[$_accountID]['mailForwardingAddress'] = $_formData["mailForwardingAddress"];
$this->userSessionData[$_accountID]['accountStatus'] = $_formData["accountStatus"];
switch ($_boAction)
{
case 'add_mailAlternateAddress':
if (is_array($this->userSessionData[$_accountID]['mailAlternateAddress']))
{
$count = count($this->userSessionData[$_accountID]['mailAlternateAddress']);
}
else
{
//ACHTUNG!!
$count = 0;
}
$this->userSessionData[$_accountID]['mailAlternateAddress'][$count] =
$_formData['add_mailAlternateAddress'];
$this->saveSessionData();
break;
case 'remove_mailAlternateAddress':
$i=0;
while(list($key, $value) = @each($this->userSessionData[$_accountID]['mailAlternateAddress']))
{
#print ".. $key: $value<br>";
if ($key != $_formData['remove_mailAlternateAddress'])
{
$newMailAlternateAddress[$i]=$value;
#print "!! $i: $value<br>";
$i++;
}
}
$this->userSessionData[$_accountID]['mailAlternateAddress'] = $newMailAlternateAddress;
$this->saveSessionData();
break;
case 'save':
$this->soldapmgr->saveUserData(
$_accountID,
$this->userSessionData[$_accountID]);
$bofelamimail = CreateObject('felamimail.bofelamimail');
$bofelamimail->openConnection('','',true);
$bofelamimail->imapSetQuota($GLOBALS['phpgw']->accounts->id2name($_accountID),
$this->userSessionData[$_accountID]['quotaLimit']);
$bofelamimail->closeConnection();
$GLOBALS['phpgw']->accounts->cache_invalidate($_accountID);
break;
}
}
function updateAccount($_hookValues)
{
if (!empty($this->imapClass))
{
ExecMethod("emailadmin.".$this->imapClass.".updateAccount",$_hookValues,3,$this->profileData);
}
if (!empty($this->smtpClass))
{
ExecMethod("emailadmin.".$this->smtpClass.".updateAccount",$_hookValues,3,$this->profileData);
}
}
}
?>

View File

@ -0,0 +1,173 @@
<?php
/***************************************************************************\
* EGroupWare - LDAPManager *
* http://www.egroupware.org *
* Written by : Andreas Krause (ak703@users.sourceforge.net *
* based on EmailAdmin by Lars Kneschke [lkneschke@egroupware.org] *
* ------------------------------------------------- *
* 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. *
\***************************************************************************/
class soldap_mgr
{
function soldap_mgr()
{
$this->db = $GLOBALS['phpgw']->db;
include(PHPGW_INCLUDE_ROOT.'/emailadmin/setup/tables_current.inc.php');
$this->tables = &$phpgw_baseline;
unset($phpgw_baseline);
$this->table = &$this->tables['phpgw_emailadmin'];
}
function getUserData($_accountID)
{
global $phpgw, $phpgw_info;
$ldap = $phpgw->common->ldapConnect();
$filter = "(&(uidnumber=$_accountID))";
$sri = @ldap_search($ldap,$phpgw_info['server']['ldap_context'],$filter);
if ($sri)
{
$allValues = ldap_get_entries($ldap, $sri);
if ($allValues['count'] > 0)
{
#print "found something<br>";
$userData["mail"] = $allValues[0]["mail"][0];
$userData["mailAlternateAddress"] = $allValues[0]["mailalternateaddress"];
$userData["accountStatus"] = $allValues[0]["accountstatus"][0];
$userData["mailForwardingAddress"] = $allValues[0]["mailforwardingaddress"][0];
$userData["deliveryMode"] = $allValues[0]["deliverymode"][0];
unset($userData["mailAlternateAddress"]["count"]);
unset($userData["mailForwardingAddress"]["count"]);
return $userData;
}
}
// if we did not return before, return false
return false;
}
function saveUserData($_accountID, $_accountData)
{
$ldap = $GLOBALS['phpgw']->common->ldapConnect();
// need to be fixed
if(is_numeric($_accountID))
{
$filter = "uidnumber=$_accountID";
}
else
{
$filter = "uid=$_accountID";
}
$sri = @ldap_search($ldap,$GLOBALS['phpgw_info']['server']['ldap_context'],$filter);
if ($sri)
{
$allValues = ldap_get_entries($ldap, $sri);
$accountDN = $allValues[0]['dn'];
$uid = $allValues[0]['uid'][0];
$homedirectory = $allValues[0]['homedirectory'][0];
$objectClasses = $allValues[0]['objectclass'];
unset($objectClasses['count']);
}
else
{
return false;
}
if(empty($homedirectory))
{
$homedirectory = "/home/".$uid;
}
// the old code for qmail ldap
$newData = array
(
'mail' => $_accountData["mail"],
'mailAlternateAddress' => $_accountData["mailAlternateAddress"],
'mailForwardingAddress' => $_accountData["mailForwardingAddress"],
// 'homedirectory' => $homedirectory,
// 'mailMessageStore' => $homedirectory."/Maildir/",
// 'gidnumber' => '1000',
// 'qmailDotMode' => $_accountData["qmailDotMode"],
// 'deliveryProgramPath' => $_accountData["deliveryProgramPath"]
);
if(!in_array('qmailUser',$objectClasses) &&
!in_array('qmailuser',$objectClasses))
{
$objectClasses[] = 'qmailuser';
}
// the new code for postfix+cyrus+ldap
$newData = array
(
'mail' => $_accountData["mail"],
'accountStatus' => $_accountData["accountStatus"],
'objectclass' => $objectClasses
);
if(is_array($_accountData["mailAlternateAddress"]))
{
$newData['mailAlternateAddress'] = $_accountData["mailAlternateAddress"];
}
else
{
$newData['mailAlternateAddress'] = array();
}
if($_accountData["accountStatus"] == 'active')
{
$newData['accountStatus'] = 'active';
}
else
{
$newData['accountStatus'] = 'disabled';
}
/*
if(!empty($_accountData["deliveryMode"]))
{
$newData['deliveryMode'] = $_accountData["deliveryMode"];
}
else
{
$newData['deliveryMode'] = array();
}
*/
// if(is_array($_accountData["mailForwardingAddress"]))
// {
$newData['mailForwardingAddress'] = $_accountData["mailForwardingAddress"];
// }
// else
// {
// $newData['mailForwardingAddress'] = array();
// }
#print "<br>DN: $accountDN<br>";
ldap_mod_replace ($ldap, $accountDN, $newData);
// also update the account_email field in phpgw_accounts
// when using sql account storage
if($GLOBALS['phpgw_info']['server']['account_repository'] == 'sql')
{
$this->db->update('phpgw_accounts',array(
'account_email' => $_accountData["mail"]
),
array(
'account_id' => $_accountID
),__LINE__,__FILE__
);
}
}
}
?>

View File

@ -632,6 +632,22 @@
'extradata' => 'menuaction=admin.uiaclmanager.list_apps'
);
}
// NDEE210804
// added for different way of handling ldap entries inside account manager
// we show this only, if accounts are stored in ldap
if ($GLOBALS['phpgw_info']['server']['account_repository'] == "ldap")
{
$GLOBALS['menuData'][] = array(
'description' => 'LDAP-MGR',
'url' => '/index.php',
'extradata' => 'menuaction=admin.uildap_mgr.editUserData'
);
}
//NDEE
}
function edit_user($cd='',$account_id='')

View File

@ -0,0 +1,192 @@
<?php
/***************************************************************************\
* EGroupWare - LDAPManager *
* http://www.egroupware.org *
* Written by : Andreas Krause (ak703@users.sourceforge.net *
* based on EmailAdmin by Lars Kneschke [lkneschke@egroupware.org] *
* ------------------------------------------------- *
* 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. *
\***************************************************************************/
class uildap_mgr
{
var $public_functions = array
(
'editUserData' => True,
'saveUserData' => True
);
function uildap_mgr()
{
$this->t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$this->boldapmgr = CreateObject('admin.boldap_mgr');
}
function display_app_header()
{
$GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar();
}
function editUserData($_useCache='0')
{
global $phpgw, $phpgw_info, $HTTP_GET_VARS;
$accountID = $HTTP_GET_VARS['account_id'];
$GLOBALS['account_id'] = $accountID;
$this->display_app_header();
$this->translate();
$this->t->set_file(array("editUserData" => "account_form_ldapdata.tpl"));
$this->t->set_block('editUserData','form','form');
$this->t->set_block('editUserData','link_row','link_row');
$this->t->set_var("th_bg",$phpgw_info["theme"]["th_bg"]);
$this->t->set_var("tr_color1",$phpgw_info["theme"]["row_on"]);
$this->t->set_var("tr_color2",$phpgw_info["theme"]["row_off"]);
$this->t->set_var("lang_email_config",lang("edit email settings"));
$this->t->set_var("lang_emailAddress",lang("email address"));
$this->t->set_var("lang_emailaccount_active",lang("email account active"));
$this->t->set_var("lang_mailAlternateAddress",lang("alternate email address"));
$this->t->set_var("lang_mailForwardingAddress",lang("forward email's to"));
$this->t->set_var("lang_forward_also_to",lang("forward also to"));
$this->t->set_var("lang_button",lang("save"));
$this->t->set_var("lang_deliver_extern",lang("deliver extern"));
$this->t->set_var("lang_edit_email_settings",lang("edit email settings"));
$this->t->set_var("lang_ready",lang("Done"));
$this->t->set_var("link_back",$phpgw->link('/admin/accounts.php'));
$linkData = array
(
'menuaction' => 'admin.uildap_mgr.saveUserData',
'account_id' => $accountID
);
$this->t->set_var("form_action", $phpgw->link('/index.php',$linkData));
// only when we show a existing user
if($userData = $this->boldapmgr->getUserData($accountID, $_useCache))
{
echo "<br><br><br>";
if ($userData['mailAlternateAddress'] != '')
{
$options_mailAlternateAddress = "<select size=\"6\" name=\"mailAlternateAddress\">\n";
for ($i=0;$i < count($userData['mailAlternateAddress']); $i++)
{
$options_mailAlternateAddress .= "<option value=\"".$i."\">".
$userData['mailAlternateAddress'][$i].
"</option>\n";
}
$options_mailAlternateAddress .= "</select>\n";
}
else
{
$options_mailAlternateAddress = lang('no alternate email address');
}
$this->t->set_var("mail",$userData["mail"]);
// $this->t->set_var("mailAlternateAddress",'');
$this->t->set_var("mailForwardingAddress",$userData["mailForwardingAddress"]);
$this->t->set_var("options_mailAlternateAddress",$options_mailAlternateAddress);
$this->t->set_var("uid",rawurlencode($_accountData["dn"]));
if ($userData["accountStatus"] == "active")
$this->t->set_var("account_checked","checked");
if ($userData["deliveryMode"] == "forwardOnly")
$this->t->set_var("forwardOnly_checked","checked");
if ($_accountData["deliverExtern"] == "active")
$this->t->set_var("deliver_checked","checked");
}
else
{
$this->t->set_var("mail",'');
$this->t->set_var("mailAlternateAddress",'');
$this->t->set_var("mailForwardingAddress",'');
$this->t->set_var("options_mailAlternateAddress",lang('no alternate email address'));
$this->t->set_var("account_checked",'');
$this->t->set_var("forwardOnly_checked",'');
}
// create the menu on the left, if needed
$menuClass = CreateObject('admin.uimenuclass');
$this->t->set_var('rows',$menuClass->createHTMLCode('edit_user'));
$this->t->pparse("out","form");
}
function saveUserData()
{
global $HTTP_POST_VARS, $HTTP_GET_VARS;
if($HTTP_POST_VARS["accountStatus"] == "on")
{
$accountStatus = "active";
}
if($HTTP_POST_VARS["forwardOnly"] == "on")
{
$deliveryMode = "forwardOnly";
}
$formData = array
(
'mail' => $HTTP_POST_VARS["mail"],
'mailAlternateAddress' => $HTTP_POST_VARS["mailAlternateAddress"],
'mailForwardingAddress' => $HTTP_POST_VARS["mailForwardingAddress"],
'add_mailAlternateAddress' => $HTTP_POST_VARS["mailAlternateAddressInput"],
'remove_mailAlternateAddress' => $HTTP_POST_VARS["mailAlternateAddress"],
'accountStatus' => $accountStatus,
'deliveryMode' => $deliveryMode
);
//echo "<br><br>DebugArray in uiuserdata";
// echo _debug_array($formData);
if($HTTP_POST_VARS["add_mailAlternateAddress"]) $bo_action='add_mailAlternateAddress';
if($HTTP_POST_VARS["remove_mailAlternateAddress"]) $bo_action='remove_mailAlternateAddress';
if($HTTP_POST_VARS["save"]) $bo_action='save';
$this->boldapmgr->saveUserData($_GET['account_id'], $formData, $bo_action);
if ($bo_action == 'save')
{
// read date fresh from ldap storage
$this->editUserData();
}
else
{
// use cached data
$this->editUserData('1');
}
}
function translate()
{
global $phpgw_info;
$this->t->set_var('th_bg',$phpgw_info['theme']['th_bg']);
$this->t->set_var('lang_add',lang('add'));
$this->t->set_var('lang_done',lang('Done'));
$this->t->set_var('lang_remove',lang('remove'));
$this->t->set_var('lang_remove',lang('remove'));
$this->t->set_var('lang_advanced_options',lang('advanced options'));
$this->t->set_var('lang_qmaildotmode',lang('qmaildotmode'));
$this->t->set_var('lang_default',lang('default'));
$this->t->set_var('lang_quota_settings',lang('quota settings'));
$this->t->set_var('lang_qoutainmbyte',lang('qouta size in MByte'));
$this->t->set_var('lang_inmbyte',lang('in MByte'));
$this->t->set_var('lang_0forunlimited',lang('leave empty for no quota'));
$this->t->set_var('lang_forward_only',lang('forward only'));
$this->t->set_var('lang_mailAliases',lang('Aliases'));
$this->t->set_var('lang_masterEmailAddress',lang('Main Email-Address'));
$this->t->set_var('lang_RouteMailsTo',lang('Route all Mails to'));
}
}
?>

View File

@ -36,11 +36,14 @@ admin email addresses (comma-separated) to be notified about the blocking (empty
admin name admin de Admininistratorname
administration admin de Administration
admins admin de Administatoren
advanced options admin de erweiterte Optionen
after how many unsuccessful attempts to login, an account should be blocked (default 3) ? admin de Nach wievielen erfolglosen Versuchen sich anzumelden, soll ein Benutzerkonto gesperrt werden (Vorgabe 3)?
after how many unsuccessful attempts to login, an ip should be blocked (default 3) ? admin de Nach wievielen erfolglosen Versuchen sich anzumelden soll eine IP-Adresse gesperrt werden (Vorgabe 3)?
aliases admin de Email-Alias
all records and account information will be lost! admin de Alle Datens&auml;tze und Kontoinformationen sind dann verloren!
all users admin de Alle Benutzer
allow anonymous access to this app admin de Anonymen Zugriff auf diese Anwendung zulassen
alternate email address admin de Alternative Emailadresse
anonymous user admin de Anonymer Benutzer
anonymous user (not shown in list sessions) admin de Anonymer Benutzer (wird bei Sitzungen anzeigen nicht angezeigt)
appearance admin de Aussehen
@ -84,6 +87,7 @@ color admin de Farbe
country selection admin de Länderauswahl
create group admin de Erstelle Gruppe
crontab only (recomended) admin de nur Crontab (empfohlen)
cyrus imap server admin de Cyrus IMAP Server
data admin de Daten
day admin de Tag
day of week<br>(0-6, 0=sun) admin de Wochentag<br>(0-6, 0=Sonntag)
@ -127,6 +131,7 @@ do you want to delete all global subcategories ? admin de M
do you want to move all global subcategories one level down ? admin de Wollen sie alle globalen Unterkategorien eine Ebene nach unten verschieben?
edit account admin de Benutzerkonto bearbeiten
edit application admin de Anwendung bearbeiten
edit email settings admin de Email Einstellungen bearbeiten
edit global category admin de Globale Kategorie bearbeiten
edit global category for %1 admin de Globale Kategorie für %1 bearbeiten
edit group admin de Gruppe bearbeiten
@ -140,6 +145,8 @@ edit this group admin de Diese Gruppe bearbeiten
edit this user admin de Diesen Benutzer bearbeiten
edit user admin de Benutzer bearbeiten
edit user account admin de Benutzerkonto bearbeiten
email account active admin de Emailkonto aktiv
email address admin de Email-Adresse
enable debug-messages admin de Debug-Meldungen einschalten
enabled - hidden from navbar admin de Verfügbar, aber nicht in der Navigationsleiste
enabled - popup window admin de Verfügbar, Popup-Fenster
@ -195,6 +202,7 @@ icon admin de Icon
idle admin de im Leerlauf
if no acl records for user or any group the user is a member of admin de Wenn es keinen ACL-Eintrag für einen Benutzer oder oder eine Gruppe der er angehört gibt
if using ldap, do you want to manage homedirectory and loginshell attributes? admin de Wenn Sie LDAP verwenden, wollen Sie Benutzerverzeichnisse und Komandointerpreter verwalten ?
in mbyte admin de in MByte
inbound admin de eingehend
install crontab admin de Crontab installieren
installed applications common de Installierte Anwendungen
@ -230,6 +238,7 @@ login shell admin de Login-Komandointerpreter (Login-Shell)
login time admin de Login-Zeit
loginid admin de Login-ID
mail settings admin de EMail Einstellungen
main email-address admin de Stamm-Emailadresse
main screen message admin de Nachricht der Startseite
manager admin de Manager
maximum account id (e.g. 65535 or 1000000) admin de Maximum für Benutzer-ID (z.B. 65535 oder 1000000)
@ -245,6 +254,7 @@ new group name admin de Neuer Gruppenname
new password [ leave blank for no change ] admin de Neues Passwort [ Feld leerlassen, wenn das Passwort nicht geändert werden soll ]
next run admin de nächste Ausführung
no algorithms available admin de Kein Algorithmus verfügbar
no alternate email address admin de keine Aliases definiert
no jobs in the database !!! admin de Keine Jobs in der Datenbank!!!
no login history exists for this user admin de Benutzer hat sich noch nie angemeldet
no matches found admin de Keine Übereinstimmungen gefunden
@ -268,15 +278,20 @@ please enter a name admin de Bitte einen Namen eingeben
please enter a name for that server ! admin de Bitte einen Namen für diesen Server eingeben!
please run setup to become current admin de Bitte Setup ausführen um die Installation zu aktualisieren
please select admin de Bitte auswählen
postfix with ldap admin de Postfix mit LDAP
preferences admin de Einstellungen
primary group admin de primäre Gruppe
qouta size in mbyte admin de Quotagröße in MByte
quota settings admin de Quota-Einstellungen
re-enter password admin de Passwort wiederholen
read this list of methods. admin de Diese Liste der Methoden lesen
register application hooks admin de Registrieren der "Hooks" der Anwendungen
remove admin de Entfernen
remove all users from this group admin de Entferne alle Benutzer aus dieser Gruppe
remove all users from this group ? admin de Entferne alle Benutzer aus dieser Gruppe
return to admin mainscreen admin de zum Adminstrationsmenü zurückkehren
return to view account admin de Zurück zum Anzeigen des Benutzerkontos
route all mails to admin de Alle Mails senden an
run asynchronous services admin de Asynchrone Dienste ausführen
save the category admin de Kategorie speichern
save the category and return back to the list admin de Kategorie speichern und zur Liste zurückkehren
@ -317,6 +332,9 @@ sorry, the follow users are still a member of the group %1 admin de Sorry, die f
sort the entries admin de Einträge sortieren
ssl admin de verschlüsselt (SSL)
standard admin de Standard
standard imap server admin de Standard IMAP Server
standard pop3 server admin de Standard POP3 Server
standard smtp-server admin de Standard SMTP Server
start testjob! admin de Testjob starten!
submit changes admin de Änderungen speichern
submit the search string admin de Geben Sie Ihren Suchbegriff ein
@ -365,9 +383,9 @@ view sessions admin de Sitzungen anzeigen
view this user admin de Diesen Benutzer anzeigen
view user account admin de Benutzerkonto anzeigen
who would you like to transfer all records owned by the deleted user to? admin de Wem sollen alle Datensätze, die dem zu löschenden Benutzer gehören, übertragen werden?
would you like egroupware to cache the egw info array ? admin de Soll eGroupWare das egw info Array cachen ?
would you like egroupware to check for a new version<br>when admins login ? admin de Soll eGroupWare prüfen ob eine neue Version vorhanden ist,<br> wenn sich ein Administrator anmeldet ?
would you like egroupware to check for new application versions when admins login ? admin de Soll eGroupWare auf neue Versionen der Anwendungen prüfen, wenn sich ein Administrator anmeldet ?
would you like egroupware to cache the egw info array ? admin de Soll eGroupWare das egw info Array cachen ?
would you like to automaticaly load new langfiles (at login-time) ? admin de Sollen neue Sprachdateien automatisch gelanden werden (beim Login) ?
would you like to show each application's upgrade status ? admin de Soll der Upgrade-Status aller Anwendungen angezeigt werden ?
xml-rpc admin de XML-RPC

View File

@ -35,11 +35,14 @@ admin email addresses (comma-separated) to be notified about the blocking (empty
admin name admin en Admin Name
administration admin en Administration
admins admin en Admins
advanced options admin en advanced options
after how many unsuccessful attempts to login, an account should be blocked (default 3) ? admin en After how many unsuccessful attempts to login, an account should be blocked (default 3) ?
after how many unsuccessful attempts to login, an ip should be blocked (default 3) ? admin en After how many unsuccessful attempts to login, an IP should be blocked (default 3) ?
aliases admin en Aliases
all records and account information will be lost! admin en All records and account information will be lost!
all users admin en All Users
allow anonymous access to this app admin en Allow anonymous access to this app
alternate email address admin en alternate email address
anonymous user admin en Anonymous user
anonymous user (not shown in list sessions) admin en Anonymous User (not shown in list sessions)
appearance admin en Appearance
@ -83,6 +86,7 @@ color admin en Color
country selection admin en Country Selection
create group admin en Create Group
crontab only (recomended) admin en crontab only (recomended)
cyrus imap server admin en Cyrus IMAP Server
data admin en Data
day admin en Day
day of week<br>(0-6, 0=sun) admin en Day of week<br>(0-6, 0=Sun)
@ -101,6 +105,7 @@ delete the group admin en delete the group
delete this category admin en delete this category
delete this group admin en delete this group
delete this user admin en delete this user
deliver extern admin en deliver extern
deny access to access log admin en Deny access to access log
deny access to application registery admin en Deny access to application registery
deny access to applications admin en Deny access to applications
@ -126,6 +131,7 @@ do you want to delete all global subcategories ? admin en Do you want to delete
do you want to move all global subcategories one level down ? admin en Do you want to move all global subcategories one level down ?
edit account admin en Edit account
edit application admin en Edit application
edit email settings admin en edit email settings
edit global category admin en Edit global category
edit global category for %1 admin en Edit global category for %1
edit group admin en Edit Group
@ -139,6 +145,8 @@ edit this group admin en edit this group
edit this user admin en edit this user
edit user admin en edit user
edit user account admin en Edit user account
email account active admin en email account active
email address admin en email address
enable debug-messages admin en Enable debug-messages
enabled - hidden from navbar admin en Enabled - Hidden from navbar
enabled - popup window admin en Enabled - Popup Window
@ -174,6 +182,9 @@ find and register all application hooks admin en Find and Register all Applicati
for the times above admin en for the times above
for the times below (empty values count as '*', all empty = every minute) admin en for the times below (empty values count as '*', all empty = every minute)
force selectbox admin en Force Selectbox
forward also to admin en forward also to
forward email's to admin en forward email's to
forward only admin en forward only
global categories common en Global Categories
group ? admin en group ?
group has been added common en Group has been added
@ -192,6 +203,7 @@ icon admin en Icon
idle admin en idle
if no acl records for user or any group the user is a member of admin en If no ACL records for user or any group the user is a member of
if using ldap, do you want to manage homedirectory and loginshell attributes? admin en If using LDAP, do you want to manage homedirectory and loginshell attributes?
in mbyte admin en in MByte
inbound admin en inbound
install crontab admin en Install crontab
installed applications common en Installed applications
@ -214,6 +226,7 @@ ldap groups context admin en LDAP groups context
ldap host admin en LDAP host
ldap root password admin en LDAP root password
ldap rootdn admin en LDAP rootdn
leave empty for no quota admin en leave empty for no quota
leave the category untouched and return back to the list admin en leave the category untouched and return back to the list
leave the group untouched and return back to the list admin en Leave the group untouched and return back to the list
list config settings admin en List config settings
@ -226,6 +239,7 @@ login shell admin en Login shell
login time admin en Login Time
loginid admin en LoginID
mail settings admin en Mail settings
main email-address admin en Main Email-Address
main screen message admin en Main screen message
manager admin en Manager
maximum account id (e.g. 65535 or 1000000) admin en Maximum account id (e.g. 65535 or 1000000)
@ -240,6 +254,7 @@ new group name admin en New group name
new password [ leave blank for no change ] admin en New password [ Leave blank for no change ]
next run admin en Next run
no algorithms available admin en no algorithms available
no alternate email address admin en no alternate email address
no jobs in the database !!! admin en No jobs in the database !!!
no login history exists for this user admin en No login history exists for this user
no matches found admin en No matches found
@ -263,15 +278,21 @@ please enter a name admin en Please enter a name
please enter a name for that server ! admin en Please enter a name for that server !
please run setup to become current admin en Please run setup to become current
please select admin en Please Select
postfix with ldap admin en Postfix with LDAP
preferences admin en Preferences
primary group admin en primary Group
qmaildotmode admin en qmaildotmode
qouta size in mbyte admin en qouta size in MByte
quota settings admin en quota settings
re-enter password admin en Re-enter password
read this list of methods. admin en Read this list of methods.
register application hooks admin en Register application hooks
remove admin en remove
remove all users from this group admin en Remove all users from this group
remove all users from this group ? admin en Remove all users from this group ?
return to admin mainscreen admin en return to admin mainscreen
return to view account admin en Return to view account
route all mails to admin en Route all Mails to
run asynchronous services admin en Run Asynchronous services
save the category admin en save the category
save the category and return back to the list admin en save the category and return back to the list
@ -311,6 +332,9 @@ sorry, the follow users are still a member of the group %1 admin en Sorry, the f
sort the entries admin en sort the entries
ssl admin en ssl
standard admin en standard
standard imap server admin en standard IMAP server
standard pop3 server admin en standard POP3 server
standard smtp-server admin en standard SMTP-Server
start testjob! admin en Start TestJob!
submit changes admin en Submit Changes
submit the search string admin en Submit the search string
@ -359,9 +383,10 @@ view sessions admin en View sessions
view this user admin en view this user
view user account admin en View user account
who would you like to transfer all records owned by the deleted user to? admin en Who would you like to transfer ALL records owned by the deleted user to?
would you like egroupware to cache the egw info array ? admin en Would you like eGroupWare to cache the egw info array ?
would you like egroupware to cache the phpgw info array ? admin en Would you like eGroupWare to cache the phpgw info array ?
would you like egroupware to check for a new version<br>when admins login ? admin en Would you like eGroupWare to check for a new version<br>when admins login ?
would you like egroupware to check for new application versions when admins login ? admin en Would you like eGroupWare to check for new application versions when admins login ?
would you like egroupware to cache the egw info array ? admin en Would you like eGroupWare to cache the egw info array ?
would you like to automaticaly load new langfiles (at login-time) ? admin en Would you like to automatically load new langfiles (at login-time) ?
would you like to show each application's upgrade status ? admin en Would you like to show each application's upgrade status ?
xml-rpc admin en XML-RPC

View File

@ -312,6 +312,7 @@ last name of the user, eg. "%1" common de Familienname des Benutzers, zB. "%1"
last page common de Letzte Seite
lastname common de Name
latvia common de LATVIA
ldap-mgr common de LDAP-Manager
lebanon common de LIBANON
lesotho common de LESOTHO
liberia common de LYBIEN

View File

@ -307,6 +307,7 @@ last name of the user, eg. "%1" common en last name of the user, eg. "%1"
last page common en Last page
lastname common en Lastname
latvia common en LATVIA
ldap-mgr common en LDAP-Manager
lebanon common en LEBANON
lesotho common en LESOTHO
liberia common en LIBERIA