From b9f313bdc4992f64ed82ae998293df1e1626a4ff Mon Sep 17 00:00:00 2001
From: A. Täffner <darkalex@firesplash.de>
Date: Fri, 22 Jan 2016 13:14:39 -0500
Subject: [PATCH] DNSSEC-Switch: Implementation finished, tested And found a small bug (privkeys were not deleted on zone deletion) which is now fixed Testing successful. Doing last test then if everything goes well this will be the new merge request

---
 interface/web/admin/form/users.tform.php |  401 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 221 insertions(+), 180 deletions(-)

diff --git a/interface/web/admin/form/users.tform.php b/interface/web/admin/form/users.tform.php
index e9bd287..6a23559 100644
--- a/interface/web/admin/form/users.tform.php
+++ b/interface/web/admin/form/users.tform.php
@@ -16,7 +16,7 @@
       may be used to endorse or promote products derived from this software without
       specific prior written permission.
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
@@ -34,9 +34,9 @@
 	Tabellendefinition
 
 	Datentypen:
-	- INTEGER (Wandelt Ausdr�cke in Int um)
+	- INTEGER (Wandelt Ausdr�cke in Int um)
 	- DOUBLE
-	- CURRENCY (Formatiert Zahlen nach W�hrungsnotation)
+	- CURRENCY (Formatiert Zahlen nach W�hrungsnotation)
 	- VARCHAR (kein weiterer Format Check)
 	- TEXT (kein weiterer Format Check)
 	- DATE (Datumsformat, Timestamp Umwandlung)
@@ -55,195 +55,235 @@
 	- Wert oder Array
 
 	Hinweis:
-	Das ID-Feld ist nicht bei den Table Values einzuf�gen.
+	Das ID-Feld ist nicht bei den Table Values einzuf�gen.
 
 
 */
 
-$form["title"] 			= "Users";
-$form["description"] 	= "Form to edit systemusers.";
-$form["name"] 			= "users";
-$form["action"]			= "users_edit.php";
-$form["db_table"]		= "sys_user";
-$form["db_table_idx"]	= "userid";
-$form["tab_default"]	= "users";
-$form["list_default"]	= "users_list.php";
-$form["auth"]			= 'yes';
+$form['title']   = 'Users';
+$form['description']  = 'Form to edit systemusers.';
+$form['name']   = 'users';
+$form['action']  = 'users_edit.php';
+$form['db_table'] = 'sys_user';
+$form['db_table_idx'] = 'userid';
+$form["db_history"] = "no";
+$form['tab_default'] = 'users';
+$form['list_default'] = 'users_list.php';
+$form['auth']  = 'yes';
 
-$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
+//* 0 = id of the user, > 0 id must match with id of current user
+$form['auth_preset']['userid']  = 0;
+//* 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form['auth_preset']['groupid'] = 0;
 
-// lese Module aus
+//** Permissions are: r = read, i = insert, u = update, d = delete
+$form['auth_preset']['perm_user']  = 'riud';
+$form['auth_preset']['perm_group'] = 'riud';
+$form['auth_preset']['perm_other'] = '';
+
+//* Pick out modules
 $modules_list = array();
