diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 07919e3f78adbc6168d19eb3650332f99dff08ba..e0a3a925b23c68f6a404539281308bb2b4d314c5 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -262,6 +262,22 @@ CREATE TABLE `dns_template` ( PRIMARY KEY (`template_id`) ) ENGINE=MyISAM AUTO_INCREMENT=1; +-- +-- Tabellenstruktur für Tabelle `domain` +-- + +CREATE TABLE `domain` ( + `domain_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `domain` varchar(255) NOT NULL default '', + PRIMARY KEY (`domain_id`), + UNIQUE KEY `domain` (`domain`) +) ENGINE=MyISAM; + -- -------------------------------------------------------- -- diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index f59a0b82b09e4afa3710bbf0bcf39d61d4227a03..4459ca2b9c6b5b74902099ce135be55ed3794f52 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -20,4 +20,8 @@ shelluser_prefix=[CLIENTNAME] dblist_phpmyadmin_link=y phpmyadmin_url= -[tools] \ No newline at end of file +[tools] + +[domains] +use_domain_module=n +new_domain_html=Please contact our support to create a new domain for you. diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index e9882f559cb0f40c0a51bd028abccc5aef8f64f0..9d2a670294dfe675b1a6aea79457d5e43f4e2e3d 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -32,4 +32,5 @@ $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Tools'; $wb['top_menu_help'] = 'Support'; $wb['top_menu_billing'] = 'Billing'; +$wb['top_menu_domain'] = 'Domänen'; ?> diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index be14f7de91ca17fb11cea421f9f311a80cd10c6a..da7caf12f3d307400acebdd8befae99d6731e93f 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -32,5 +32,6 @@ $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Tools'; $wb['top_menu_help'] = 'Help'; $wb['top_menu_billing'] = 'Billing'; +$wb['top_menu_domain'] = 'Domains'; $wb['toolsarea_head_txt'] = 'Tools'; ?> diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 13e55f7af69d0c3ee214b2ad929c028b55a30c51..db0d35383350bdc9672b2a2523ef4f09ff333add 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -162,6 +162,31 @@ $form["tabs"]['mail'] = array ( ) ); +$form["tabs"]['domains'] = array ( + 'title' => "Domains", + 'width' => 70, + 'template' => "templates/system_config_domains_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'use_domain_module' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'new_domain_html' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); ?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 2c10f256779318d58c063f2ddabdeb3c77b7959e..a4e618217b828e5b957345297c72e3acac76ea53 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -12,4 +12,7 @@ $wb['dblist_phpmyadmin_link_txt'] = 'Link zu phpMyAdmin in der Datenbankliste'; $wb['mailboxlist_webmail_link_txt'] = 'Link zu Webmail in der Mailboxliste'; $wb['webmail_url_txt'] = 'Webmail URL'; $wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL'; +$wb['use_domain_module_txt'] = 'Neue Domains können nur über das Modul Domains angelegt werden'; +$wb['use_domain_module_hint'] = 'Wenn Sie dieses Modul verwenden, können Kunden beim Anlegen neuer E-Mail-Domains und neuer Websites lediglich eine Auswahl der vom Administrator für sie angelegter Domains treffen, sie können keine freie Eingabe ausführen.
Sollten Sie diesen Wert ändern, so müssen Sie sich danach ab- und wieder neu anmelden, um die Änderungen sichtbar zu machen.'; +$wb['new_domain_txt'] = 'HTML-Text zum Erstellen einer neuen Domäne'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 450222722ab2777bf6ff0854f2327f213c03ba06..3cb319cb299b8e531684802a8ad276564c6cfdb9 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -13,5 +13,7 @@ $wb['dblist_phpmyadmin_link_txt'] = 'Link to phpmyadmin in DB list'; $wb['mailboxlist_webmail_link_txt'] = 'Link to webmail in Mailbox list'; $wb['webmail_url_txt'] = 'Webmail URL'; $wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL'; - +$wb['use_domain_module_txt'] = 'Use the domain-module to add new domains'; +$wb['use_domain_module_hint'] = 'If you use this module, your customers can only select one of the domains the admin creates for them. They can not free edit the domain-field.You have to re-login after changing this value, to make the changes visible.'; +$wb['new_domain_txt'] = 'HTML to create a new domain'; ?> \ No newline at end of file diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 6107f20e4c55d59eae8cfe3d06c185b89478d4c6..f6a4c05d05ba943c780f8c01d7ba564a057c076a 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -49,7 +49,8 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { - + + function onShowEdit() { global $app, $conf; @@ -62,7 +63,11 @@ class page_action extends tform_actions { $server_id = $this->id; $this->dataRecord = $app->getconf->get_global_config($section); - + if ($section == 'domains'){ + if (isset($this->dataRecord['use_domain_module'])){ + $_SESSION['use_domain_module_old_value'] = $this->dataRecord['use_domain_module']; + } + } } $record = $app->tform->getHTML($this->dataRecord, $this->active_tab,'EDIT'); @@ -86,6 +91,23 @@ class page_action extends tform_actions { $sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1"; $app->db->query($sql); + + /* + * If we should use the domain-module, we have to insert all existing domains into the table + * (only the first time!) + */ + if (($section == 'domains') && + ($_SESSION['use_domain_module_old_value'] == '') && + ($server_config_array['domains']['use_domain_module'] == 'y')){ + $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " . + "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " . + "FROM mail_domain"; + $app->db->query($sql); + $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " . + "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " . + "FROM web_domain"; + $app->db->query($sql); + } } } diff --git a/interface/web/admin/templates/system_config_domains_edit.htm b/interface/web/admin/templates/system_config_domains_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..9e4d09a704c807a033fb251dc84bee8da4cfc913 --- /dev/null +++ b/interface/web/admin/templates/system_config_domains_edit.htm @@ -0,0 +1,35 @@ +

+

+ +
+ +
+
+
+
+

{tmpl_var name='use_domain_module_txt'}

+
+ {tmpl_var name='use_domain_module'} +
+
+
{tmpl_var name='use_domain_module_hint'}
+
+
+

{tmpl_var name='new_domain_txt'}

+
+ +
+
+
+ + + +
+ + +
+
+ +
diff --git a/interface/web/domain/domain_del.php b/interface/web/domain/domain_del.php new file mode 100644 index 0000000000000000000000000000000000000000..f47f2f9d81ace971f618bfd4bff8563909a3a0eb --- /dev/null +++ b/interface/web/domain/domain_del.php @@ -0,0 +1,82 @@ +auth->check_module_permissions('domain'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +//* load language file +$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'.lng'; +include($lng_file); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + /* + * We can only delete domains if they are NOT in use + */ + $domain = $this->dataRecord['domain']; + + $sql = "SELECT domain_id FROM mail_domain WHERE domain = '" . $app->db->quote($domain) . "'"; + $res = $app->db->queryOneRecord($sql); + if (is_array($res)){ + $app->error($wb['error_domain_in mailuse']); + } + + $sql = "SELECT domain_id FROM web_domain WHERE domain = '" . $app->db->quote($domain) . "'"; + $res = $app->db->queryOneRecord($sql); + if (is_array($res)){ + $app->error($wb['error_domain_in webuse']); + } + } +} + +$page = new page_action; +$page->onDelete(); + +?> \ No newline at end of file diff --git a/interface/web/domain/domain_edit.php b/interface/web/domain/domain_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..8e6e6384193792b48dd160520a9edd7cb238d201 --- /dev/null +++ b/interface/web/domain/domain_edit.php @@ -0,0 +1,154 @@ +auth->check_module_permissions('domain'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +//* load language file +$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'.lng'; +include($lng_file); + +class page_action extends tform_actions { + + function onShowNew() { + global $app, $conf, $wb; + + // Only admins can add domains, so we don't need any check + + $app->tpl->setVar($wb); + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf, $wb; + + if($_SESSION["s"]["user"]["typ"] == 'admin') { + // Getting Clients of the user + $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; + $clients = $app->db->queryAllRecords($sql); + $client_select = ''; + if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= ""; + $tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($clients)) { + foreach( $clients as $client) { + $selected = ($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; + $client_select .= "\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + + } + + if($this->id > 0) { + //* we are editing a existing record + $app->tpl->setVar("edit_disabled", 1); + } else { + $app->tpl->setVar("edit_disabled", 0); + } + + $app->tpl->setVar($wb); + + parent::onShowEnd(); + } + + function onSubmit() { + global $app, $conf, $wb; + + if($_SESSION["s"]["user"]["typ"] == 'admin') { + if ($this->id == 0) { + /* + * We create a new record + */ + // Check if the user is empty + if(isset($this->dataRecord['client_group_id']) && $this->dataRecord['client_group_id'] == 0) { + $app->tform->errorMessage .= $wb['error_client_group_id_empty']; + } + //* make sure that the email domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + } + else { + /* + * We edit a existing one, but there is nothing to edit + */ + $this->dataRecord = $app->tform->getDataRecord($this->id); + } + } else { + if($this->id > 0) { + /* + * Clients may not edit anything, so we reset the old data + */ + $this->dataRecord = $app->tform->getDataRecord($this->id); + } else { + /* + * clients may not create a new domain + */ + $app->error($wb['error_client_can_not_add_domain']); + } + } + + $app->tpl->setVar($wb); + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + // make sure that the record belongs to the client group and not the admin group when admin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); + } + } +} + +$page = new page_action; +$page->onLoad(); + +?> \ No newline at end of file diff --git a/interface/web/domain/domain_list.php b/interface/web/domain/domain_list.php new file mode 100644 index 0000000000000000000000000000000000000000..381285e36742cef651c44ecab8a3b113bb91c79b --- /dev/null +++ b/interface/web/domain/domain_list.php @@ -0,0 +1,51 @@ +auth->check_module_permissions('domain'); + +$app->uses('listform_actions'); + +$app->listform_actions->onLoad(); + +?> \ No newline at end of file diff --git a/interface/web/domain/domain_new_client.php b/interface/web/domain/domain_new_client.php new file mode 100644 index 0000000000000000000000000000000000000000..3d9a9c410cf88eeb3559896f0ca7df9eb1ceb7cc --- /dev/null +++ b/interface/web/domain/domain_new_client.php @@ -0,0 +1,45 @@ +auth->check_module_permissions('domain'); + +/* + * Just get the html and return it + */ +$app->uses('ini_parser,getconf'); +$settings = $app->getconf->get_global_config('domains'); +if ($settings['use_domain_module'] == 'y') { + echo $settings[new_domain_html]; +} + +?> diff --git a/interface/web/domain/form/domain.tform.php b/interface/web/domain/form/domain.tform.php new file mode 100644 index 0000000000000000000000000000000000000000..9cd54228445e91c8fb50dfa1d194f67c38d1fdd5 --- /dev/null +++ b/interface/web/domain/form/domain.tform.php @@ -0,0 +1,111 @@ + 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['domain'] = array ( + 'title' => "Domain", + 'width' => 100, + 'template' => "templates/domain_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'domain' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'domain_error_empty'), + 1 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'domain_error_unique'), + 2 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z]{2,10}$/', + 'errmsg'=> 'domain_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + +?> \ No newline at end of file diff --git a/interface/web/domain/lib/admin.conf.php b/interface/web/domain/lib/admin.conf.php new file mode 100644 index 0000000000000000000000000000000000000000..5e64662218b52e4278d56284f8f5fc52a40d8db5 --- /dev/null +++ b/interface/web/domain/lib/admin.conf.php @@ -0,0 +1,29 @@ + \ No newline at end of file diff --git a/interface/web/domain/lib/lang/de.lng b/interface/web/domain/lib/lang/de.lng new file mode 100644 index 0000000000000000000000000000000000000000..728683a746906c5ad5dda221ed8b6c25e2b1a56a --- /dev/null +++ b/interface/web/domain/lib/lang/de.lng @@ -0,0 +1,14 @@ +'; +$wb['list_head_txt'] = 'Domänen'; +$wb['domain_txt'] = 'Domäne'; +?> diff --git a/interface/web/domain/lib/lang/de_domain_list.lng b/interface/web/domain/lib/lang/de_domain_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..70f3b2f32eb635a0fe69a3680ef92977c285f7ff --- /dev/null +++ b/interface/web/domain/lib/lang/de_domain_list.lng @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/interface/web/domain/lib/lang/en.lng b/interface/web/domain/lib/lang/en.lng new file mode 100644 index 0000000000000000000000000000000000000000..f2fdc9992baf863fdc5b3c926f7cbdea0859e343 --- /dev/null +++ b/interface/web/domain/lib/lang/en.lng @@ -0,0 +1,13 @@ +'; +?> diff --git a/interface/web/domain/lib/lang/en_domain_list.lng b/interface/web/domain/lib/lang/en_domain_list.lng new file mode 100644 index 0000000000000000000000000000000000000000..161fd504e1091dec4782ad790c960516be56eb24 --- /dev/null +++ b/interface/web/domain/lib/lang/en_domain_list.lng @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/interface/web/domain/lib/module.conf.php b/interface/web/domain/lib/module.conf.php new file mode 100644 index 0000000000000000000000000000000000000000..ae01afd4d542c0393eb5e540bba1e34691b37938 --- /dev/null +++ b/interface/web/domain/lib/module.conf.php @@ -0,0 +1,47 @@ + 'Domains', + 'target' => 'content', + 'link' => 'domain/domain_list.php'); + +$module['nav'][] = array( 'title' => 'Domains', + 'open' => 1, + 'items' => $items); + +?> \ No newline at end of file diff --git a/interface/web/domain/list/domain.list.php b/interface/web/domain/list/domain.list.php new file mode 100644 index 0000000000000000000000000000000000000000..bd96addf21453a8a71e94d86e21292ecbd8102ab --- /dev/null +++ b/interface/web/domain/list/domain.list.php @@ -0,0 +1,84 @@ + "domain", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); +?> \ No newline at end of file diff --git a/interface/web/domain/templates/domain_edit.htm b/interface/web/domain/templates/domain_edit.htm new file mode 100644 index 0000000000000000000000000000000000000000..12b3aa96fd39e1de0630531da401c5fadcaffa50 --- /dev/null +++ b/interface/web/domain/templates/domain_edit.htm @@ -0,0 +1,40 @@ +

+ +
+ +
+
+
+ + + + + + +
+ +
+ + + + + + +
+
+
+ + + + +
+ + +
+
+ +
diff --git a/interface/web/domain/templates/domain_list.htm b/interface/web/domain/templates/domain_list.htm new file mode 100644 index 0000000000000000000000000000000000000000..b8533840ef757e7eedfec70bd46cd44059804b0b --- /dev/null +++ b/interface/web/domain/templates/domain_list.htm @@ -0,0 +1,59 @@ +

+

+ +
+ +
+
{tmpl_var name="toolsarea_head_txt"} +
+ + + + + +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
 
{tmpl_var name="domain"} + + + +
+
+
+ +
diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 847c2c337dc0f0c4beea66e20a7e41d4eec20f19..bfd38ca64e7222481cd8f0fba8dca5731396318f 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -62,7 +62,7 @@ class page_action extends tform_actions { $app->error('Reseller: '.$app->tform->wordbook["limit_maildomain_txt"]); } } - + parent::onShowNew(); } @@ -116,7 +116,24 @@ class page_action extends tform_actions { } - + /* + * Now we have to check, if we should use the domain-module to select the domain + * or not + */ + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y'){ + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $sql = "SELECT domain FROM domain WHERE sys_groupid =" . $client_group_id; + $domains = $app->db->queryAllRecords($sql); + $domain_select = ''; + if(is_array($domains)) { + foreach( $domains as $domain) { + $domain_select .= "\r\n"; + } + } + $app->tpl->setVar("domain_option",$domain_select); + } // Get the spamfilter policys for the user diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm index a104827f8f248749f41ec91ffb4be567d6db509e..3e5da39ab919ac565fe0a8a3f6f02db026c70933 100644 --- a/interface/web/mail/templates/mail_domain_edit.htm +++ b/interface/web/mail/templates/mail_domain_edit.htm @@ -39,8 +39,14 @@
- -
+ + + + + +
-
+ + + + + +
 MB diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 1874b446e8a62eef39c3e7042858179253a63a51..c96fda9f3e8f358ab19bb690530f48bb4cf04236 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -206,6 +206,25 @@ class page_action extends tform_actions { $tmp_txt = ($this->dataRecord['traffic_quota_lock'] == 'y')?'('.$app->tform->lng('traffic_quota_exceeded_txt').')':''; $app->tpl->setVar("traffic_quota_exceeded_txt", $tmp_txt); + /* + * Now we have to check, if we should use the domain-module to select the domain + * or not + */ + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y'){ + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $sql = "SELECT domain FROM domain WHERE sys_groupid =" . $client_group_id; + $domains = $app->db->queryAllRecords($sql); + $domain_select = ''; + if(is_array($domains)) { + foreach( $domains as $domain) { + $domain_select .= "\r\n"; + } + } + $app->tpl->setVar("domain_option",$domain_select); + } + parent::onShowEnd(); } diff --git a/interface/web/themes/default/css/navigation/nav_top.css b/interface/web/themes/default/css/navigation/nav_top.css index bbb4482f2501b04186c8ec357ec64a30be8f142b..3104e266b3452df8bb48eb080f8adacf25d77996 100644 --- a/interface/web/themes/default/css/navigation/nav_top.css +++ b/interface/web/themes/default/css/navigation/nav_top.css @@ -90,4 +90,9 @@ .topnav- { background-image: url('../../icons/x64/login.png') !important; } + + .topnav-domain { + background-image: url('../../icons/x64/domain.png') !important; + } + } \ No newline at end of file diff --git a/interface/web/themes/default/icons/x64/domain.png b/interface/web/themes/default/icons/x64/domain.png new file mode 100644 index 0000000000000000000000000000000000000000..03ac2d91830b798a2640f78a822caca795310605 Binary files /dev/null and b/interface/web/themes/default/icons/x64/domain.png differ