From 37b29231e47a0c4458dc1c15d98588f16f07e1e2 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Thu, 06 Aug 2015 03:18:44 -0400
Subject: [PATCH] - don't set password via remoting if field is empty

---
 interface/web/mail/form/xmpp_domain.tform.php |  432 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 432 insertions(+), 0 deletions(-)

diff --git a/interface/web/mail/form/xmpp_domain.tform.php b/interface/web/mail/form/xmpp_domain.tform.php
new file mode 100644
index 0000000..095c72f
--- /dev/null
+++ b/interface/web/mail/form/xmpp_domain.tform.php
@@ -0,0 +1,432 @@
+<?php
+
+/*
+	Form Definition
+
+	Tabledefinition
+
+	Datatypes:
+	- INTEGER (Forces the input to Int)
+	- DOUBLE
+	- CURRENCY (Formats the values to currency notation)
+	- VARCHAR (no format check, maxlength: 255)
+	- TEXT (no format check)
+	- DATE (Dateformat, automatic conversion to timestamps)
+
+	Formtype:
+	- TEXT (Textfield)
+	- TEXTAREA (Textarea)
+	- PASSWORD (Password textfield, input is not shown when edited)
+	- SELECT (Select option field)
+	- RADIO
+	- CHECKBOX
+	- CHECKBOXARRAY
+	- FILE
+
+	VALUE:
+	- Wert oder Array
+
+	Hint:
+	The ID field of the database table is not part of the datafield definition.
+	The ID field must be always auto incement (int or bigint).
+
+	Search:
+	- searchable = 1 or searchable = 2 include the field in the search
+	- searchable = 1: this field will be the title of the search result
+	- searchable = 2: this field will be included in the description of the search result
+
+
+*/
+
+$form["title"]    = "XMPP Domain";
+$form["description"]  = "";
+$form["name"]    = "xmpp_domain";
+$form["action"]   = "xmpp_domain_edit.php";
+$form["db_table"]  = "xmpp_domain";
+$form["db_table_idx"] = "domain_id";
+$form["db_history"]  = "yes";
+$form["tab_default"] = "domain";
+$form["list_default"] = "xmpp_domain_list.php";
+$form["auth"]   = 'yes'; // yes / no
+
+$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 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
+
+$muc_available = $muc_pastebin_available = $muc_httparchive_available = $anon_available = $vjud_available = $proxy_available = $status_available = true;
+if(!$app->auth->is_admin()) {
+    $client_group_id = $_SESSION["s"]["user"]["default_group"];
+    $client = $app->db->queryOneRecord("SELECT limit_xmpp_muc, limit_xmpp_anon, limit_xmpp_vjud, limit_xmpp_proxy, limit_xmpp_status, limit_xmpp_pastebin, limit_xmpp_httparchive FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+
+    if($client['limit_xmpp_muc'] != 'y') $muc_available = false;
+    if($client['limit_xmpp_pastebin'] != 'y' || $client['limit_xmpp_muc'] != 'y') $muc_pastebin_available = false;
+    if($client['limit_xmpp_httparchive'] != 'y' || $client['limit_xmpp_muc'] != 'y') $muc_httparchive_available = false;
+    if($client['limit_xmpp_anon'] != 'y') $anon_available = false;
+    if($client['limit_xmpp_vjud'] != 'y') $vjud_available = false;
+    if($client['limit_xmpp_proxy'] != 'y') $proxy_available= false;
+    if($client['limit_xmpp_status'] != 'y') $status_available = false;
+}
+
+$form["tabs"]['domain'] = array (
+	'title'  => "Domain",
+	'width'  => 100,
+	'template'  => "templates/xmpp_domain_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'server_id' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '',
+			'datasource' => array (  'type' => 'SQL',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE xmpp_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
+				'keyfield'=> 'server_id',
+				'valuefield'=> 'server_name'
+			),
+			'value'  => ''
+		),
+		'domain' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'filters'   => array( 0 => array( 'event' => 'SAVE',
+					'type' => 'IDNTOASCII'),
+				1 => array( 'event' => 'SHOW',
+					'type' => 'IDNTOUTF8'),
+				2 => array( 'event' => 'SAVE',
+					'type' => 'TOLOWER')
+			),
+			'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-Z0-9\-]{2,30}$/',
+					'errmsg'=> 'domain_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255',
+			'searchable' => 1
+		),
+		'management_method' => array (
+			'datatype'      => 'VARCHAR',
+			'formtype'      => 'SELECT',
+			'default'       => '0',
+			'value'         => array(0 => 'Normal', 1 => 'By Mail Domain')
+		),
+        'public_registration' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'CHECKBOX',
+            'default' => 'y',
+            'value'  => array(0 => 'n', 1 => 'y')
+        ),
+        'registration_url' => array (
+            'datatype' => 'VARCHAR',
+            'validators' => array (  0 => array ( 'type' => 'REGEX',
+                'regex' => '@^(([\.]{0})|((ftp|https?)://([-\w\.]+)+(:\d+)?(/([\w/_\.\,\-\+\?\~!:%]*(\?\S+)?)?)?)|(\[scheme\]://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~!:%]*(\?\S+)?)?)?)|(/(?!.*\.\.)[\w/_\.\-]{1,255}/))$@',
+                'errmsg'=> 'redirect_error_regex'),
+            ),
+            'formtype' => 'TEXT',
+            'default' => '',
+            'value'  => '',
+            'width'  => '30',
+            'maxlength' => '255'
+        ),
+        'registration_message' => array(
+            'datatype' => 'TEXT',
+            'formtype' => 'TEXT',
+            'default' => "",
+            'value' => ''
+        ),
+        'domain_admins' => array(
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'default' => '',
+            'value' => '',
+            'width' => '15',
+            'maxlength' => '3'
+        ),
+
+		'active' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		//#################################
+		// ENDE Datatable fields
+		//#################################
+	)
+);
+
+$form["tabs"]['features'] = array (
+    'title'  => "Modules",
+    'width'  => 100,
+    'template'  => "templates/xmpp_domain_edit_modules.htm",
+    'fields'  => array (
+        //#################################
+        // Begin Datatable fields
+        //#################################
+        'use_pubsub' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'CHECKBOX',
+            'default' => 'y',
+            'value'  => array(0 => 'n', 1 => 'y')
+        )
+        //#################################
+        // ENDE Datatable fields
+        //#################################
+    )
+);
+if($anon_available)
+    $form['tabs']['features']['fields']['use_anon_host'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+if($vjud_available){
+    $form['tabs']['features']['fields']['use_vjud'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+    $form['tabs']['features']['fields']['vjud_opt_mode'] = array (
+        'datatype'      => 'VARCHAR',
+        'formtype'      => 'SELECT',
+        'default'       => '0',
+        'value'         => array(0 => 'Opt-In', 1 => 'Opt-Out')
+    );
+}
+
+if($proxy_available)
+    $form['tabs']['features']['fields']['use_proxy'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+if($status_available)
+    $form['tabs']['features']['fields']['use_status_host'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+
+
+if($muc_available)
+    $form["tabs"]['muc'] = array (
+        'title'  => "MUC",
+        'width'  => 100,
+        'template'  => "templates/xmpp_domain_edit_muc.htm",
+        'fields'  => array (
+            //#################################
+            // Begin Datatable fields
+            //#################################
+            'use_muc_host' => array (
+                'datatype' => 'VARCHAR',
+                'formtype' => 'CHECKBOX',
+                'default' => 'y',
+                'value'  => array(0 => 'n', 1 => 'y')
+            ),
+            'muc_name' => array(
+                'datatype' => 'VARCHAR',
+                'formtype' => 'TEXT',
+                'default' => ''
+            ),
+            'muc_restrict_room_creation' => array (
+                'datatype'      => 'VARCHAR',
+                'formtype'      => 'SELECT',
+                'default'       => '1',
+                'value'         => array(0 => 'Everyone', 1 => 'Members', 2 => 'Admins')
+            ),
+            'muc_admins' => array(
+                'datatype' => 'VARCHAR',
+                'formtype' => 'TEXT',
+                'default' => 'admin@service.com, superuser@service.com',
+                'value' => '',
+                'width' => '15',
+                'maxlength' => '3'
+            ),
+            //#################################
+            // ENDE Datatable fields
+            //#################################
+        )
+    );
+if($muc_available && $muc_pastebin_available){
+    $form['tabs']['muc']['fields']['use_pastebin'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+    $form['tabs']['muc']['fields']['pastebin_expire_after'] = array(
+        'datatype' => 'VARCHAR',
+        'formtype' => 'TEXT',
+        'default' => '48',
+        'validators' => array(0 => array('type' => 'ISINT'),
+            array('type'=>'RANGE', 'range'=>'1:168')
+        ),
+        'value' => '',
+        'width' => '15'
+    );
+    $form['tabs']['muc']['fields']['pastebin_trigger'] = array(
+        'datatype' => 'VARCHAR',
+        'formtype' => 'TEXT',
+        'default' => '!paste',
+        'value' => '',
+        'width' => '15'
+    );
+}
+if($muc_available && $muc_httparchive_available){
+    $form['tabs']['muc']['fields']['use_http_archive'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+    $form['tabs']['muc']['fields']['http_archive_show_join'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+    $form['tabs']['muc']['fields']['http_archive_show_status'] = array (
+        'datatype' => 'VARCHAR',
+        'formtype' => 'CHECKBOX',
+        'default' => 'y',
+        'value'  => array(0 => 'n', 1 => 'y')
+    );
+}
+
+$form["tabs"]['ssl'] = array (
+    'title'  => "SSL",
+    'width'  => 100,
+    'template'  => "templates/xmpp_domain_edit_ssl.htm",
+    'readonly' => false,
+    'fields'  => array (
+        //#################################
+        // Begin Datatable fields
+        //#################################
+        'ssl_state' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'validators' => array (  0 => array ( 'type' => 'REGEX',
+                'regex' => '/^(([\.]{0})|([-a-zA-Z0-9._,&äöüÄÖÜ ]{1,255}))$/',
+                'errmsg'=> 'ssl_state_error_regex'),
+            ),
+            'default' => '',
+            'value'  => '',
+            'width'  => '30',
+            'maxlength' => '255'
+        ),
+        'ssl_locality' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'validators' => array (  0 => array ( 'type' => 'REGEX',
+                'regex' => '/^(([\.]{0})|([-a-zA-Z0-9._,&äöüÄÖÜ ]{1,255}))$/',
+                'errmsg'=> 'ssl_locality_error_regex'),
+            ),
+            'default' => '',
+            'value'  => '',
+            'width'  => '30',
+            'maxlength' => '255'
+        ),
+        'ssl_organisation' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'validators' => array (  0 => array ( 'type' => 'REGEX',
+                'regex' => '/^(([\.]{0})|([-a-zA-Z0-9._,&äöüÄÖÜ ]{1,255}))$/',
+                'errmsg'=> 'ssl_organisation_error_regex'),
+            ),
+            'default' => '',
+            'value'  => '',
+            'width'  => '30',
+            'maxlength' => '255'
+        ),
+        'ssl_organisation_unit' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'validators' => array (  0 => array ( 'type' => 'REGEX',
+                'regex' => '/^(([\.]{0})|([-a-zA-Z0-9._,&äöüÄÖÜ ]{1,255}))$/',
+                'errmsg'=> 'ssl_organistaion_unit_error_regex'),
+            ),
+            'default' => '',
+            'value'  => '',
+            'width'  => '30',
+            'maxlength' => '255'
+        ),
+        'ssl_country' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'SELECT',
+            'default' => '',
+            'datasource' => array (  'type' => 'SQL',
+                'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name',
+                'keyfield'=> 'iso',
+                'valuefield'=> 'printable_name'
+            ),
+            'value'  => ''
+        ),
+        'ssl_email' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'TEXT',
+            'default' => '',
+            'value'  => '',
+            'width'  => '30',
+            'maxlength' => '255',
+            'validators' => array (  0 => array ( 'type' => 'ISEMAIL',
+                'errmsg'=> 'ssl_error_isemail')
+            ),
+        ),
+        'ssl_key' => array (
+            'datatype' => 'TEXT',
+            'formtype' => 'TEXTAREA',
+            'default' => '',
+            'value'  => '',
+            'cols'  => '30',
+            'rows'  => '10'
+        ),
+        'ssl_request' => array (
+            'datatype' => 'TEXT',
+            'formtype' => 'TEXTAREA',
+            'default' => '',
+            'value'  => '',
+            'cols'  => '30',
+            'rows'  => '10'
+        ),
+        'ssl_cert' => array (
+            'datatype' => 'TEXT',
+            'formtype' => 'TEXTAREA',
+            'default' => '',
+            'value'  => '',
+            'cols'  => '30',
+            'rows'  => '10'
+        ),
+        'ssl_bundle' => array (
+            'datatype' => 'TEXT',
+            'formtype' => 'TEXTAREA',
+            'default' => '',
+            'value'  => '',
+            'cols'  => '30',
+            'rows'  => '10'
+        ),
+        'ssl_action' => array (
+            'datatype' => 'VARCHAR',
+            'formtype' => 'SELECT',
+            'default' => '',
+            'value'  => array('' => 'none_txt', 'save' => 'save_certificate_txt', 'create' => 'create_certificate_txt', 'del' => 'delete_certificate_txt')
+        ),
+        //#################################
+        // ENDE Datatable fields
+        //#################################
+    )
+);
+
+
+?>

--
Gitblit v1.9.1