diff --git a/configs/menu.conf b/configs/menu.conf index ebbbea2c..c61b8243 100644 --- a/configs/menu.conf +++ b/configs/menu.conf @@ -9,7 +9,7 @@ url_create_domain = create-domain.php url_list_virtual = list-virtual.php url_create_mailbox = create-mailbox.php url_create_alias = create-alias.php -url_create_alias_domain = create-alias-domain.php +url_create_alias_domain = edit.php?table=aliasdomain # fetchmail url_fetchmail = fetchmail.php url_fetchmail_new_entry = fetchmail.php?new=1 diff --git a/create-alias-domain.php b/create-alias-domain.php deleted file mode 100644 index 5096ee39..00000000 --- a/create-alias-domain.php +++ /dev/null @@ -1,148 +0,0 @@ - 0) { - while ($row = db_array ($result['result'])) - { - $list_aliases[ $row['alias_domain'] ] = $row['target_domain']; - } -} - -# filter available alias domains -$alias_domains = array(); -foreach ($list_domains as $dom) { - if (isset($list_aliases[$dom]) || in_array($dom,$list_aliases)) continue; - $alias_domains[] = $dom; -} - -if (count($alias_domains) == 0) { - $error = 1; - flash_error($PALANG['pCreate_alias_domain_error4']); -} - -# filter available target domains -foreach ($list_domains as $dom) { - if (isset($list_aliases[$dom])) continue; - $target_domains[] = $dom; -} - - -if (isset ($_REQUEST['alias_domain'])) { - $fAliasDomain = escape_string ($_REQUEST['alias_domain']); - $fAliasDomain = strtolower ($fAliasDomain); -} -if (isset ($_REQUEST['target_domain'])) { - $fTargetDomain = escape_string ($_REQUEST['target_domain']); - $fTargetDomain = strtolower ($fTargetDomain); -} -//*** ????? -if (isset ($_REQUEST['active'])) { - $fActive = (bool)$_REQUEST['active']; -} else { - $fActive = false; -} -if (!isset ($_REQUEST['submit'])) - $fActive = true; - -if ($_SERVER['REQUEST_METHOD'] == "POST") -{ - if(!authentication_has_role ('global-admin') && - !(check_owner ($SESSID_USERNAME, $fAliasDomain) && - check_owner ($SESSID_USERNAME, $fTargetDomain))) - { - $error = 1; - flash_error($PALANG['pCreate_alias_domain_error1']); - } - - if (isset($list_aliases[$fAliasDomain]) || // alias_domain is unique (primary key, a domain can't be an alias for multiple others) - in_array($fAliasDomain,$list_aliases) || // an alias_domain can't be a target_domain for a third domain. - isset($list_aliases[$fTargetDomain]) || // same as above, other way around - ($fAliasDomain == $fTargetDomain) || // i really don't have to - empty($fAliasDomain) || empty($fTargetDomain)) // explain this, do i? - { - $error = 1; - flash_error($PALANG['pCreate_alias_domain_error2']); - } - - $sqlActive = db_get_boolean($fActive); - - if ($error != 1) { - $result = db_query ("INSERT INTO $table_alias_domain (alias_domain,target_domain,created,modified,active) VALUES ('$fAliasDomain','$fTargetDomain',NOW(),NOW(),'$sqlActive')"); - if ($result['rows'] != 1) { - $error = 1; - flash_error($PALANG['pCreate_alias_domain_error3']); - } - else { - db_log ($fAliasDomain, 'create_alias_domain', "$fAliasDomain -> $fTargetDomain"); - - flash_info($PALANG['pCreate_alias_domain_success']); - # we would have to update the list of domains available for aliasing. Doing a redirect is easier. - header("Location: create-alias-domain.php"); - exit; - } - } - - flash_info("
($fAliasDomain -> $fTargetDomain)
\n"); -} - - -$smarty->assign ('alias_domains', (count($alias_domains) > 0)); -$smarty->assign ('select_options_alias', select_options ($alias_domains, array ($fAliasDomain)), false); -$smarty->assign ('select_options_target', select_options ($target_domains, array ($fTargetDomain)), false); -if ($fActive) $smarty->assign ('fActive', ' checked="checked"'); -$smarty->assign ('smarty_template', 'create-alias-domain'); -$smarty->display ('index.tpl'); -/* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ -?> diff --git a/model/AliasdomainHandler.php b/model/AliasdomainHandler.php index 9f23ee18..aec84eeb 100644 --- a/model/AliasdomainHandler.php +++ b/model/AliasdomainHandler.php @@ -80,6 +80,24 @@ class AliasdomainHandler extends PFAHandler { } } + /* + * Configuration for the web interface + */ + public function webformConfig() { + return array( + # $PALANG labels + 'formtitle_create' => 'pCreate_alias_domain_welcome', + 'formtitle_edit' => 'pCreate_alias_domain_welcome', + 'create_button' => 'pCreate_alias_domain_button', + 'successmessage' => 'pCreate_alias_domain_success', + + # various settings + 'required_role' => 'admin', + 'listview' => 'list-virtual.php', + 'early_init' => 1, # 0 for create-domain + ); + } + protected function validate_new_id() { return true; # alias_domain is enum, so we don't need to check its syntax etc. } diff --git a/templates/list-virtual_alias_domain.tpl b/templates/list-virtual_alias_domain.tpl index 1f8042fc..dcf36002 100644 --- a/templates/list-virtual_alias_domain.tpl +++ b/templates/list-virtual_alias_domain.tpl @@ -1,7 +1,7 @@ {*** Domain Aliases ***} - + {if $tAliasDomains|@count>0 || $tTargetDomain|@count>1} {if $tAliasDomains|@count>0} {* -> HAT alias-domains *} @@ -11,6 +11,7 @@ + {foreach from=$tAliasDomains item=item} {#tr_hilightoff#} @@ -30,6 +31,7 @@ {if $item.target_domain != $fDomain}{/if} + {/foreach} @@ -38,6 +40,6 @@
{$PALANG.pOverview_alias_domain_title}{$PALANG.pOverview_alias_domain_title}
{$PALANG.pOverview_alias_domain_modified} {$PALANG.pOverview_alias_domain_active}   
{$item.modified} {if $item.active==1}{$PALANG.YES}{else}{$PALANG.NO}{/if}{$PALANG.edit} {$PALANG.del}
{if $can_create_alias_domain}
-
{$PALANG.pMenu_create_alias_domain}
+
{$PALANG.pMenu_create_alias_domain}
{/if}