-$handle = @opendir($conf["rootpath"]."/web"); 
-while ($file = @readdir ($handle)) { 
-    if ($file != "." && $file != "..") {
-        if(@is_dir($conf["rootpath"]."/web/".$file)) {
-            if(is_file($conf["rootpath"]."/web/".$file."/lib/module.conf.php") and $file != 'login') {
+$handle = @opendir(ISPC_WEB_PATH);
+while ($file = @readdir($handle)) {
+	if ($file != '.' && $file != '..') {
+		if(@is_dir(ISPC_WEB_PATH."/$file")) {
+			if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') {
 				$modules_list[$file] = $file;
 			}
-        }
+		}
 	}
 }
 
-// lese Themes aus
+//* Load themes
 $themes_list = array();
-$handle = @opendir($conf["rootpath"]."/web/themes"); 
-while ($file = @readdir ($handle)) { 
-    if (substr($file,0,1) != '.') {
-        if(@is_dir($conf["rootpath"]."/web/themes/".$file)) {
-			$themes_list[$file] = $file;
-        }
+$handle = @opendir(ISPC_THEMES_PATH);
+while ($file = @readdir($handle)) {
+	if (substr($file, 0, 1) != '.') {
+		if(@is_dir(ISPC_THEMES_PATH."/$file")) {
+			if(!file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") || (@file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") && trim(@file_get_contents(ISPC_THEMES_PATH."/$file/ispconfig_version")) == ISPC_APP_VERSION)) {
+				$themes_list[$file] = $file;
+			}
+		}
 	}
 }
 
-// lese verf�gbare Sprachen aus
+//* Languages
 $language_list = array();
-$handle = @opendir($conf["rootpath"]."/lib/lang"); 
-while ($file = @readdir ($handle)) { 
-    if ($file != "." && $file != "..") {
-        if(@is_file($conf["rootpath"]."/lib/lang/".$file) and substr($file,-4,4) == '.lng') {
-			$tmp = substr($file,0,2);
+$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang');
+while ($file = @readdir($handle)) {
+	if ($file != '.' && $file != '..') {
+		if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file, -4, 4) == '.lng') {
+			$tmp = substr($file, 0, 2);
 			$language_list[$tmp] = $tmp;
-        }
+		}
 	}
 }
 
-// lese verf�gbare Gruppen aus.
+//* Pick out groups
 $groups_list = array();
-$tmp_records = $app->db->queryAllRecords("SELECT groupid, name FROM sys_group ORDER BY name");
+$tmp_records = $app->db->queryAllRecords('SELECT groupid, name FROM sys_group ORDER BY name');
 if(is_array($tmp_records)) {
 	foreach($tmp_records as $tmp_rec) {
-		$tmp_id = $tmp_rec["groupid"];
-		$groups_list[$tmp_id] = $tmp_rec["name"];
+		$groups_list[$tmp_rec['groupid']] = $tmp_rec['name'];
 	}
 }
 
-$form["tabs"]['users'] = array (
-	'title' 	=> "Users",
-	'width' 	=> 80,
-	'template' 	=> "templates/users_user_edit.htm",
-	'fields' 	=> array (
-	##################################
-	# Beginn Datenbankfelder
-	##################################
+$form['tabs']['users'] = array (
+	'title'  => 'Users',
+	'width'  => 80,
+	'template'  => 'templates/users_user_edit.htm',
+	'fields'  => array (
+		//#################################
+		// Beginn Datenbankfelder
+		//#################################
 		'username' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'TEXT',
-			'regex'		=> '/^.{1,30}$/',
-			'errmsg'	=> 'username_err',
-			'default'	=> '',
-			'value'		=> '',
-			'separator'	=> '',
-			'width'		=> '15',
-			'maxlength'	=> '30',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array (  0 => array (    'type' => 'NOTEMPTY',
+					'errmsg'=> 'username_empty'),
+				1 => array (    'type' => 'UNIQUE',
+					'errmsg'=> 'username_unique'),
+				2 => array (    'type' => 'REGEX',
+					'regex' => '/^[\w\.\-\_]{0,64}$/',
+					'errmsg'=> 'username_err'),
+				3 => array ( 'type' => 'CUSTOM',
+					'class' => 'validate_client',
+					'function' => 'username_collision',
+					'errmsg'=> 'username_error_collision'),
+			),
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '15',
+			'maxlength' => '30',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'passwort' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'PASSWORD',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> '',
-			'value'		=> '',
-			'separator'	=> '',
-			'width'		=> '15',
-			'maxlength'	=> '100',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'PASSWORD',
+			'validators' => array(
+				0 => array(
+					'type' => 'CUSTOM',
+					'class' => 'validate_password',
+					'function' => 'password_check',
+					'errmsg' => 'weak_password_txt'
+				)
+			),
+			'encryption'    => 'CRYPT',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '15',
+			'maxlength' => '100',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'modules' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'CHECKBOXARRAY',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> 'admin,forms',
-			'value'		=> $modules_list,
-			'separator'	=> ',',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOXARRAY',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => 'admin,forms',
+			'value'  => $modules_list,
+			'separator' => ',',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'startmodule' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'SELECT',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> '',
-			'value'		=> $modules_list,
-			'separator'	=> '',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'SELECT',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => $modules_list,
+			'separator' => '',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'app_theme' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'RADIO',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> 'default',
-			'value'		=> $themes_list,
-			'separator'	=> '',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'RADIO',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => 'default',
+			'value'  => $themes_list,
+			'separator' => '',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'typ' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'RADIO',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> 'user',
-			'value'		=> array ('user' => 'user', 'admin' => 'admin'),
-			'separator'	=> '',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'RADIO',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => 'user',
+			'value'  => array ('user' => 'user', 'admin' => 'admin'),
+			'separator' => '',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'active' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> '',
-			'value'		=> '1',
-			'separator'	=> '',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'INTEGER',
+			'formtype' => 'CHECKBOX',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => array(0 => 0, 1 => 1),
+			'separator' => '',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'language' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'SELECT',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> '',
-			'value'		=> $language_list,
-			'separator'	=> '',
-			'width'		=> '30',
-			'maxlength'	=> '2',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'SELECT',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => $language_list,
+			'separator' => '',
+			'width'  => '30',
+			'maxlength' => '2',
+			'rows'  => '',
+			'cols'  => ''
+		),
+		'lost_password_function' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'CHECKBOX',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => 1,
+			'value'  => array(0 => 0, 1 => 1),
+			'separator' => '',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		)
-	##################################
-	# ENDE Datenbankfelder
-	##################################
+		//#################################
+		// ENDE Datenbankfelder
+		//#################################
 	)
 );
-
-$form["tabs"]['address'] = array (
-	'title' 	=> "Address",
+/*
+$form['tabs']['address'] = array (
+	'title' 	=> 'Address',
 	'width' 	=> 80,
-	'template' 	=> "templates/users_address_edit.htm",
+	'template' 	=> 'templates/users_address_edit.htm',
 	'fields' 	=> array (
 	##################################
 	# Beginn Datenbankfelder
@@ -397,46 +437,47 @@
 	##################################
 	)
 );
+*/
 
-$form["tabs"]['groups'] = array (
-	'title' 	=> "Groups",
-	'width' 	=> 80,
-	'template' 	=> "templates/users_groups_edit.htm",
-	'fields' 	=> array (
-	##################################
-	# Beginn Datenbankfelder
-	##################################
+$form['tabs']['groups'] = array (
+	'title'  => 'Groups',
+	'width'  => 80,
+	'template'  => 'templates/users_groups_edit.htm',
+	'fields'  => array (
+		//#################################
+		// Beginn Datenbankfelder
+		//#################################
 		'default_group' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'SELECT',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> '',
-			'value'		=> array_merge(array(0=>''),$groups_list),
-			'separator'	=> ',',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'SELECT',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => $groups_list,
+			'separator' => ',',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		),
 		'groups' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'CHECKBOXARRAY',
-			'regex'		=> '',
-			'errmsg'	=> '',
-			'default'	=> '',
-			'value'		=> $groups_list,
-			'separator'	=> ',',
-			'width'		=> '30',
-			'maxlength'	=> '255',
-			'rows'		=> '',
-			'cols'		=> ''
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOXARRAY',
+			'regex'  => '',
+			'errmsg' => '',
+			'default' => '',
+			'value'  => $groups_list,
+			'separator' => ',',
+			'width'  => '30',
+			'maxlength' => '255',
+			'rows'  => '',
+			'cols'  => ''
 		)
 
-	##################################
-	# ENDE Datenbankfelder
-	##################################
+		//#################################
+		// ENDE Datenbankfelder
+		//#################################
 	)
 );
 
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1